summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheron Luhn <theron@luhn.com>2021-01-15 10:02:08 -0800
committerTheron Luhn <theron@luhn.com>2021-01-15 10:02:08 -0800
commit8ac39fbf5058deb70903977072874838be156717 (patch)
tree8f2139590146c08136976b7db60de60d0c507ef2
parent837358ee6be552fd2f990d1ed8d6ea9e1c98d583 (diff)
downloadpyramid-8ac39fbf5058deb70903977072874838be156717.tar.gz
pyramid-8ac39fbf5058deb70903977072874838be156717.tar.bz2
pyramid-8ac39fbf5058deb70903977072874838be156717.zip
Fix tests.
-rw-r--r--src/pyramid/router.py8
-rw-r--r--tests/test_router.py19
2 files changed, 25 insertions, 2 deletions
diff --git a/src/pyramid/router.py b/src/pyramid/router.py
index 644a6a395..fb3e5fca6 100644
--- a/src/pyramid/router.py
+++ b/src/pyramid/router.py
@@ -252,8 +252,12 @@ class Router:
return response
finally:
- if request.finished_callbacks:
- request._process_finished_callbacks()
+ self.finish_request(request)
+
+ def finish_request(self, request):
+ if request.finished_callbacks:
+ request._process_finished_callbacks()
+ request.__dict__.pop('context', None)
def __call__(self, environ, start_response):
"""
diff --git a/tests/test_router.py b/tests/test_router.py
index 0f00ea531..17eb5a1c6 100644
--- a/tests/test_router.py
+++ b/tests/test_router.py
@@ -124,6 +124,19 @@ class TestRouter(unittest.TestCase):
klass = self._getTargetClass()
return klass(self.registry)
+ def _mockFinishRequest(self, router):
+ """
+ Mock :meth:`pyramid.router.Router.finish_request` to be a no-op. This
+ prevents :prop:`pyramid.request.Request.context` from being removed, so
+ we can write assertions against it.
+
+ """
+
+ def mock_finish_request(request):
+ pass
+
+ router.finish_request = mock_finish_request
+
def _makeEnviron(self, **extras):
environ = {
'wsgi.url_scheme': 'http',
@@ -421,6 +434,7 @@ class TestRouter(unittest.TestCase):
)
self._registerRootFactory(context)
router = self._makeOne()
+ self._mockFinishRequest(router)
start_response = DummyStartResponse()
result = router(environ, start_response)
self.assertEqual(result, ['Hello world'])
@@ -448,6 +462,7 @@ class TestRouter(unittest.TestCase):
environ = self._makeEnviron()
self._registerView(view, 'foo', IViewClassifier, None, None)
router = self._makeOne()
+ self._mockFinishRequest(router)
start_response = DummyStartResponse()
result = router(environ, start_response)
self.assertEqual(result, ['Hello world'])
@@ -477,6 +492,7 @@ class TestRouter(unittest.TestCase):
environ = self._makeEnviron()
self._registerView(view, '', IViewClassifier, IRequest, IContext)
router = self._makeOne()
+ self._mockFinishRequest(router)
start_response = DummyStartResponse()
result = router(environ, start_response)
self.assertEqual(result, ['Hello world'])
@@ -704,6 +720,7 @@ class TestRouter(unittest.TestCase):
context_found_events = self._registerEventListener(IContextFound)
response_events = self._registerEventListener(INewResponse)
router = self._makeOne()
+ self._mockFinishRequest(router)
start_response = DummyStartResponse()
result = router(environ, start_response)
self.assertEqual(len(request_events), 1)
@@ -767,6 +784,7 @@ class TestRouter(unittest.TestCase):
self._registerView(view, '', IViewClassifier, None, None)
self._registerRootFactory(context)
router = self._makeOne()
+ self._mockFinishRequest(router)
start_response = DummyStartResponse()
result = router(environ, start_response)
self.assertEqual(result, ['Hello world'])
@@ -841,6 +859,7 @@ class TestRouter(unittest.TestCase):
self._registerView(view, '', IViewClassifier, None, None)
self._registerRootFactory(context)
router = self._makeOne()
+ self._mockFinishRequest(router)
start_response = DummyStartResponse()
result = router(environ, start_response)
self.assertEqual(result, ['Hello world'])