changeset 176:d47d9493bb0a

routes: When matching URIs, return metadata directly instead of the match object.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 03 Jan 2015 21:54:25 -0800
parents 7aa5f7880f71
children 4b0c87e7df73
files piecrust/routing.py piecrust/serving.py tests/test_serving.py
diffstat 3 files changed, 5 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/routing.py	Sat Jan 03 21:31:38 2015 -0800
+++ b/piecrust/routing.py	Sat Jan 03 21:54:25 2015 -0800
@@ -76,11 +76,11 @@
     def matchUri(self, uri):
         m = self.uri_re.match(uri)
         if m:
-            return m
+            return m.groupdict()
         if self.uri_re_no_path:
             m = self.uri_re_no_path.match(uri)
             if m:
-                return m
+                return m.groupdict()
         return None
 
     def getUri(self, source_metadata, provider=None):
--- a/piecrust/serving.py	Sat Jan 03 21:31:38 2015 -0800
+++ b/piecrust/serving.py	Sat Jan 03 21:54:25 2015 -0800
@@ -418,9 +418,8 @@
     uri = uri.lstrip('/')
     res = []
     for route in routes:
-        m = route.matchUri(uri)
-        if m:
-            metadata = m.groupdict()
+        metadata = route.matchUri(uri)
+        if metadata:
             res.append((route, metadata))
     return res
 
--- a/tests/test_serving.py	Sat Jan 03 21:31:38 2015 -0800
+++ b/tests/test_serving.py	Sat Jan 03 21:54:25 2015 -0800
@@ -22,7 +22,7 @@
         m.source_name = rs['src']
         m.source_realm = rs.setdefault('realm', REALM_USER)
         m.uri_re = re.compile(rs['pat'])
-        m.matchUri = lambda u: m.uri_re.match(u)
+        m.matchUri = lambda u: m.uri_re.match(u).groupdict()
         routes.append(m)
     matching = find_routes(routes, uri)