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
添加回答
舉報