我在工作中使用AioHttp来实现一个服务,在我的测试中,我模拟了一个方法,问题是对该方法的调用是调用real而不是mocked方法。在
@unittest_run_loop
@patch('export_api.main.add_job_to_db')
async def test_view_job(self, mocked_method):
json = {
"edl": "somedata"
}
response = await self.client.request("PUT", "/v1/job", json=json)
mocked_method.assert_called_once_with()
assert response.status == 200
所以我在mock的断言中得到了这个错误:
^{pr2}$我的方法主.py公司名称:
async def __call__(self, request):
"""Faz post do Job na fila do Render"""
data = await request.json()
job_id = uuid.uuid4()
job = Jobs(
job_id=str(job_id),
body=data
)
try:
add_job_to_db(self.app['db'], job)
return web.Response(status=200)
except DatabaseError as e:
print(e)
return web.Response(status=500)
是的,是类中的可调用方法。这个测试没有嘲笑的效果很好。但我需要嘲笑db的要求,我到目前为止运气不好。 有什么想法吗?在
检查清单:
@asyncio.coroutine
装饰器export_api.main.add_job_to_db
我是mocket的作者,几天前我发布了完全支持异步/aiohttp的版本2.0.0。在
下面是在HTTP和HTTPS上模拟URL的相同示例:
来源:https://github.com/mindflayer/python-mocket/blob/master/tests/tests35/test_http_aiohttp.py
相关问题 更多 >
编程相关推荐