diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-01-15 12:17:34 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-01-15 12:17:34 (GMT) |
commit | 33cb0396e86841aa3af033071aa8a00abbdba4d4 (patch) | |
tree | 797cd23b68055b5df248d6c335e7d86c21cf4cf5 | |
parent | 41ed958ee6f0ff15836e11013d1cada8c3ae90fc (diff) | |
download | cpython-33cb0396e86841aa3af033071aa8a00abbdba4d4.zip cpython-33cb0396e86841aa3af033071aa8a00abbdba4d4.tar.gz cpython-33cb0396e86841aa3af033071aa8a00abbdba4d4.tar.bz2 |
Issue #23243: Close explicitly event loops in asyncio tests
-rw-r--r-- | Lib/test/test_asyncio/test_base_events.py | 1 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_proactor_events.py | 4 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_selector_events.py | 16 |
3 files changed, 20 insertions, 1 deletions
diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py index bd6c0d8..9e7c50c 100644 --- a/Lib/test/test_asyncio/test_base_events.py +++ b/Lib/test/test_asyncio/test_base_events.py @@ -590,6 +590,7 @@ class BaseEventLoopTests(test_utils.TestCase): raise ValueError('spam') loop = Loop() + self.addCleanup(loop.close) asyncio.set_event_loop(loop) def run_loop(): diff --git a/Lib/test/test_asyncio/test_proactor_events.py b/Lib/test/test_asyncio/test_proactor_events.py index 8258238..08c622a 100644 --- a/Lib/test/test_asyncio/test_proactor_events.py +++ b/Lib/test/test_asyncio/test_proactor_events.py @@ -16,6 +16,7 @@ class ProactorSocketTransportTests(test_utils.TestCase): def setUp(self): self.loop = self.new_test_loop() + self.addCleanup(self.loop.close) self.proactor = mock.Mock() self.loop._proactor = self.proactor self.protocol = test_utils.make_test_protocol(asyncio.Protocol) @@ -459,6 +460,9 @@ class BaseProactorEventLoopTests(test_utils.TestCase): self.assertIsNone(self.loop._ssock) self.assertIsNone(self.loop._csock) + # Don't call close(): _close_self_pipe() cannot be called twice + self.loop._closed = True + def test_close(self): self.loop._close_self_pipe = mock.Mock() self.loop.close() diff --git a/Lib/test/test_asyncio/test_selector_events.py b/Lib/test/test_asyncio/test_selector_events.py index 3e8392e..f519419 100644 --- a/Lib/test/test_asyncio/test_selector_events.py +++ b/Lib/test/test_asyncio/test_selector_events.py @@ -24,6 +24,11 @@ MOCK_ANY = mock.ANY class TestBaseSelectorEventLoop(BaseSelectorEventLoop): + def close(self): + # Don't call the close() method of the parent class, because the + # selector is mocked + self._closed = True + def _make_self_pipe(self): self._ssock = mock.Mock() self._csock = mock.Mock() @@ -40,7 +45,7 @@ class BaseSelectorEventLoopTests(test_utils.TestCase): self.selector = mock.Mock() self.selector.select.return_value = [] self.loop = TestBaseSelectorEventLoop(self.selector) - self.set_event_loop(self.loop, cleanup=False) + self.set_event_loop(self.loop) def test_make_socket_transport(self): m = mock.Mock() @@ -76,6 +81,15 @@ class BaseSelectorEventLoopTests(test_utils.TestCase): self.loop._make_ssl_transport(m, m, m, m) def test_close(self): + class EventLoop(BaseSelectorEventLoop): + def _make_self_pipe(self): + self._ssock = mock.Mock() + self._csock = mock.Mock() + self._internal_fds += 1 + + self.loop = EventLoop(self.selector) + self.set_event_loop(self.loop) + ssock = self.loop._ssock ssock.fileno.return_value = 7 csock = self.loop._csock |