фиктивный ответ. возникший в requests_mock - PullRequest
1 голос
/ 16 июня 2020

Я использую request_mock в своих модульных тестах и ​​хотел бы имитировать атрибут response.elapsed, но не нашел подходящего способа сделать это. Только что нашел обходной путь с добавлением сна в текстовый обратный вызов.

with requests_mock.mock() as m:
    def text_callback_with_delay(request, context):
        time.sleep(2)
        return "{}"

    m.get(GET_REQUEST_URL, text=text_callback_with_delay)

Есть ли лучший способ имитировать response.elapsed с помощью requests_mock ?

1 Ответ

1 голос
/ 16 июня 2020

В примере, приведенном выше, response.elapsed немного больше 2 секунд. Поэтому я просто использовал unittest.mock.patch для исправления requests.request

mock_response = Mock(spec=requests.Response)
mock_response.elapsed = datetime.timedelta(seconds=2.0)

with patch("requests.request", return_value=mock_response):
     my_code_here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...