diff options
| author | Michael Merickel <michael@merickel.org> | 2020-01-08 01:15:02 -0600 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2020-01-08 01:15:02 -0600 |
| commit | 5c05cd9837adcd9b0ee0ee775added2a6d3b6688 (patch) | |
| tree | c729760eae83308d4190f3057ff0db7a45ed8201 /tests/test_scripting.py | |
| parent | 5702c3c3a4357a6071c9ba624a89655209548336 (diff) | |
| download | pyramid-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.py | 24 |
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: |
