У меня есть абстрактная модель пользователя.Создать модель только для тестирования
Тестирование включает в себя подклассификацию этой абстрактной модели и установку AUTH_USER_MODEL подклассифицированной модели.
Проблема с AUTH_USER_MODEL заключается в том, что она должна иметь форму «app-name.model-name» и, следовательно, она должна быть относится к модели в файле models.py
. Но если он находится внутри файла models.py
, он будет синхронизирован с производственной базой данных, что не совсем вредно, но было бы неплохо, если бы это было не так.
Я видел Django: How to create a model dynamically just for testing но ответы кажутся хаком
В настоящее время, что я делаю (и ненадежны?):
в [Приложения] /models.py:
# this model only gets created during a test
if 'test' in sys.argv:
class AccountTest(AbstractAccount):
pass
в [ приложения]/тесты/INIT .py:
@override_settings(
AUTH_USER_MODEL = '[apps].AccountTest',
)
class AccountManagerTest(TransactionTestCase):
У кого-нибудь есть лучший способ? Это довольно хаки. Кроме того, любая проблема с этим подходом?