summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio
diff options
context:
space:
mode:
authorYurii Karabas <1998uriyyo@gmail.com>2020-11-25 11:50:44 (GMT)
committerGitHub <noreply@github.com>2020-11-25 11:50:44 (GMT)
commitb9127dd6eedd693cfd716a4444648864e2e00186 (patch)
treee764966cdfca102d15e1a281312d096c0388c2e4 /Lib/test/test_asyncio
parent7301979b23406220510dd2c7934a21b41b647119 (diff)
downloadcpython-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.py17
-rw-r--r--Lib/test/test_asyncio/utils.py21
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