test_client/wclient.py
import json
import requests
client = requests.session()
def setup():
response = REST_CLIENT.post(
"https://placeholder.com",
auth=(placeholder, placeholder),
data={"grant_type": "client_credentials"},
)
status_code = response.status_code
if status_code in OK_STATUS:
payload = json.loads(response.content, object_pairs_hook=OrderedDict)
else:
payload = response.text
msg = (
"Status Code %s" % status_code
)
logger.error(msg)
raise ValueError(msg)
return payload["access_token"]
Тестовый файл: test_client/test_client.py
import mock
import wclient
@mock.patch("test_client.wclient")
def test_taxes_pitney_bowes_setup_success(resp):
resp.return_value.post.return_value.status_code = "200"
wclient.pitney_bowes_setup()
Status Code <MagicMock name='REST_CLIENT.post().status_code' id='4868492200'>
Как я могу издеваться над методами и атрибутами модуля с помощью mock.patch()? Я прочитал страницы сообщений о переполнении стека, но я запутался со всеми различными способами принудительного применения магического макета.
Я пробовал издеваться:
resp.return_value.post.return_value.status_code
resp.return_value.post.return_value.status_code.return_value
resp.post.return_value.status_code
resp.post.return_value.status_code.return_value
resp.post.status_code
resp.post.status_code.return_value