Mercurial > piecrust2
comparison piecrust/serving.py @ 231:137bcd498ef9
serve: Fix a bug where empty route metadata is not the same as invalid route.
Some routes can capture no metadata at all, like for example when
`foo/%path:slug%` is capturing URL `foo`. The route is still valid, so it
returns an empty dictionary. It's not the same as returning `None`, which means
"no match".
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 11 Feb 2015 08:31:13 -0800 |
parents | a951cd4ef361 |
children | e534d2bc657c |
comparison
equal
deleted
inserted
replaced
230:016d42c23ba9 | 231:137bcd498ef9 |
---|---|
412 def find_routes(routes, uri): | 412 def find_routes(routes, uri): |
413 uri = uri.lstrip('/') | 413 uri = uri.lstrip('/') |
414 res = [] | 414 res = [] |
415 for route in routes: | 415 for route in routes: |
416 metadata = route.matchUri(uri) | 416 metadata = route.matchUri(uri) |
417 if metadata: | 417 if metadata is not None: |
418 res.append((route, metadata)) | 418 res.append((route, metadata)) |
419 return res | 419 return res |
420 | 420 |
421 | 421 |
422 class ErrorMessageLoader(FileSystemLoader): | 422 class ErrorMessageLoader(FileSystemLoader): |