Сейчас интеграционные тесты работают следующим образом:
Перед каждым набором тестов ("набор" обычно = "файл") запускается контейнер с Postgres
Прогоняется набор тестов
Контейнер уничтожается
На самом деле контейнер можно поднимать один раз перед запуском тестов и класть путь до него в переменную окружения, которую тесты будут читать. Можно сохранить текущее поведение в виде fallback.
Это должно значительно ускорить прогон интеграционных тестов (в число раз, пропорциональное числу файлов).
В рамках пакета unittest есть функции setUpModule и tearDownModule, можно попробовать использовать их. Если не получится, можно использовать singleton с контейнером и получать доступ к ним функцией get_or_create_container или аналогичной. Уничтожение можно делать при помощи модуля atexit.
Сейчас интеграционные тесты работают следующим образом:
На самом деле контейнер можно поднимать один раз перед запуском тестов и класть путь до него в переменную окружения, которую тесты будут читать. Можно сохранить текущее поведение в виде fallback. Это должно значительно ускорить прогон интеграционных тестов (в число раз, пропорциональное числу файлов).
В рамках пакета unittest есть функции setUpModule и tearDownModule, можно попробовать использовать их. Если не получится, можно использовать singleton с контейнером и получать доступ к ним функцией get_or_create_container или аналогичной. Уничтожение можно делать при помощи модуля atexit.