在我的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評估代碼。此代碼可以工作,並且會修補會話。 –
你可以讓會議全球? –