Проблема
У меня есть проект Django (1.8), в котором запущены 2 приложения: App1, App2. Оба приложения работают со своими собственными базами данных: app1db и app2db, разделяя defaultdb для пользователей и групп. Я пытаюсь интегрировать pytest- django как часть модульного тестирования. Здесь я столкнулся с проблемой, так как Pytest не поддерживает несколько баз данных.
Мой вариант использования: модульные тесты мне понадобятся только в app1, и я почти уверен, что они мне не понадобятся. app2. И я могу издеваться над объектами моих пользователей и групп из defaultdb для этих модульных тестов, и мне не понадобится доступ к defaultdb. Но проблема в том, что я всегда вижу, что модульные тесты обращаются к defaultdb, и я не вижу способа сделать app1db доступным из модульных тестов. Когда я пытаюсь получить доступ к любому объекту формы app1db, я получаю следующую ошибку:
E ProgrammingError: отношение «app1_table» не существует E LINE 1: INSERT INTO «app1_table» («field1», «field2», "... E ^
Настройки базы данных
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'postgres',
'NAME': 'defaultdb',
'PASSWORD': 'pass',
'HOST': localhost,
},
'app1': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'app1db',
'USER': 'postgres',
'PASSWORD': 'pass',
'HOST': localhost,
},
"app2": {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'app2db',
'USER': 'postgres',
'PASSWORD': 'pass',
'HOST': localhost,
},
Как сделать так, чтобы мой pytest просто искал app1db, игнорируя все остальные БД?