Django с django-nose: два одинаковых файла настроек с разным поведением при запуске тестовой команды

С Django 1.4.5 я использую django-nose 1.1.0.

У меня есть два файла настроек без разницы.

-> % diff local_settings.py test_settings/sqlite.py

Я запускаю тесты с помощью:

-> % python manage.py test foo --settings=local_settings

и я получаю

Ran 91 tests in 5.273s
OK (SKIP=6)

Запуск одних и тех же идентичных настроек из другого места

-> % python manage.py test foo --settings=test_settings.sqlite

Тесты выдаются без запуска:

Ran 43 tests in 1.230s
FAILED (errors=1)

Я получаю трассировку, DatabaseError: no such table: django_content_type Обратная трассировка происходит через загрузку URL-адресов. Что-то, что там создается, вызывает ContentType.objects.get_for_model(self.model). Как возможна такая разница при идентичных настройках?

Мой файл manage.py является общим:

#!/usr/bin/env python

from django.core import management

if __name__ == "__main__":
    management.execute_from_command_line()

person Skylar Saveland    schedule 12.04.2013    source источник
comment
Что произойдет, если вы переместите local_settings в пакет test_settings и снова запустите тесты с --settings=test_settings.local_settings? Также, пожалуйста, проверьте, есть ли что-нибудь в test_settings/__init__.py.   -  person alecxe    schedule 16.04.2013
comment
то же самое, ничего в __init__.py   -  person Skylar Saveland    schedule 17.04.2013
comment
В идеале было бы здорово увидеть, что находится в ваших идентичных файлах настроек.   -  person alecxe    schedule 24.04.2013


Ответы (1)


В вашей базе данных NAME установлен относительный путь для базы данных sqlite?

Если это так, вам может просто понадобиться syncdb с вашим файлом настроек в test_settings.

DatabaseError: no such table: django_content_type означает, что одна из конкретных таблиц django не найдена, что звучит как проблема с самой БД, а не с вашим приложением или самим файлом настроек.

person jlovison    schedule 23.04.2013
comment
Что произойдет, если вы запустите python manage.py syncdb --settings=test_settings.sqlite, а затем снова запустите тестовую команду? - person jlovison; 24.04.2013