Интеграционные тесты 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")
Другие вопросы по тегам