Как стать автором
Обновить

Комментарии 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, у вас в коде отлично продемонстрирован.

Всё верно, БД именно от туда. Но не вся БД, а её крошечная часть.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории