pytest-django RuntimeError : Database access not allowed,

273 Views Asked by At

I'm testing my django application using pytest / pytest-django.

my urls.py file contains

from django.urls import include, path
from . import views

urlpatterns = [
    path('', include('django.contrib.auth.urls')),
    path('users/', views.users, name='users'),
    path('add-user/', views.add_new_user, name='add_new_user'),
]

in my tests.py file, I have

import pytest
from django import urls


def test_users_url_resolves_to_users_view(client):
    url = urls.reverse('users')
    resp = client.get(url)
    assert resp.status_code == 200

I get RuntimeError: Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it. when i run this.

1

There are 1 best solutions below

0
On

The error message says you should do either

@pytest.mark.django_db
def test_users_url_resolves_to_users_view(client):
    url = urls.reverse('users')
    resp = client.get(url)
    assert resp.status_code == 200

or

def test_users_url_resolves_to_users_view(client, django_db):
    url = urls.reverse('users')
    resp = client.get(url)
    assert resp.status_code == 200