summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio
diff options
context:
space:
mode:
authorAndrew Svetlov <andrew.svetlov@gmail.com>2022-03-22 14:00:23 (GMT)
committerGitHub <noreply@github.com>2022-03-22 14:00:23 (GMT)
commit673755bfbac46b3cd2c84d7e0d68c2c488e039c3 (patch)
tree4e5d6b3581fb7b518e8909f4e93d4680dd8eebfa /Lib/test/test_asyncio
parent49daf6dba8178c5ae5d4d65408b20566d39c36a8 (diff)
downloadcpython-673755bfbac46b3cd2c84d7e0d68c2c488e039c3.zip
cpython-673755bfbac46b3cd2c84d7e0d68c2c488e039c3.tar.gz
cpython-673755bfbac46b3cd2c84d7e0d68c2c488e039c3.tar.bz2
bpo-47076: Make asyncio.Queue stable on slow test boxes (GH-32040)
Diffstat (limited to 'Lib/test/test_asyncio')
-rw-r--r--Lib/test/test_asyncio/test_queues.py32
1 files changed, 11 insertions, 21 deletions
diff --git a/Lib/test/test_asyncio/test_queues.py b/Lib/test/test_asyncio/test_queues.py
index 55588e8..2d058cc 100644
--- a/Lib/test/test_asyncio/test_queues.py
+++ b/Lib/test/test_asyncio/test_queues.py
@@ -28,7 +28,7 @@ class QueueBasicTests(unittest.IsolatedAsyncioTestCase):
# Start a task that waits to get.
getter = tg.create_task(q.get())
# Let it start waiting.
- await asyncio.sleep(0.1)
+ await asyncio.sleep(0)
self.assertTrue('_getters[1]' in fn(q))
# resume q.get coroutine to finish generator
q.put_nowait(0)
@@ -42,7 +42,7 @@ class QueueBasicTests(unittest.IsolatedAsyncioTestCase):
# Start a task that waits to put.
putter = tg.create_task(q.put(2))
# Let it start waiting.
- await asyncio.sleep(0.1)
+ await asyncio.sleep(0)
self.assertTrue('_putters[1]' in fn(q))
# resume q.put coroutine to finish generator
q.get_nowait()
@@ -100,14 +100,15 @@ class QueueBasicTests(unittest.IsolatedAsyncioTestCase):
return True
t = asyncio.create_task(putter())
- await asyncio.sleep(0.01)
+ for i in range(2):
+ await asyncio.sleep(0)
# The putter is blocked after putting two items.
self.assertEqual([0, 1], have_been_put)
self.assertEqual(0, await q.get())
# Let the putter resume and put last item.
- await asyncio.sleep(0.01)
+ await asyncio.sleep(0)
self.assertEqual([0, 1, 2], have_been_put)
self.assertEqual(1, await q.get())
self.assertEqual(2, await q.get())
@@ -150,10 +151,10 @@ class QueueGetTests(unittest.IsolatedAsyncioTestCase):
finished = True
return res
- loop.call_later(0.01, q.put_nowait, 1)
queue_get_task = asyncio.create_task(queue_get())
await started.wait()
self.assertFalse(finished)
+ loop.call_later(0.01, q.put_nowait, 1)
res = await queue_get_task
self.assertTrue(finished)
self.assertEqual(1, res)
@@ -167,17 +168,6 @@ class QueueGetTests(unittest.IsolatedAsyncioTestCase):
q = asyncio.Queue()
self.assertRaises(asyncio.QueueEmpty, q.get_nowait)
- async def test_get_cancelled(self):
- q = asyncio.Queue()
-
- async def queue_get():
- return await asyncio.wait_for(q.get(), 0.051)
-
- get_task = asyncio.create_task(queue_get())
- await asyncio.sleep(0.01) # let the task start
- q.put_nowait(1)
- self.assertEqual(1, await get_task)
-
async def test_get_cancelled_race(self):
q = asyncio.Queue()
@@ -263,7 +253,7 @@ class QueuePutTests(unittest.IsolatedAsyncioTestCase):
reader = asyncio.create_task(q.get())
- await asyncio.sleep(0.01)
+ await asyncio.sleep(0)
q.put_nowait(1)
q.put_nowait(2)
@@ -288,7 +278,7 @@ class QueuePutTests(unittest.IsolatedAsyncioTestCase):
reader2 = tg.create_task(q.get())
reader3 = tg.create_task(q.get())
- await asyncio.sleep(0.01)
+ await asyncio.sleep(0)
q.put_nowait(1)
q.put_nowait(2)
@@ -309,7 +299,7 @@ class QueuePutTests(unittest.IsolatedAsyncioTestCase):
# putting a second item in the queue has to block (qsize=1)
writer = asyncio.create_task(q.put(2))
- await asyncio.sleep(0.01)
+ await asyncio.sleep(0)
value1 = q.get_nowait()
self.assertEqual(value1, 1)
@@ -410,7 +400,7 @@ class QueuePutTests(unittest.IsolatedAsyncioTestCase):
# Task waiting for space to put an item in the queue.
put_task = asyncio.create_task(queue.put(1))
- await asyncio.sleep(0.01)
+ await asyncio.sleep(0)
# Check that the putter is correctly removed from queue._putters when
# the task is canceled.
@@ -427,7 +417,7 @@ class QueuePutTests(unittest.IsolatedAsyncioTestCase):
# Task waiting for space to put a item in the queue.
put_task = asyncio.create_task(queue.put(1))
- await asyncio.sleep(0.01)
+ await asyncio.sleep(0)
# get_nowait() remove the future of put_task from queue._putters.
queue.get_nowait()