Покрытие django не покрывает урлы, несмотря на написание специальных тестов для этих урлов

В моем приложении под названием backoffice_engine, мой файл urls.py имеет следующий вид

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

urlpatterns = [
    path('test/', views.test, name='test'),
    path('', views.dashboard, name='dashboard'),
    path('dashboard/', views.dashboard, name='dashboard'),
    path('add_new_client/', views.add_new_client, name='add_new_client'),
    path('edit_client/<int:client_id>', views.edit_client, name='edit_client'),
    .....some more paths....
    ]

Мой файл test_urls.py для этого файла urls.py имеет следующий вид

from django.test import SimpleTestCase
from django.urls import reverse, resolve
from backoffice_engine.views import *

class TestBackofficeEngineUrls(SimpleTestCase):

    def test_test_url(self):
        url = reverse('test')
        self.assertEquals(resolve(url).func, test)

    def test_blank_url_uses_dashboard_function(self):
        url = reverse('dashboard')
        self.assertEquals(resolve(url).func, dashboard)

    def test_add_new_client(self):
        url = reverse('add_new_client')
        self.assertEquals(resolve(url).func, add_new_client)

    def test_client_detail(self):
        url = reverse('client_detail', args=['1'])
        self.assertEquals(resolve(url).func, client_detail)

Насколько я понимаю, запуск покрытия этого файла должен привести к отчету о покрытии, показывающему, что следующие URL были покрыты модульными тестами.

однако отчет о покрытии для backoffice_engine.urls.py по умолчанию отсутствует. отчет проверяет только первые 3 строки файла urls.py

coverage report image

Покрытие не может сказать вам, какие шаблоны URL были использованы. Строка 4 - это начало одного длинного многострочного оператора, который назначает все шаблоны URL. Он выполняется только один раз, когда импортируется urls.py.

Например, строка 7 не выполняется при посещении URL "dashboard/". Она выполняется при запуске программы, чтобы добавить шаблон для "dashboard/" в список всех шаблонов

Вернуться на верх