Mercurial > piecrust2
comparison tests/test_serving.py @ 6:f5ca5c5bed85
More Python 3 fixes, modularization, and new unit tests.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Sat, 16 Aug 2014 08:15:30 -0700 |
| parents | tests/test_server.py@f485ba500df3 |
| children | 7aa5f7880f71 |
comparison
equal
deleted
inserted
replaced
| 5:474c9882decf | 6:f5ca5c5bed85 |
|---|---|
| 1 import re | |
| 2 import pytest | |
| 3 import mock | |
| 4 from piecrust.serving import find_routes | |
| 5 from piecrust.sources.base import REALM_USER, REALM_THEME | |
| 6 | |
| 7 | |
| 8 @pytest.mark.parametrize('uri, route_specs, expected', | |
| 9 [ | |
| 10 ('/', | |
| 11 [{'src': 'pages', 'pat': '(?P<path>.*)'}], | |
| 12 [('pages', {'path': ''})]), | |
| 13 ('/', | |
| 14 [{'src': 'pages', 'pat': '(?P<path>.*)'}, | |
| 15 {'src': 'theme', 'pat': '(?P<path>.*)', 'realm': REALM_THEME}], | |
| 16 [('pages', {'path': ''}), ('theme', {'path': ''})]) | |
| 17 ]) | |
| 18 def test_find_routes(uri, route_specs, expected): | |
| 19 routes = [] | |
| 20 for rs in route_specs: | |
| 21 m = mock.Mock() | |
| 22 m.source_name = rs['src'] | |
| 23 m.source_realm = rs.setdefault('realm', REALM_USER) | |
| 24 m.uri_re = re.compile(rs['pat']) | |
| 25 routes.append(m) | |
| 26 matching = find_routes(routes, uri) | |
| 27 | |
| 28 assert len(matching) == len(expected) | |
| 29 for i in range(len(matching)): | |
| 30 route, metadata = matching[i] | |
| 31 exp_source, exp_md = expected[i] | |
| 32 assert route.source_name == exp_source | |
| 33 assert metadata == exp_md | |
| 34 |
