我试图模拟在我正在测试的类中创建的请求会话。当mock被创建时,它似乎可以工作,但是类中创建的mock并不相同
class ClassToTest:
def make_request(url):
with requests.Session() as session:
print(session)
response = session.request(url)
return response
^{2}$
@pytest.mark.usefixtures('mock_session')
def test(self, mock_session):
mock_session.request.return_value = expected
print(mock_session)
res = ClassToTest().make_request(url)
assert expected == res
此测试当前失败,打印结果如下:
< MagicMock name='Session' spec='Session' id='1'>
< MagicMock name='Session().\__enter__()' id='2'>
这是因为
ClassToTest
正在with
上下文中初始化会话。您需要告诉会话模拟在输入with
上下文时返回自身,模仿Session
类的作用:相关问题 更多 >
编程相关推荐