summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorAndrew Svetlov <andrew.svetlov@gmail.com>2022-03-23 15:43:05 (GMT)
committerGitHub <noreply@github.com>2022-03-23 15:43:05 (GMT)
commit0360e9f34659e7d7f3dae021b82f78452db8c714 (patch)
treef88f12dd56fb3f0cca5557447835c94fbea12cb5 /Lib/test
parent624e3986fbf8467772e4863b7ec004e65adff619 (diff)
downloadcpython-0360e9f34659e7d7f3dae021b82f78452db8c714.zip
cpython-0360e9f34659e7d7f3dae021b82f78452db8c714.tar.gz
cpython-0360e9f34659e7d7f3dae021b82f78452db8c714.tar.bz2
bpo-46829: Deprecate passing a message into Future.cancel() and Task.cancel() (GH-31840)
After a long deliberation we ended up feeling that the message argument for Future.cancel(), added in 3.9, was a bad idea, so we're deprecating it in 3.11 and plan to remove it in 3.13.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_asyncio/test_futures.py12
-rw-r--r--Lib/test/test_asyncio/test_taskgroups.py8
-rw-r--r--Lib/test/test_asyncio/test_tasks.py54
3 files changed, 59 insertions, 15 deletions
diff --git a/Lib/test/test_asyncio/test_futures.py b/Lib/test/test_asyncio/test_futures.py
index 84d7d45..cf677f6 100644
--- a/Lib/test/test_asyncio/test_futures.py
+++ b/Lib/test/test_asyncio/test_futures.py
@@ -228,14 +228,22 @@ class BaseFutureTests:
self.assertTrue(hasattr(f, '_cancel_message'))
self.assertEqual(f._cancel_message, None)
- f.cancel('my message')
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ f.cancel('my message')
with self.assertRaises(asyncio.CancelledError):
self.loop.run_until_complete(f)
self.assertEqual(f._cancel_message, 'my message')
def test_future_cancel_message_setter(self):
f = self._new_future(loop=self.loop)
- f.cancel('my message')
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ f.cancel('my message')
f._cancel_message = 'my new message'
self.assertEqual(f._cancel_message, 'my new message')
diff --git a/Lib/test/test_asyncio/test_taskgroups.py b/Lib/test/test_asyncio/test_taskgroups.py
index dea5d6d..69369a6 100644
--- a/Lib/test/test_asyncio/test_taskgroups.py
+++ b/Lib/test/test_asyncio/test_taskgroups.py
@@ -191,12 +191,10 @@ class TestTaskGroup(unittest.IsolatedAsyncioTestCase):
await asyncio.sleep(0.1)
self.assertFalse(r.done())
- r.cancel("test")
+ r.cancel()
with self.assertRaises(asyncio.CancelledError) as cm:
await r
- self.assertEqual(cm.exception.args, ('test',))
-
self.assertEqual(NUM, 5)
async def test_taskgroup_07(self):
@@ -253,12 +251,10 @@ class TestTaskGroup(unittest.IsolatedAsyncioTestCase):
await asyncio.sleep(0.1)
self.assertFalse(r.done())
- r.cancel("test")
+ r.cancel()
with self.assertRaises(asyncio.CancelledError) as cm:
await r
- self.assertEqual(cm.exception.args, ('test',))
-
async def test_taskgroup_09(self):
t1 = t2 = None
diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py
index b86646e..8df1957 100644
--- a/Lib/test/test_asyncio/test_tasks.py
+++ b/Lib/test/test_asyncio/test_tasks.py
@@ -113,7 +113,11 @@ class BaseTaskTests:
self.assertTrue(hasattr(t, '_cancel_message'))
self.assertEqual(t._cancel_message, None)
- t.cancel('my message')
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ t.cancel('my message')
self.assertEqual(t._cancel_message, 'my message')
with self.assertRaises(asyncio.CancelledError) as cm:
@@ -125,7 +129,11 @@ class BaseTaskTests:
async def coro():
pass
t = self.new_task(self.loop, coro())
- t.cancel('my message')
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ t.cancel('my message')
t._cancel_message = 'my new message'
self.assertEqual(t._cancel_message, 'my new message')
@@ -582,7 +590,14 @@ class BaseTaskTests:
async def coro():
task = self.new_task(loop, sleep())
await asyncio.sleep(0)
- task.cancel(*cancel_args)
+ if cancel_args not in ((), (None,)):
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ task.cancel(*cancel_args)
+ else:
+ task.cancel(*cancel_args)
done, pending = await asyncio.wait([task])
task.result()
@@ -616,7 +631,14 @@ class BaseTaskTests:
async def coro():
task = self.new_task(loop, sleep())
await asyncio.sleep(0)
- task.cancel(*cancel_args)
+ if cancel_args not in ((), (None,)):
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ task.cancel(*cancel_args)
+ else:
+ task.cancel(*cancel_args)
done, pending = await asyncio.wait([task])
task.exception()
@@ -639,10 +661,17 @@ class BaseTaskTests:
fut.set_result(None)
await asyncio.sleep(10)
+ def cancel(task, msg):
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ task.cancel(msg)
+
async def coro():
inner_task = self.new_task(loop, sleep())
await fut
- loop.call_soon(inner_task.cancel, 'msg')
+ loop.call_soon(cancel, inner_task, 'msg')
try:
await inner_task
except asyncio.CancelledError as ex:
@@ -668,7 +697,11 @@ class BaseTaskTests:
async def coro():
task = self.new_task(loop, sleep())
# We deliberately leave out the sleep here.
- task.cancel('my message')
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ task.cancel('my message')
done, pending = await asyncio.wait([task])
task.exception()
@@ -2029,7 +2062,14 @@ class BaseTaskTests:
async def main():
qwe = self.new_task(loop, test())
await asyncio.sleep(0.2)
- qwe.cancel(*cancel_args)
+ if cancel_args not in ((), (None,)):
+ with self.assertWarnsRegex(
+ DeprecationWarning,
+ "Passing 'msg' argument"
+ ):
+ qwe.cancel(*cancel_args)
+ else:
+ qwe.cancel(*cancel_args)
await qwe
try: