diff options
author | Yurii Karabas <1998uriyyo@gmail.com> | 2020-11-25 11:50:44 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-25 11:50:44 (GMT) |
commit | b9127dd6eedd693cfd716a4444648864e2e00186 (patch) | |
tree | e764966cdfca102d15e1a281312d096c0388c2e4 /Lib/test/test_asyncio | |
parent | 7301979b23406220510dd2c7934a21b41b647119 (diff) | |
download | cpython-b9127dd6eedd693cfd716a4444648864e2e00186.zip cpython-b9127dd6eedd693cfd716a4444648864e2e00186.tar.gz cpython-b9127dd6eedd693cfd716a4444648864e2e00186.tar.bz2 |
bpo-42392: Improve removal of *loop* parameter in asyncio primitives (GH-23499)
* Update code after merge review from 1st1
* Use a sentinel approach for loop parameter
Remove unnecessary _get_running_loop patching
* Use more clear function name (_verify_parameter_is_marker -> _verify_no_loop)
* Add init method to _LoopBoundMixin to check that loop param wasn't used
Diffstat (limited to 'Lib/test/test_asyncio')
-rw-r--r-- | Lib/test/test_asyncio/test_locks.py | 17 | ||||
-rw-r--r-- | Lib/test/test_asyncio/utils.py | 21 |
2 files changed, 17 insertions, 21 deletions
diff --git a/Lib/test/test_asyncio/test_locks.py b/Lib/test/test_asyncio/test_locks.py index 6c34ef6..6194cd0 100644 --- a/Lib/test/test_asyncio/test_locks.py +++ b/Lib/test/test_asyncio/test_locks.py @@ -51,6 +51,23 @@ class LockTests(test_utils.TestCase): self.assertFalse(lock.locked()) + def test_lock_doesnt_accept_loop_parameter(self): + primitives_cls = [ + asyncio.Lock, + asyncio.Condition, + asyncio.Event, + asyncio.Semaphore, + asyncio.BoundedSemaphore, + ] + + for cls in primitives_cls: + with self.assertRaisesRegex( + TypeError, + rf'As of 3.10, the \*loop\* parameter was removed from ' + rf'{cls.__name__}\(\) since it is no longer necessary' + ): + cls(loop=self.loop) + def test_lock_by_with_statement(self): loop = asyncio.new_event_loop() # don't use TestLoop quirks self.set_event_loop(loop) diff --git a/Lib/test/test_asyncio/utils.py b/Lib/test/test_asyncio/utils.py index aba90c9..67180f7 100644 --- a/Lib/test/test_asyncio/utils.py +++ b/Lib/test/test_asyncio/utils.py @@ -541,31 +541,10 @@ class TestCase(unittest.TestCase): self.set_event_loop(loop) return loop - def unpatch_get_running_loop(self): - events._get_running_loop = self._get_running_loop - def setUp(self): - self._get_running_loop = events._get_running_loop - - def _get_running_loop(): - frame = sys._getframe(1) - - if frame.f_globals['__name__'] == 'asyncio.mixins': - # When we called from LoopBoundedMixin we should - # fallback to default implementation of get_running_loop - try: - return events.get_running_loop() - except RuntimeError: - return None - - return None - - events._get_running_loop = _get_running_loop self._thread_cleanup = threading_helper.threading_setup() def tearDown(self): - self.unpatch_get_running_loop() - events.set_event_loop(None) # Detect CPython bug #23353: ensure that yield/yield-from is not used |