0

[enter image description here][1]Hii i try to test my url easily with TestCase and reverse, but i get NoReverseMatch error.

  • urls.py
from django.urls import path
from . import views

app_name = "testapp"

urlpatterns = [
    path("", views.index, name="index"),
]
  • tests.py
from django.test import TestCase
from django.urls import reverse

class BasicTests(TestCase):
    def test_index(self):
        response = self.client.get(
            reverse('testapp:index'))
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "Hello World")
  • And the error:
ERROR: test_index (mysite.tests.BasicTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "django\myvenv\lib\site-packages\django\urls\base.py", line 71, in reverse
    extra, resolver = resolver.namespace_dict[ns]
KeyError: 'testapp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "django\mysite\mysite\tests.py", line 7, in test_index
    reverse('testapp:index'))
  File "django\myvenv\lib\site-packages\django\urls\base.py", line 82, in reverse
    raise NoReverseMatch("%s is not a registered namespace" % key)
django.urls.exceptions.NoReverseMatch: 'testapp' is not a registered namespace

Structure:

django
|--mysite
    |--manage.py
    |--mysite
       |--settings.py
       |--tests.py
       |--urls.py
       |--views.py
       ...

I dont have any problem with running server, but with "manage.py test" i get that error. What am I missing here?

Runo
  • 1
  • 1

0 Answers0