diff tests/test_uriutil.py @ 3:f485ba500df3

Gigantic change to basically make PieCrust 2 vaguely functional. - Serving works, with debug window. - Baking works, multi-threading, with dependency handling. - Various things not implemented yet.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 10 Aug 2014 23:43:16 -0700
parents
children 474c9882decf
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_uriutil.py	Sun Aug 10 23:43:16 2014 -0700
@@ -0,0 +1,26 @@
+import pytest
+from piecrust.uriutil import UriInfo, parse_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.iteritems():
+        if 'taxonomy' not in args:
+            args['taxonomy'] = None
+
+    actual = parse_uri(routes, uri)
+    assert actual == expected
+