У меня есть стандартное приложение Pylons, созданное с использованием paster create -t pylons
с одним контроллером и соответствующим функциональным тестом, добавленное с использованием paster controller
, а также таблица SQLAlchemy и сопоставленный класс ORM. Материал SQLAlchemy определен в функции init_model()
, а не в области видимости модуля (и должен быть там).
Запуск python setup.py test
вызывает исключение, потому что nose
как-то заставляет init_model()
дважды вызываться в одном и том же процессе, поэтому он пытается создать модель, которая уже существует.
Я могу исправить это, установив и проверив глобальную переменную внутри init_model()
, но (а) я бы этого не хотел, и (б) сторонние библиотеки, такие как AuthKit, которые динамически определяют модели, также нарушают тесты. и не может быть так легко изменено.
Есть ли способ исправить nose
тесты для Pylons, или я должен написать свой собственный тестовый скрипт и просто использовать unittest
, loadapp
и webtest
напрямую? Какие-нибудь рабочие примеры этого?