Mercurial > piecrust2
comparison tests/test_routing.py @ 787:f6f9a284a5f3
routing: Simplify how route functions are declared and handled.
* Site config now only has to declare the function name.
* Simply code for running route functions.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 01 Sep 2016 23:00:58 -0700 |
parents | 6b6c5442c790 |
children | 58ebf50235a5 |
comparison
equal
deleted
inserted
replaced
786:97c1dc568810 | 787:f6f9a284a5f3 |
---|---|
24 m = route.matchesMetadata(metadata) | 24 m = route.matchesMetadata(metadata) |
25 assert m == expected | 25 assert m == expected |
26 | 26 |
27 | 27 |
28 @pytest.mark.parametrize( | 28 @pytest.mark.parametrize( |
29 'site_root, route_pattern, expected_required_metadata', | 29 'site_root, route_pattern, expected_func_parameters', |
30 [ | 30 [ |
31 ('/', '/%foo%', set(['foo'])), | 31 ('/', '/%foo%', ['foo']), |
32 ('/', '/%path:foo%', set(['foo'])), | 32 ('/', '/%path:foo%', ['foo']), |
33 ('/', '/%foo%/%bar%', set(['foo', 'bar'])), | 33 ('/', '/%foo%/%bar%', ['foo', 'bar']), |
34 ('/', '/%foo%/%path:bar%', set(['foo', 'bar'])), | 34 ('/', '/%foo%/%path:bar%', ['foo', 'bar']), |
35 ('/something', '/%foo%', set(['foo'])), | 35 ('/something', '/%foo%', ['foo']), |
36 ('/something', '/%path:foo%', set(['foo'])), | 36 ('/something', '/%path:foo%', ['foo']), |
37 ('/something', '/%foo%/%bar%', set(['foo', 'bar'])), | 37 ('/something', '/%foo%/%bar%', ['foo', 'bar']), |
38 ('/something', '/%foo%/%path:bar%', set(['foo', 'bar'])), | 38 ('/something', '/%foo%/%path:bar%', ['foo', 'bar']), |
39 ('/~johndoe', '/%foo%', set(['foo'])), | 39 ('/~johndoe', '/%foo%', ['foo']), |
40 ('/~johndoe', '/%path:foo%', set(['foo'])), | 40 ('/~johndoe', '/%path:foo%', ['foo']), |
41 ('/~johndoe', '/%foo%/%bar%', set(['foo', 'bar'])), | 41 ('/~johndoe', '/%foo%/%bar%', ['foo', 'bar']), |
42 ('/~johndoe', '/%foo%/%path:bar%', set(['foo', 'bar'])) | 42 ('/~johndoe', '/%foo%/%path:bar%', ['foo', 'bar']) |
43 ]) | 43 ]) |
44 def test_required_metadata(site_root, route_pattern, | 44 def test_required_metadata(site_root, route_pattern, |
45 expected_required_metadata): | 45 expected_func_parameters): |
46 app = get_mock_app() | 46 app = get_mock_app() |
47 app.config.set('site/root', site_root.rstrip('/') + '/') | 47 app.config.set('site/root', site_root.rstrip('/') + '/') |
48 config = {'url': route_pattern, 'source': 'blah'} | 48 config = {'url': route_pattern, 'source': 'blah'} |
49 route = Route(app, config) | 49 route = Route(app, config) |
50 assert route.required_route_metadata == expected_required_metadata | 50 assert route.func_parameters == expected_func_parameters |
51 | 51 |
52 | 52 |
53 @pytest.mark.parametrize( | 53 @pytest.mark.parametrize( |
54 'site_root, config, uri, expected_match', | 54 'site_root, config, uri, expected_match', |
55 [ | 55 [ |