Django connections object does not see the tables of a second database during testing with pytest-django
pytest-django
does not support multiple databases. When I was experimenting with multiple databases and parameters --reuse-db
/--create-db
the outcome is, that sometimes it works (all databases are created and can be used correctly) and sometimes it does not work (either the database is not created or Django is complaining that the database already exists).
IMHO there are two options: 1) do not use pytest with Django; 2) simplify your tests so you do not need multiple databases. For option 2) I'm using this setup:
normal settings
:
DATABASES = {
'default': ...,
'secondary': ...,
}
pytest.ini
:
[pytest]
...
DJANGO_SETTINGS_MODULE=my_app.settings.test
...
test.py
:
# Import all from normal settings
from .base import *
DATABASES.pop('secondary')
# This will route all queries and migrations to the default DB
DATABASE_ROUTERS = []