Как я могу переопределить `_GLOBAL_DEFAULT_TIMEOUT`, используемый сторонней библиотекой? - PullRequest
1 голос
/ 17 января 2020

Я использую tavern для проверки python flask приложения. Иногда я получаю сообщения об ошибках http, например:

for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
    af, socktype, proto, canonname, sa = res
    sock = None
    try:
        sock = socket.socket(af, socktype, proto)

        # If provided, set socket level options before connecting.
        _set_socket_options(sock, socket_options)

        if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
            sock.settimeout(timeout)
        if source_address:
            sock.bind(source_address)
>       sock.connect(sa)
E       **ConnectionRefusedError: [Errno 111] Connection refused**

Одной из возможных причин является то, что время соединения истекло, поэтому я хотел бы изменить время ожидания для соединения http, используемого tavern. Я не могу найти конфигурацию из tavern для изменения этого значения, но, исходя из приведенного выше исходного кода, кажется, что тайм-аут по умолчанию читается из socket._GLOBAL_DEFAULT_TIMEOUT. Как я могу изменить это значение из моего приложения? Я не вызываю этот метод подключения напрямую, который вызывается Tavern framework. Есть ли способ обновить его со стороны моего приложения? Я использую pytest для запуска теста, поэтому было бы хорошо, если бы я мог установить что-то на pytest, чтобы переопределить это значение.

...