assertTemplateNotUsed

Метод assertTemplateNotUsed является методом класса TestCase и используется для проверки, что указанный шаблон не был использован для рендеринга ответа. Он принимает обязательный аргумент - имя шаблона, а также необязательный аргумент для проверки заголовков ответа. Метод выбрасывает исключение AssertionError, если шаблон был использован.

Синтаксис

pythonself.assertTemplateNotUsed(response, template_name, count=0, status_code=200, msg_prefix='')

Параметры метода:

Пример

Давайте проверим, что при открытии главной страницы не используется шаблон 'blog/post_detail.html':

pythonfrom 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')

Пример

Проверим, что после создания нового поста страница списка не использует шаблон формы:

pythonfrom 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')

Результат выполнения кода:

python"Тест пройден успешно (AssertionError не возникло)"

Пример

Проверим, что при ошибке 404 используется стандартный шаблон, а не кастомный:

pythonfrom 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')

Результат выполнения кода:

python"Тест пройден успешно (шаблон 404.html не использован)"

Смотрите также

  • метод assertTemplateUsed,
    который проверяет использование шаблона
  • метод assertContains,
    который проверяет наличие контента в ответе
  • метод assertRedirects,
    который проверяет перенаправление
  • класс TestCase,
    в котором доступны все методы для тестирования