3 回答
TA贡献1777条经验 获得超10个赞
由于request.session()返回Session类的实例,因此也可以使用patch.object()
from requests import Session
from unittest.mock import patch
@patch.object(Session, 'get')
def test_foo(mock_get):
mock_get.return_value = 'bar'
TA贡献1810条经验 获得超4个赞
从先前的答案中得到一些启发,并:
在python模拟中模拟属性
我能够模拟这样定义的会话:
class MyClient(object):
"""
"""
def __init__(self):
self.session = requests.session()
这样:(get的调用返回一个status_code属性设置为200的响应)
def test_login_session():
with mock.patch('path.to.requests.session') as patched_session:
# instantiate service: Arrange
test_client = MyClient()
type(patched_session().get.return_value).status_code = mock.PropertyMock(return_value=200)
# Act (+assert)
resp = test_client.login_cookie()
# Assert
assert resp is None
添加回答
举报