Тестирование базы данных django sqlite3 с помощью pytest в CI
У меня есть класс updater, который обновляет таблицы базы данных (изменяет, удаляет, добавляет).
Мне нужно написать тесты для этого апдейтера. Эти тесты будут вызываться в gitlab CI.
python3.9 project/manage.py makemigrations
python3.9 project/manage.py migrate
pytest -s -v --cov --cov-config .coveragerc -ra --tb=short {posargs:}
"Тестовая" база данных не содержит необходимых таблиц до вызова миграций. Мне кажется, что существует "механизм pytest", который позволяет создать поддельный экземпляр базы данных sqlite3 с выполненными миграциями, но я не знаю :D.
Конфигурация базы данных Django:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
"TEST": {
"MIRROR": "default"
}
},
}
Я уже установил pytest-django
и отметил тест с помощью pytest.mark.django_db
.
Является ли это подходящим способом тестирования?