Я пытаюсь установить возвращаемое значение запроса get
в python, чтобы выполнить модульный тест, который проверяет, вызван ли запрос post
с правильными аргументами. Предположим, у меня есть следующий код для проверки
# main.py
import requests
from django.contrib.auth.models import User
def function_with_get():
client = requests.session()
some_data = str(client.get('https://cool_site.com').content)
return some_data
def function_to_test(data):
for user in User.objects.all():
if user.username in data:
post_data = dict(data=user.username)
else:
post_data = dict(data='Not found')
client.post('https://not_cool_site.com', data=post_data)
#test.py
from unittest import mock
from unittest import TestCase
from main import function_with_get, function_to_test
class Testing(TestCase):
@mock.patch('main.requests.session')
def test_which_fails_because_of_get(self, mock_sess):
mock_sess.get[0].return_value.content = 'User1'
data = function_with_get()
function_to_test(data)
assertIn('Not Found', mock_sess.retrun_value.post.call_args_list[1])
Это, к сожалению, не работает, и я также попытался установить его без content
, однако я получаю ошибку AttributeError: у объекта 'str' нет атрибута 'content'
Как правильно установить return_value
запроса get
, чтобы я мог проверить аргументы запроса post
?