diff options
| author | Chris McDonough <chrism@plope.com> | 2012-09-11 01:54:50 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2012-09-11 01:54:50 -0400 |
| commit | 5d0859ce87c39d906bd15bce45ddf13060fffdec (patch) | |
| tree | 2116a49368f7139ce5646a9e0670c546532e899e | |
| parent | 0ffe79be0502a616abb19b13d1d02741c677b38e (diff) | |
| download | pyramid-5d0859ce87c39d906bd15bce45ddf13060fffdec.tar.gz pyramid-5d0859ce87c39d906bd15bce45ddf13060fffdec.tar.bz2 pyramid-5d0859ce87c39d906bd15bce45ddf13060fffdec.zip | |
set request.context as root unless a request context already exists
| -rw-r--r-- | pyramid/scripting.py | 2 | ||||
| -rw-r--r-- | pyramid/tests/test_scripting.py | 19 |
2 files changed, 18 insertions, 3 deletions
diff --git a/pyramid/scripting.py b/pyramid/scripting.py index 0ab6541ae..00177986f 100644 --- a/pyramid/scripting.py +++ b/pyramid/scripting.py @@ -81,6 +81,8 @@ def prepare(request=None, registry=None): root_factory = registry.queryUtility(IRootFactory, default=DefaultRootFactory) root = root_factory(request) + if getattr(request, 'context', None) is None: + request.context = root return {'root':root, 'closer':closer, 'registry':registry, 'request':request, 'root_factory':root_factory} diff --git a/pyramid/tests/test_scripting.py b/pyramid/tests/test_scripting.py index 4dab5cee5..1ccc7af3b 100644 --- a/pyramid/tests/test_scripting.py +++ b/pyramid/tests/test_scripting.py @@ -63,19 +63,20 @@ class Test_prepare(unittest.TestCase): def test_it_norequest(self): registry = self._makeRegistry([DummyFactory, None, DummyFactory]) info = self._callFUT(registry=registry) - root, closer = info['root'], info['closer'] + root, closer, request = info['root'], info['closer'], info['request'] pushed = self.manager.get() self.assertEqual(pushed['registry'], registry) self.assertEqual(pushed['request'].registry, registry) self.assertEqual(root.a, (pushed['request'],)) closer() self.assertEqual(self.default, self.manager.get()) + self.assertEqual(request.context, root) def test_it_withrequest(self): request = DummyRequest({}) registry = request.registry = self._makeRegistry() info = self._callFUT(request=request) - root, closer = info['root'], info['closer'] + root, closer, request = info['root'], info['closer'], info['request'] pushed = self.manager.get() self.assertEqual(pushed['request'], request) self.assertEqual(pushed['registry'], registry) @@ -83,12 +84,13 @@ class Test_prepare(unittest.TestCase): self.assertEqual(root.a, (request,)) closer() self.assertEqual(self.default, self.manager.get()) + self.assertEqual(request.context, root) def test_it_with_request_and_registry(self): request = DummyRequest({}) registry = request.registry = self._makeRegistry() info = self._callFUT(request=request, registry=registry) - root, closer = info['root'], info['closer'] + root, closer, root = info['root'], info['closer'], info['root'] pushed = self.manager.get() self.assertEqual(pushed['request'], request) self.assertEqual(pushed['registry'], registry) @@ -96,6 +98,17 @@ class Test_prepare(unittest.TestCase): self.assertEqual(root.a, (request,)) closer() self.assertEqual(self.default, self.manager.get()) + self.assertEqual(request.context, root) + + def test_it_with_request_context_already_set(self): + request = DummyRequest({}) + context = Dummy() + request.context = context + registry = request.registry = self._makeRegistry() + info = self._callFUT(request=request, registry=registry) + root, closer, root = info['root'], info['closer'], info['root'] + closer() + self.assertEqual(request.context, context) def test_it_with_extensions(self): exts = Dummy() |
