Mercurial > piecrust2
view tests/test_uriutil.py @ 219:d7a548ebcd58
serve: Add server sent events for showing pipeline errors in the debug window.
The server can now run an endpoint that streams pipeline status, including
errors or "fixed" statuses.
As a result, I had to investigate using event-loop based server alternatives,
before I figured out the correct flag to set in Werkzeug. Support for Gunicorn
is therefore now possible, although disabled by default. I will come in handy
though when proper support for CMS-mode is enabled.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 02 Feb 2015 08:34:44 -0800 |
parents | 62c7a97c8340 |
children | eb958151c8dc |
line wrap: on
line source
import mock import pytest from piecrust.uriutil import UriInfo, parse_uri, get_first_sub_uri @pytest.mark.parametrize('routes, uri, expected', [ ({}, '/foo', None), ( {'/articles/%slug%': {'source': 'dummy'}}, '/articles/foo', UriInfo('', 'dummy', {'slug': 'foo'})), ( {'/foo/%bar%': {'source': 'foo'}, '/other/%one%-%two%': {'source': 'other'}}, '/other/some-thing', UriInfo('', 'other', {'one': 'some', 'two': 'thing'})) ]) def test_parse_uri(routes, uri, expected): if expected is not None: expected.uri = uri for pattern, args in routes.items(): if 'taxonomy' not in args: args['taxonomy'] = None actual = parse_uri(routes, uri) assert actual == expected @pytest.mark.parametrize('uri, expected, pretty_urls', [ ('foo/bar', 'foo/bar', True), ('foo/bar/2', 'foo/bar', True), ('foo/bar.ext', 'foo/bar.ext', True), ('foo/bar.ext/2', 'foo/bar.ext', True), ('foo/bar.html', 'foo/bar.html', False), ('foo/bar/2.html', 'foo/bar.html', False), ('foo/bar.ext', 'foo/bar.ext', False), ('foo/bar/2.ext', 'foo/bar.ext', False) ]) def test_get_first_sub_uri(uri, expected, pretty_urls): app = mock.MagicMock() app.config = { 'site/pretty_urls': pretty_urls, '__cache/pagination_suffix_re': '/(\\d+)$'} actual = get_first_sub_uri(app, uri) assert actual == expected