есть питоновский модуль с несколькими десятками функциями в нем и парой переменных
modul.py
MIN_PLACE = 7
START_DAY = 4
func1():
pass
func2():
pass
func3():
pass
Под это дело написаны тесты на pytest
test.py
@pytest.mark.django_db
test_func1():
#logic
.....
Все стандартно, в случае если тестируемая функция взаимодействует с БД то используется декоратор
@pytest.mark.django_db
Но теперь надо что бы параметры определяемые в начале модуля (MIN_PLACE, START_DAY)стали доступны для изменения из админки и соответственно хранились в БД.
Добавил их в таком виде
MIN_PLACE: int = int(RedshiftQueryParam.objects.get(name=RedshiftQuery.MIN_PLACE).value)
START_DAY: int = int(RedshiftQueryParam.objects.get(name=RedshiftQuery.START_DATE).value)
Но! Теперь падают все тесты, в которых контекст pytest переходит в модуль modul.py. Т.е. для инициализации переменных происходит необработанный вызов в БД и появляется ошибка
E RuntimeError: Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.
Как это дело обработать? Несколько десятков тестов падают с одной и тойже ошибкой.