summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2012-09-11 01:54:50 -0400
committerChris McDonough <chrism@plope.com>2012-09-11 01:54:50 -0400
commit5d0859ce87c39d906bd15bce45ddf13060fffdec (patch)
tree2116a49368f7139ce5646a9e0670c546532e899e
parent0ffe79be0502a616abb19b13d1d02741c677b38e (diff)
downloadpyramid-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.py2
-rw-r--r--pyramid/tests/test_scripting.py19
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()