在我的Python代码,我有全球requests.session
例如:嘲讽会议
import requests
session = requests.session()
如何我Mock
嘲笑呢?这种操作有没有装饰器?我尝试以下操作:
session.get = mock.Mock(side_effect=self.side_effects)
但(如预期)此代码不会每次测试后返回session.get
到原来的状态,就像@mock.patch
装饰做。
在我的Python代码,我有全球requests.session
例如:嘲讽会议
import requests
session = requests.session()
如何我Mock
嘲笑呢?这种操作有没有装饰器?我尝试以下操作:
session.get = mock.Mock(side_effect=self.side_effects)
但(如预期)此代码不会每次测试后返回session.get
到原来的状态,就像@mock.patch
装饰做。
使用mock.patch
在模块中修补会话。在这里,你走了,一个完整的工作示例https://gist.github.com/k-bx/5861641
有了一些灵感,从以前的答案和:
mock-attributes-in-python-mock
我可以嘲笑这样定义会话:
class MyClient(object):
"""
"""
def __init__(self):
self.session = requests.session()
与即:(得到的电话返回一个响应,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
添加缩进。此代码不可读,并且不会修补会话。 –
@amezhenin从gist评估代码。此代码可以工作,并且会修补会话。 –
你可以让会议全球? –