我正在编写一个继承自asynctest.TestCase的单元测试,并希望在每个测试用例之前创建一些执行asynchronous setUp的mixins:
import asynctest
class Mixin1(object):
async def setUp(self):
await super(Mixin1, self).setUp()
class MyTest(Mixin1, asynctest.TestCase):
async def setUp(self):
await super(MyTest, self).setUp()我看到的问题是Mixin1最终调用了asynctest.TestCase.setUp,这恰好是一个non-async method,我们得到了:
TypeError: object NoneType can't be used in 'await' expression显然,我可以通过修改Mixin1来阻塞调用setUp,但是如果我引入第二个异步的mixin,那么它就会失败。
我最终像这样编写了我所有的setUp调用,但我觉得肯定有更好的方法:
async def setUp(self):
# do stuff
setUp = super(Mixin1, self).setUp
if asyncio.iscoroutine():
await setUp()
else:
setUp()有没有更好的方法来链接setUp调用?
https://stackoverflow.com/questions/47735156
复制相似问题