Проблема с производительностью юнит-теста при использовании request_mock в OSX - PullRequest
0 голосов
/ 28 октября 2019

Я кодировал и тестировал некоторые библиотеки, которые в основном взаимодействуют со службами REST, и заметил, что некоторым из них требуется несколько минут для запуска. После профилирования кода я обнаружил, что 98% времени выполнения используется _socket.gethostbyname. Ниже 1 вы найдете профиль для метода, выполняющего вызовы REST.

Существует обходной путь для преодоления этого, но он кажется неуклюжим (не говоря уже о том, что я должен копировать его везде):

import platform

# Workaround for osx systems
if platform.system() == 'Darwin':
    import socket
    socket.gethostbyname = lambda x: '127.0.0.1'

Это фрагмент о том, как я использую requests-mock пакет:

with requests_mock.mock() as m:
    m.register_uri('GET', my_url, text=json.dumps({"foo": "bar"}))

Есть какие-нибудь подсказки, в чем может быть проблема? Похоже, что это влияет только на системы OSX.

1

profiling for method making REST calls

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...