据我所知,asyncio.test_utils
没有故意记录,因为它是供私人使用的(请参阅此issue)。
但是,我想知道asyncio.test_utils.run_briefly
剂量是什么。
例如,在这里,你能解释一下吗?
def test_gather_shield(self):
child1 = asyncio.Future(loop=self.loop)
child2 = asyncio.Future(loop=self.loop)
inner1 = asyncio.shield(child1, loop=self.loop)
inner2 = asyncio.shield(child2, loop=self.loop)
parent = asyncio.gather(inner1, inner2, loop=self.loop)
test_utils.run_briefly(self.loop)
parent.cancel()
# This should cancel inner1 and inner2 but bot child1 and child2.
test_utils.run_briefly(self.loop)
self.assertIsInstance(parent.exception(), asyncio.CancelledError)
self.assertTrue(inner1.cancelled())
self.assertTrue(inner2.cancelled())
child1.set_result(1)
child2.set_result(2)
test_utils.run_briefly(self.loop)
答案 0 :(得分:2)
帮助程序进行单个事件循环迭代。
它为asyncio
提供了执行所有待处理活动的机会,例如loop.call_soon()
等。
粗略的等价物为loop.run_until_complete(asyncio.sleep(0))
。