Skip to content

Commit a0434c9

Browse files
committed
Test the getter and setter.
1 parent 6b133a2 commit a0434c9

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

Lib/test/test_asyncio/test_futures.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,27 @@ def test_uninitialized(self):
201201
self.assertFalse(fut.cancelled())
202202
self.assertFalse(fut.done())
203203

204+
def test_future_cancel_message_getter(self):
205+
f = self._new_future(loop=self.loop)
206+
self.assertTrue(hasattr(f, '_cancel_message'))
207+
self.assertEqual(f._cancel_message, None)
208+
209+
f.cancel('my message')
210+
with self.assertRaises(asyncio.CancelledError):
211+
self.loop.run_until_complete(f)
212+
self.assertEqual(f._cancel_message, 'my message')
213+
214+
def test_future_cancel_message_setter(self):
215+
f = self._new_future(loop=self.loop)
216+
f.cancel('my message')
217+
f._cancel_message = 'my new message'
218+
self.assertEqual(f._cancel_message, 'my new message')
219+
220+
# Also check that the value is used for cancel().
221+
with self.assertRaises(asyncio.CancelledError):
222+
self.loop.run_until_complete(f)
223+
self.assertEqual(f._cancel_message, 'my new message')
224+
204225
def test_cancel(self):
205226
f = self._new_future(loop=self.loop)
206227
self.assertTrue(f.cancel())

Lib/test/test_asyncio/test_tasks.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,31 @@ def setUp(self):
9797
self.loop.set_task_factory(self.new_task)
9898
self.loop.create_future = lambda: self.new_future(self.loop)
9999

100+
def test_task_cancel_message_getter(self):
101+
async def coro():
102+
pass
103+
t = self.new_task(self.loop, coro())
104+
self.assertTrue(hasattr(t, '_cancel_message'))
105+
self.assertEqual(t._cancel_message, None)
106+
107+
t.cancel('my message')
108+
with self.assertRaises(asyncio.CancelledError):
109+
self.loop.run_until_complete(t)
110+
self.assertEqual(t._cancel_message, 'my message')
111+
112+
def test_task_cancel_message_setter(self):
113+
async def coro():
114+
pass
115+
t = self.new_task(self.loop, coro())
116+
t.cancel('my message')
117+
t._cancel_message = 'my new message'
118+
self.assertEqual(t._cancel_message, 'my new message')
119+
120+
# Also check that the value is used for cancel().
121+
with self.assertRaises(asyncio.CancelledError):
122+
self.loop.run_until_complete(t)
123+
self.assertEqual(t._cancel_message, 'my new message')
124+
100125
def test_task_del_collect(self):
101126
class Evil:
102127
def __del__(self):

0 commit comments

Comments
 (0)