У меня есть 2 файла Python: 1 для модульного тестирования (tests.py) и 1 для скрипта, который я хочу протестировать (main.py):
# In main.py:
import requests
def get_response(url):
response = requests.get(url);
# Do stuff...
return response
-
# In tests.py
from unittest import mock
from unittest.mock import patch
from my_project.main import get_response
def some_handler(url):
return "test_response"
class GetResponseTestCase(unittest.TestCase):
def setUp(self):
# setup mocks
patch('requests.get', mock.Mock(side_effect=some_handler)
def run_test(self):
result = get_response("test_response")
Я хочу пропатчить requests.get
, чтобы вернуть test_response
, но исправление не работает, поскольку он пытается отправить запрос / установить соединение с указанным URL-адресом.Я думаю, что название патча requests.get
не предназначено для места, где оно используется в main.py (как оно ссылается на то, где оно определено вместо), как некоторые люди упоминали в Интернете.Но в этом случае я не уверен, как это исправить.
Если в main.py используется import requests
, то как я могу исправить это из другого файла?Спасибо.