уже пол дня убил, чтобы запустить просто 2 теста простых(одинаковых), одна проблема за другой возникает, заодно может подскажете как решить текущую проблему(использую pytest, pytest-asyncio, aioredis)
Когда я запускаю тесты, вот пример
@pytest.mark.asyncio
async def test1():
await redis.flushall()
@pytest.mark.asyncio
async def test2():
await redis.flushall()
То второй валится с ошибкой
test_driver_repository2 - RuntimeError: Event loop is closed
Оказалось pytest создает отдельный луп под каждый тест, поэтому в каждом тесте надо создавать отдельное подключение
Да, можно, просто я словил ошибки 2-3 разных из-за того, что не знал
Выглядит как глобальные переменные, что логично приведет к проблемам
При тестировании да, в рабочем сервисе один луп
Никогда не создавай асинкио объекты вне асинк функций
Че за асинкио объекты? Async class?)
В смысле один? У тебя глобальные переменные, они видимо созданы без лупа, а потом ты создаешь луп и все ломается. А луп создаётся когда ты делаешь asyncio.run()
Нет, что-нибудь, связанное с лупом: примитивы синхронизации, сокеты и прочее
https://t.me/advice17/5 Заодно почитай
Обсуждают сегодня