Нарушает ли South структуру запуска тестов Django?

У меня есть проект Django, в который я добавил приложение South примерно на полпути, чтобы упростить миграцию базы данных.

Я использую фреймворк модульного тестирования Django в нескольких ограниченных местах в проекте, то есть я не запускаю тесты регулярно. Недавно я написал несколько новых тестов для новой части кода и попытался их запустить. Я получил следующую ошибку:

django.db.utils.DatabaseError: no such table: auth_permission

В трассировке упоминаются некоторые южные файлы (например, /Library/Python/2.7/site-packages/south/management/commands/test.py). Может ли Саут испортить тестовый бегун?


person Paul D. Waite    schedule 01.08.2011    source источник
comment
@SkylarSaveland: хорошо. Если у вас есть более подробная информация, это было бы полезно.   -  person Paul D. Waite    schedule 16.08.2013
comment
Моя проблема заключалась в том, что юг переопределял тестовый бегун. Помещение django-nose после юга в install_apps решило мою проблему. Однако то, что наш инструмент миграции пытается взять на себя выполнение тестов, довольно раздражает.   -  person Skylar Saveland    schedule 16.08.2013


Ответы (1)


Возможно — несомненно, я где-то сделал что-то не так, но в документации South упоминаются возможные проблемы:

Я добавил SOUTH_TESTS_MIGRATE = False в свой файл settings.py, и мои тесты снова прошли нормально.

Однако мои тесты в настоящее время не связаны с базой данных, поэтому мне, возможно, придется вернуться к этому.

person Paul D. Waite    schedule 01.08.2011
comment
Та же проблема, и добавление SOUTH_TESTS_MIGRATE = False сработало для меня. Хотя мне было бы любопытно, что вызвало проблему... - person zlovelady; 24.12.2011
comment
Та же проблема, но это не решило мою проблему. Вы хоть понимаете, почему это все еще происходит со мной? - person marianobianchi; 13.09.2012
comment
я забыл сказать, что я пробовал это тоже безуспешно.. . - person marianobianchi; 13.09.2012
comment
@marianobianchi: Боюсь, понятия не имею, еще не пересматривал. Я бы предложил задать вопрос об этом, включая конкретные детали вашей ситуации. - person Paul D. Waite; 13.09.2012
comment
Распространенной причиной является поддержание порядка миграции. Часто говорят, что миграция № 5 для app1 должна быть запущена до миграции № 2 для app3. Есть инструменты для добавления зависимостей в south/django 1.8, но большинство людей их игнорируют, потому что локальная среда не добавляет миграции с нуля... только последние непримененные. Поэтому вы редко будете сталкиваться с проблемами порядка миграции при создании новых миграций. Только после выполнения всех миграций с шага 0, как это делается с тестовой БД, вы начнете осознавать эти проблемы. Единственное решение — добавить зависимости миграции между приложениями. - person Yuji 'Tomita' Tomita; 26.05.2015