Интеграционные тесты Pybuilder для проекта Django
Я пытаюсь написать интеграционные тесты с pybuilder для веб-приложения Django, но не могу заставить его работать. Пример ошибки, которая возникает (из приложения Django):
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
DJANGO_SETTINGS_MODULE
определяется в build.py
, вот так:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
Проект хранится в src/main/python
и интеграционные тесты в src/integrationtest/python
Как говорят в документах Pybuilder, так и должно быть.
Я пытался установить вручную DJANGO_SETTINGS_MODULE
во многих разных местах, в том числе build.py
и сам контрольный пример. То же самое относится и к settings.configure()
, Но он просто не хочет работать, и я не знаю, чего мне не хватает. У меня закончились идеи, что попробовать.
1 ответ
Я добавил os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
к initialize
функция, и я больше не получаю эту ошибку.
Полный build.py листинг:
from pybuilder.core import init, use_plugin
import os
use_plugin("python.core")
use_plugin("python.unittest")
use_plugin("python.django")
default_task = "publish"
@init
def initialize():
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")