Httpretty заставляет сокет терять соединение? - PullRequest
0 голосов
/ 18 ноября 2018

Я использую Httpretty для имитации веб-API.

Если я использую httpretty.enable(allow_net_connect=False) (Когда allow_net_connect имеет значение False, любое соединение с незарегистрированным URI будет сбрасывать httpretty.errors.UnmockedError), я получаю сообщение об ошибке, поскольку pymysql не может подключиться через локальные БД через сокеты.

Однако, когда я использую httpretty.enable(allow_net_connect=True), я получаю ошибку из-за потерянного соединения.

../../.virtualenvs/3.6espiga/lib/python3.6/site-packages/pymysql/__init__.py:90: in Connect
    return Connection(*args, **kwargs)
../../.virtualenvs/3.6espiga/lib/python3.6/site-packages/pymysql/connections.py:699: in __init__
    self.connect()
../../.virtualenvs/3.6espiga/lib/python3.6/site-packages/pymysql/connections.py:935: in connect
    self._get_server_information()
../../.virtualenvs/3.6espiga/lib/python3.6/site-packages/pymysql/connections.py:1249: in _get_server_information
    packet = self._read_packet()
../../.virtualenvs/3.6espiga/lib/python3.6/site-packages/pymysql/connections.py:991: in _read_packet
    packet_header = self._read_bytes(4)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pymysql.connections.Connection object at 0x7fefe1ad40f0>, num_bytes = 4

    def _read_bytes(self, num_bytes):
        self._sock.settimeout(self._read_timeout)
        while True:
            try:
                data = self._rfile.read(num_bytes)
                break
            except (IOError, OSError) as e:
                if e.errno == errno.EINTR:
                    continue
                self._force_close()
                raise err.OperationalError(
                    CR.CR_SERVER_LOST,
                    "Lost connection to MySQL server during query (%s)" % (e,))
        if len(data) < num_bytes:
            self._force_close()
            raise err.OperationalError(
>               CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
E           pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')

../../.virtualenvs/3.6espiga/lib/python3.6/site-packages/pymysql/connections.py:1037: OperationalError

Как Httpretty может издеваться над веб-API и оставить соединение с БД для нормальной работы?

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