diff options
Diffstat (limited to 'repoze')
| -rw-r--r-- | repoze/bfg/tests/routesapp/configure.zcml | 5 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 11 | ||||
| -rw-r--r-- | repoze/bfg/zcml.py | 12 |
3 files changed, 19 insertions, 9 deletions
diff --git a/repoze/bfg/tests/routesapp/configure.zcml b/repoze/bfg/tests/routesapp/configure.zcml index acd1d9d9e..17653615a 100644 --- a/repoze/bfg/tests/routesapp/configure.zcml +++ b/repoze/bfg/tests/routesapp/configure.zcml @@ -3,8 +3,9 @@ <include package="repoze.bfg.includes" /> <route - path=":id/:view_name" - provides=".models.IFixture"/> + path=":id" + provides=".models.IFixture" + view_name="default"/> <view name="default" diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index a2653f262..50d8a468a 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -290,7 +290,7 @@ class TestConnectRouteFunction(unittest.TestCase): parent_member_name='p', parent_collection_name='c', condition_method='GET', condition_subdomain=True, condition_function=foo, subdomains=['a'], - factory=foo, provides=[IDummy]) + factory=foo, provides=[IDummy], view_name='def') self._callFUT(directive) self.assertEqual(len(mapper.connections), 1) self.assertEqual(mapper.connections[0][0], ('a/b/c',)) @@ -310,6 +310,7 @@ class TestConnectRouteFunction(unittest.TestCase): 'conditions':c, '_factory':foo, '_provides':[IDummy], + 'view_name':'def', }) def test_condition_subdomain_true(self): @@ -403,8 +404,11 @@ class TestRouteGroupingContextDecorator(unittest.TestCase): parent_collection_name='p') self.assertEqual(route.parent_member_name, 'a') self.assertEqual(route.parent_collection_name, 'p') - - + + def test_explicit_view_name(self): + context = DummyContext() + route = self._makeOne(context, 'abc', view_name='def') + self.assertEqual(route.view_name, 'def') class TestZCMLPickling(unittest.TestCase): i = 0 @@ -760,6 +764,7 @@ class DummyRouteDirective: subdomains = None path = 'a/b/c' name = None + view_name = '' factory = None provides = () def __init__(self, **kw): diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index 463090146..a0aa613da 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -273,6 +273,7 @@ class IRouteDirective(Interface): """ path = TextLine(title=u'path', required=True) name = TextLine(title=u'name', required=False) + view_name = TextLine(title=u'view_name', required=False) factory = GlobalObject(title=u'context factory', required=False) provides = Tokens(title=u'context interfaces', required=False, value_type=GlobalObject()) @@ -303,6 +304,8 @@ def connect_route(directive): args.append(directive.name) args.append(directive.path) kw = dict(requirements=directive.requirements) + if directive.view_name: + kw['view_name'] = directive.view_name if directive.minimize: kw['_minimize'] = True if directive.explicit: @@ -349,16 +352,17 @@ class Route(zope.configuration.config.GroupingContextDecorator): implements(zope.configuration.config.IConfigurationContext,IRouteDirective) - def __init__(self, context, path, name=None, factory=None, - provides=(), minimize=True, encoding=None, - static=False, filter=None, absolute=False, - member_name=None, collection_name=None, condition_method=None, + def __init__(self, context, path, name=None, view_name='', factory=None, + provides=(), minimize=True, encoding=None, static=False, + filter=None, absolute=False, member_name=None, + collection_name=None, condition_method=None, condition_subdomain=None, condition_function=None, parent_member_name=None, parent_collection_name=None, subdomains=None, explicit=False): self.context = context self.path = path self.name = name + self.view_name = view_name self.factory = factory self.provides = provides self.minimize = minimize |
