summaryrefslogtreecommitdiff
path: root/tests/test_scripting.py
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2020-01-08 01:15:02 -0600
committerMichael Merickel <michael@merickel.org>2020-01-08 01:15:02 -0600
commit5c05cd9837adcd9b0ee0ee775added2a6d3b6688 (patch)
treec729760eae83308d4190f3057ff0db7a45ed8201 /tests/test_scripting.py
parent5702c3c3a4357a6071c9ba624a89655209548336 (diff)
downloadpyramid-5c05cd9837adcd9b0ee0ee775added2a6d3b6688.tar.gz
pyramid-5c05cd9837adcd9b0ee0ee775added2a6d3b6688.tar.bz2
pyramid-5c05cd9837adcd9b0ee0ee775added2a6d3b6688.zip
invoke finished callbacks in prepare/bootstrap closers
Diffstat (limited to 'tests/test_scripting.py')
-rw-r--r--tests/test_scripting.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_scripting.py b/tests/test_scripting.py
index 8f74f35f8..b8a18f57e 100644
--- a/tests/test_scripting.py
+++ b/tests/test_scripting.py
@@ -1,3 +1,4 @@
+from collections import deque
import unittest
@@ -162,6 +163,20 @@ class Test_prepare(unittest.TestCase):
self.assertEqual(request.context, root)
self.assertEqual(request.registry, registry)
+ def test_closer_invokes_finished_callbacks(self):
+ finish_called = [False]
+
+ def finished_callback(request):
+ finish_called[0] = True
+
+ request = DummyRequest({})
+ request.registry = self._makeRegistry()
+ info = self._callFUT(request=request)
+ request.add_finished_callback(finished_callback)
+ closer = info['closer']
+ closer()
+ self.assertTrue(finish_called[0])
+
class Test__make_request(unittest.TestCase):
def _callFUT(self, path='/', registry=None):
@@ -234,6 +249,15 @@ class DummyRequest(object):
def __init__(self, environ):
self.environ = environ
+ self.finished_callbacks = deque()
+
+ def add_finished_callback(self, cb):
+ self.finished_callbacks.append(cb)
+
+ def _process_finished_callbacks(self):
+ while self.finished_callbacks:
+ cb = self.finished_callbacks.popleft()
+ cb(self)
class DummyExtensions: