Комментарии 5
После выполнения всех тестов, testcontainers завершит работу созданного контейнера и удалит созданные данные. Бывает полезно "придержать" тестовую БД на некоторое время, чтобы можно было залезть в БД из обычной IDE, чтобы выполнить пару-тройку SQL-запросов. Для этого нужно просто раскомментировать тест
test_debug(test_db)
Я бы попробовал реализовать логику удаления как в фикстуре https://docs.pytest.org/en/6.2.x/reference.html#pytest.tmpdir.tmp_path
Ну ли просто не удалять по аргументу командной строки.
Двойное подчёркивание в имени локальной переменной несколько перебор. def __init__(self, db_image_name):
__engine = EngineFactory()
__engine.stand = 'localhost'
Синглтон тоже можно выкинуть, так как тесты это реализуют самостоятельно.
Комментарии дублируют код. Даже для обучающего кода это излишне.
# Тест метода processing.bookings.get_premium_psg_list()
# В текущих тестовых данных, для limit=10000, корректный результат == 4
def test_get_premium_psg_list(test_db):
assert len(get_premium_psg_list(limit=10000)) == 4
Использованная БД взята с edu.postgrespro.ru (для изучения postgresql)?
P. S. Спасибо за материал. Интересовал момент того, как дружить питон и postgres, у вас в коде отлично продемонстрирован.
Тестируем слой БД в Python с использованием pytest и testcontainers