У меня есть следующая структура проекта
base
__init.py
settings
__init__.py
settings.py
tests
pytest.ini
test_module.py
My pytest.ini
выглядит следующим образом:
[pytest]
#DJANGO_SETTINGS_MODULE =base.settings.settings
Мой test_module.py
выглядит следующим образом:
def test_django():
from base.settings import settings as base_settings
from django.conf import settings as django_settings
assert 3==5
Когда я сейчас запускаю:
py.test
он будет запускать импорт без проблем и вызовет ошибку в assert 3==5
(как и ожидалось). Это говорит мне, что база находится на sys.path
и что base.settings.settings
можно импортировать.
Теперь я меняю test_module.py
на:
def test_django():
from base.settings import settings as base_settings
from django.conf import settings as django_settings
print django_settings.xxx
assert 3==5
Когда я сейчас запускаю:
py.test --ds=base.settings.settings
Я получаю сообщение об ошибке:
ОШИБКА: Не удалось импортировать настройки "base.settings.settings" (есть ли он на sys.path?): Нет модуля с именем base.settings.settings.
Тот же эффект, когда я не устанавливаю параметры через командную строку, а через файл pytest.ini
(раскомментируя строку).
Похоже, я что-то пропустил здесь.