diff options
| -rw-r--r-- | CHANGES.txt | 20 | ||||
| -rw-r--r-- | repoze/bfg/urldispatch.py | 4 |
2 files changed, 21 insertions, 3 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 9a9db1c40..4f73d2895 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,7 +1,25 @@ 0.8dev (unreleased) ------------------- -... +Bug Fixes +--------- + +- In version 0.6.3, passing a ``get_root`` callback (a "root factory") + to ``repoze.bfg.router.make_app`` became optional if any ``route`` + declaration was made in ZCML. The intent was to make it possible to + disuse traversal entirely, instead relying entirely on URL dispatch + (Routes) to resolve all contexts. However a compound set of bugs + prevented usage of a Routes-based root view (a view which responds + to "/"). One bug existed in `repoze.bfg.urldispatch``, another + existed in Routes itself. + + To resolve this issue, the urldispatch module was fixed, and a fork + of the Routes trunk was put into the "dev" index named + ``Routes-1.11dev-chrism-home``. The source for the fork exists at + `http://bitbucket.org/chrism/routes-home/ + <http://bitbucket.org/chrism/routes-home/>`_; its contents have been + reported to the upstream Routes developers and will hopefully be a + part of the final Routes 1.11 release. 0.8a5 (2009-05-08) ------------------ diff --git a/repoze/bfg/urldispatch.py b/repoze/bfg/urldispatch.py index 526db3a9a..d3baf6d9f 100644 --- a/repoze/bfg/urldispatch.py +++ b/repoze/bfg/urldispatch.py @@ -64,7 +64,7 @@ class RoutesMapper(object): path = environ.get('PATH_INFO', '/') self.mapper.environ = environ args = self.mapper.match(path) - if args: + if isinstance(args, dict): # might be an empty dict context_factory = args.get('context_factory', _marker) if context_factory is _marker: context_factory = DefaultRoutesContext @@ -165,7 +165,7 @@ class RoutesRootFactory(Mapper): args, route = match else: args = None - if args: + if isinstance(args, dict): # might be an empty dict args = args.copy() routepath = route.routepath factory = route._factory |
