How to correct use django_db_setup (pytest-django)

52 Views Asked by At

I try to test my Django app and confused about using test database.

# conftest.py

@pytest.fixture(scope="session")
def django_db_setup():
    settings.DATABASES["default"] = {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": "db.sqlite3",
    }    

My test files look like this:

# tests.py

@pytest.mark.django_db
def test_mailing_detail(mailing_instance_one):
    obj_link = mailing_detail(mailing_instance_one)
    expected_link = reverse(
        "api:admin_mailing_detail", args=[mailing_instance_one.id]
    )
    assert f"<a href='{expected_link}'>" in obj_link

Output:

django.db.utils.OperationalError: could not translate host name "app_db" to address: Temporary failure in name resolution

app_db is name from app settings file.

If I add print(f"{settings.DATABASES['default']}") to django_db_setup() I see correct db parameters.

How I can use test database?

0

There are 0 best solutions below