assertTemplateNotUsed
Метод assertTemplateNotUsed является методом класса TestCase и используется для проверки, что указанный шаблон не был использован для рендеринга ответа. Он принимает обязательный аргумент - имя шаблона, а также необязательный аргумент для проверки заголовков ответа. Метод выбрасывает исключение AssertionError, если шаблон был использован.
Синтаксис
self.assertTemplateNotUsed(response, template_name, count=0, status_code=200, msg_prefix='')
Параметры метода:
-
response- объект ответа, полученный от клиента. -
template_name- строка с именем шаблона, который не должен быть использован. -
count- количество раз, которое шаблон не должен быть использован. По умолчанию0. -
status_code- код состояния, который проверяется перед проверкой шаблона. По умолчанию200. -
msg_prefix- префикс для сообщения об ошибке. По умолчанию пустая строка.
Пример
Давайте проверим, что при открытии главной страницы не используется шаблон 'blog/post_detail.html':
from django.test import TestCase
from django.urls import reverse
class BlogTests(TestCase):
def test_homepage_does_not_use_detail_template(self):
response = self.client.get(reverse('home'))
self.assertTemplateNotUsed(response, 'blog/post_detail.html')
Пример
Проверим, что после создания нового поста страница списка не использует шаблон формы:
from django.test import TestCase
from django.urls import reverse
from myapp.models import Article
class ArticleTests(TestCase):
def test_article_list_does_not_use_form_template(self):
Article.objects.create(title='Test Article', content='Content')
response = self.client.get(reverse('article_list'))
self.assertTemplateNotUsed(response, 'myapp/article_form.html')
Результат выполнения кода:
"Тест пройден успешно (AssertionError не возникло)"
Пример
Проверим, что при ошибке 404 используется стандартный шаблон, а не кастомный:
from django.test import TestCase
from django.urls import reverse
class ErrorPageTests(TestCase):
def test_custom_404_template_not_used(self):
response = self.client.get('/nonexistent-page/')
self.assertTemplateNotUsed(response, 'myapp/404.html')
Результат выполнения кода:
"Тест пройден успешно (шаблон 404.html не использован)"
Смотрите также
-
метод
assertTemplateUsed,
который проверяет использование шаблона -
метод
assertContains,
который проверяет наличие контента в ответе -
метод
assertRedirects,
который проверяет перенаправление -
класс
TestCase,
в котором доступны все методы для тестирования