Mercurial > piecrust2
view tests/test_uriutil.py @ 1169:978ed6deea91
tests: Add ability to test different expected outputs based on Python version.
Similar to the previous change, there was also a change in what gets escaped
by `urllib.parse.quote` (as in: the tilde sign ('~') stopped being escaped).
So now we need to be able to test different outputs in the tests, yay again.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 04 Oct 2019 11:15:11 -0700 |
parents | e85f29b28b84 |
children |
line wrap: on
line source
import mock import pytest from piecrust.uriutil import split_sub_uri @pytest.mark.parametrize('uri, expected, pretty_urls', [ ('/', ('/', 1), True), ('/2', ('/', 2), True), ('/foo/bar', ('/foo/bar', 1), True), ('/foo/bar/', ('/foo/bar', 1), True), ('/foo/bar/2/', ('/foo/bar', 2), True), ('/foo/bar.ext', ('/foo/bar.ext', 1), True), ('/foo/bar.ext/2', ('/foo/bar.ext', 2), True), ('/', ('/', 1), False), ('/2.html', ('/', 2), False), ('/foo/bar.html', ('/foo/bar.html', 1), False), ('/foo/bar/2.html', ('/foo/bar.html', 2), False), ('/foo/bar.ext', ('/foo/bar.ext', 1), False), ('/foo/bar/2.ext', ('/foo/bar.ext', 2), False) ]) def test_split_sub_uri(uri, expected, pretty_urls): app = mock.MagicMock() app.config = { 'site/root': '/', 'site/pretty_urls': pretty_urls, '__cache/pagination_suffix_re': '/(?P<num>\\d+)$'} actual = split_sub_uri(app, uri) assert actual == (expected[0], expected[1]) @pytest.mark.parametrize('uri, expected, pretty_urls', [ ('/', ('/', 1), True), ('/2/', ('/', 2), True), ('/foo/bar', ('/foo/bar/', 1), True), ('/foo/bar/', ('/foo/bar/', 1), True), ('/foo/bar/2', ('/foo/bar/', 2), True), ('/foo/bar/2/', ('/foo/bar/', 2), True), ('/foo/bar.ext/', ('/foo/bar.ext/', 1), True), ('/foo/bar.ext/2/', ('/foo/bar.ext/', 2), True), ]) def test_split_sub_uri_trailing_slash(uri, expected, pretty_urls): app = mock.MagicMock() app.config = { 'site/root': '/', 'site/pretty_urls': pretty_urls, 'site/trailing_slash': True, '__cache/pagination_suffix_re': '/(?P<num>\\d+)$'} actual = split_sub_uri(app, uri) assert actual == (expected[0], expected[1]) @pytest.mark.parametrize('uri, expected, pretty_urls', [ ('/', ('/', 1), True), ('/2', ('/', 2), True), ('/foo/bar', ('/foo/bar', 1), True), ('/foo/bar/', ('/foo/bar', 1), True), ('/foo/bar/2', ('/foo/bar', 2), True), ('/foo/bar/2/', ('/foo/bar', 2), True), ('/foo/bar.ext', ('/foo/bar.ext', 1), True), ('/foo/bar.ext/2', ('/foo/bar.ext', 2), True), ('/', ('/', 1), False), ('/2.html', ('/', 2), False), ('/foo/bar.html', ('/foo/bar.html', 1), False), ('/foo/bar/2.html', ('/foo/bar.html', 2), False), ('/foo/bar.ext', ('/foo/bar.ext', 1), False), ('/foo/bar/2.ext', ('/foo/bar.ext', 2), False) ]) def test_split_sub_uri_with_root(uri, expected, pretty_urls): app = mock.MagicMock() app.config = { 'site/root': '/whatever/', 'site/pretty_urls': pretty_urls, '__cache/pagination_suffix_re': '/(?P<num>\\d+)$'} actual = split_sub_uri(app, '/whatever' + uri) assert actual == ('/whatever' + expected[0], expected[1])