summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-25 20:52:35 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-25 20:52:35 +0000
commit8cfe7068783a3520aa3bc09f260502d002e9ac60 (patch)
treea05a4b50ce747cfef448ef795b349d0128601549 /repoze/bfg/tests
parenta6e0463027dee43c6aac487a9ea8bb844b1e8add (diff)
downloadpyramid-8cfe7068783a3520aa3bc09f260502d002e9ac60.tar.gz
pyramid-8cfe7068783a3520aa3bc09f260502d002e9ac60.tar.bz2
pyramid-8cfe7068783a3520aa3bc09f260502d002e9ac60.zip
- The ``repoze.bfg.urldispatch.RoutesRootFactory`` now injects the
``wsgiorg.routing_args`` environment variable into the environ when a route matches. This is a tuple of ((), routing_args) where routing_args is the value that comes back from the routes mapper match (the "match dict"). - The ``repoze.bfg.traversal.RoutesModelTraverser`` class now wants to obtain the ``view_name`` and ``subpath`` from the ``wsgiorgs.routing_args`` environment variable. It falls back to obtaining these from the context for backwards compatibility.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_traversal.py28
-rw-r--r--repoze/bfg/tests/test_urldispatch.py6
2 files changed, 30 insertions, 4 deletions
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index 2de08a314..04dfd1bca 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -225,7 +225,7 @@ class RoutesModelTraverserTests(unittest.TestCase):
from repoze.bfg.interfaces import ITraverser
verifyObject(ITraverser, self._makeOne(None))
- def test_call_with_only_controller(self):
+ def test_call_with_only_controller_bwcompat(self):
model = DummyContext()
model.controller = 'controller'
traverser = self._makeOne(model)
@@ -234,7 +234,7 @@ class RoutesModelTraverserTests(unittest.TestCase):
self.assertEqual(result[1], 'controller')
self.assertEqual(result[2], [])
- def test_call_with_only_view_name(self):
+ def test_call_with_only_view_name_bwcompat(self):
model = DummyContext()
model.view_name = 'view_name'
traverser = self._makeOne(model)
@@ -243,7 +243,7 @@ class RoutesModelTraverserTests(unittest.TestCase):
self.assertEqual(result[1], 'view_name')
self.assertEqual(result[2], [])
- def test_call_with_subpath(self):
+ def test_call_with_subpath_bwcompat(self):
model = DummyContext()
model.view_name = 'view_name'
model.subpath = '/a/b/c'
@@ -253,7 +253,7 @@ class RoutesModelTraverserTests(unittest.TestCase):
self.assertEqual(result[1], 'view_name')
self.assertEqual(result[2], ['a', 'b', 'c'])
- def test_call_with_no_view_name_or_controller(self):
+ def test_call_with_no_view_name_or_controller_bwcompat(self):
model = DummyContext()
traverser = self._makeOne(model)
result = traverser({})
@@ -261,6 +261,26 @@ class RoutesModelTraverserTests(unittest.TestCase):
self.assertEqual(result[1], '')
self.assertEqual(result[2], [])
+ def test_call_with_only_view_name(self):
+ model = DummyContext()
+ traverser = self._makeOne(model)
+ routing_args = ((), {'view_name':'view_name'})
+ environ = {'wsgiorg.routing_args': routing_args}
+ result = traverser(environ)
+ self.assertEqual(result[0], model)
+ self.assertEqual(result[1], 'view_name')
+ self.assertEqual(result[2], [])
+
+ def test_call_with_view_name_and_subpath(self):
+ model = DummyContext()
+ traverser = self._makeOne(model)
+ routing_args = ((), {'view_name':'view_name', 'subpath':'/a/b/c'})
+ environ = {'wsgiorg.routing_args': routing_args}
+ result = traverser(environ)
+ self.assertEqual(result[0], model)
+ self.assertEqual(result[1], 'view_name')
+ self.assertEqual(result[2], ['a', 'b','c'])
+
class FindInterfaceTests(unittest.TestCase):
def _callFUT(self, context, iface):
from repoze.bfg.traversal import find_interface
diff --git a/repoze/bfg/tests/test_urldispatch.py b/repoze/bfg/tests/test_urldispatch.py
index e332351a7..71ac78698 100644
--- a/repoze/bfg/tests/test_urldispatch.py
+++ b/repoze/bfg/tests/test_urldispatch.py
@@ -111,6 +111,10 @@ class RoutesRootFactoryTests(unittest.TestCase):
self.assertEqual(result.view_name, 'foo')
self.assertEqual(result.action, 'action1')
self.assertEqual(result.article, 'article1')
+ routing_args = environ['wsgiorg.routing_args'][1]
+ self.assertEqual(routing_args['view_name'], 'foo')
+ self.assertEqual(routing_args['action'], 'action1')
+ self.assertEqual(routing_args['article'], 'article1')
def test_unicode_in_route_default(self):
marker = ()
@@ -128,6 +132,8 @@ class RoutesRootFactoryTests(unittest.TestCase):
from repoze.bfg.interfaces import IRoutesContext
self.failUnless(IRoutesContext.providedBy(result))
self.assertEqual(getattr(result, la.encode('utf-8')), 'id')
+ routing_args = environ['wsgiorg.routing_args'][1]
+ self.assertEqual(routing_args[la.encode('utf-8')], 'id')
def test_no_fallback_get_root(self):
marker = ()