У меня есть асинхронная библиотека asynpg
, которая отправляет запросы во внешнюю базу данных.
Я хочу иметь тест, который проверяет syncpg.connect
для имитации соединения с базой данных, даже когда равно нет:
@pytest.fixture
def mock_asyncpg(monkeypatch, mock_data):
""" Patch asyncpg.connect """
monkeypatch.setattr(asyncpg, "connect", mock_asyncio_connect(mock_data))
Если я хочу проверить с помощью макета, я могу включить его:
@pytest.mark.asyncio
async def test_with_mock(mock_asyncpg):
Но я также хотел бы проверить с реальной, немодированной, версиейиз asyncpg
, но asyncpg
везде был пропатчен обезьяной, и все тесты видят версию, пропатченную обезьяной.
Я предполагаю, что это происходит потому, что мои тесты работают асинхронно, поэтому все они видят одну и ту же версиюиз asyncpg
Я вижу, что есть библиотека для асинхронного исправления обезьян, но мне интересно, есть ли лучший шаблон, который я должен использовать. Может быть, что-то делать с CoroutineMock ?