Mercurial > piecrust2
diff tests/test_uriutil.py @ 484:d4321317beae
internal: Correctly split sub URIs. Add unit tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 22 Jul 2015 00:07:25 -0700 |
parents | 422052d2e978 |
children | 4284c673bb91 |
line wrap: on
line diff
--- a/tests/test_uriutil.py Tue Jul 21 22:42:47 2015 -0700 +++ b/tests/test_uriutil.py Wed Jul 22 00:07:25 2015 -0700 @@ -27,21 +27,68 @@ @pytest.mark.parametrize('uri, expected, pretty_urls', [ - ('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), - ('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) + ('/', ('/', 1), True), + ('/2', ('/', 2), 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/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/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]) + actual = split_sub_uri(app, '/whatever' + uri) + assert actual == ('/whatever' + expected[0], expected[1])