diff options
Diffstat (limited to 'Lib/asyncio')
| -rw-r--r-- | Lib/asyncio/proactor_events.py | 12 | ||||
| -rw-r--r-- | Lib/asyncio/selector_events.py | 10 | ||||
| -rw-r--r-- | Lib/asyncio/test_utils.py | 17 |
3 files changed, 20 insertions, 19 deletions
diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py index 967a696961..6f621ef0cc 100644 --- a/Lib/asyncio/proactor_events.py +++ b/Lib/asyncio/proactor_events.py @@ -160,20 +160,16 @@ class _ProactorReadPipeTransport(_ProactorBasePipeTransport, self._loop.call_soon(self._loop_reading) def pause_reading(self): - if self._closing: - raise RuntimeError('Cannot pause_reading() when closing') - if self._paused: - raise RuntimeError('Already paused') + if self._closing or self._paused: + return self._paused = True if self._loop.get_debug(): logger.debug("%r pauses reading", self) def resume_reading(self): - if not self._paused: - raise RuntimeError('Not paused') - self._paused = False - if self._closing: + if self._closing or not self._paused: return + self._paused = False if self._reschedule_on_resume: self._loop.call_soon(self._loop_reading, self._read_fut) self._reschedule_on_resume = False diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py index 81dfd7651c..bc7c740cc2 100644 --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -703,18 +703,16 @@ class _SelectorSocketTransport(_SelectorTransport): waiter, None) def pause_reading(self): - if self._closing: - raise RuntimeError('Cannot pause_reading() when closing') - if self._paused: - raise RuntimeError('Already paused') + if self._closing or self._paused: + return self._paused = True self._loop._remove_reader(self._sock_fd) if self._loop.get_debug(): logger.debug("%r pauses reading", self) def resume_reading(self): - if not self._paused: - raise RuntimeError('Not paused') + if self._closing or not self._paused: + return self._paused = False self._add_reader(self._sock_fd, self._read_ready) if self._loop.get_debug(): diff --git a/Lib/asyncio/test_utils.py b/Lib/asyncio/test_utils.py index 8b8c22a747..f41720428c 100644 --- a/Lib/asyncio/test_utils.py +++ b/Lib/asyncio/test_utils.py @@ -335,12 +335,19 @@ class TestLoop(base_events.BaseEventLoop): return False def assert_reader(self, fd, callback, *args): - assert fd in self.readers, 'fd {} is not registered'.format(fd) + if fd not in self.readers: + raise AssertionError(f'fd {fd} is not registered') handle = self.readers[fd] - assert handle._callback == callback, '{!r} != {!r}'.format( - handle._callback, callback) - assert handle._args == args, '{!r} != {!r}'.format( - handle._args, args) + if handle._callback != callback: + raise AssertionError( + f'unexpected callback: {handle._callback} != {callback}') + if handle._args != args: + raise AssertionError( + f'unexpected callback args: {handle._args} != {args}') + + def assert_no_reader(self, fd): + if fd in self.readers: + raise AssertionError(f'fd {fd} is registered') def _add_writer(self, fd, callback, *args): self.writers[fd] = events.Handle(callback, args, self) |
