Как в написании теста проверить контекст страниц через цикл в django?

Имеется потребность объединить код для страниц в одну функцию и проверять контекст страниц через цикл. class PostPagesTests(TestCase): @classmethod def setUpClass(cls): super().setUpClass() cls.user = User.objects.create(username='user') cls.group = Group.objects.create( title='Тестовая группа', slug='test-slug', description='Тестовое описание группы', ) cls.post = Post.objects.create( text='Тестовый текст поста', author=cls.user, group=cls.group, ) cls.public_pages_names = { reverse("posts:index"): "posts/index.html", reverse( "posts:group_list", kwargs={"slug": cls.group.slug} ): "posts/group_list.html", reverse( "posts:profile", kwargs={"username": cls.post.author} ): "posts/profile.html", reverse( "posts:post_detail", kwargs={"post_id": cls.post.id} ): "posts/post_detail.html", }
def setUp(self): self.guest_client = Client() self.authorized_client = Client() self.authorized_client.force_login(PostPagesTests.user)

Я начал: def test_uses_correct_context_publik_pages(self): """Правильные контексты публичных страниц.""" for reverse_name in self.public_pages_names.items(): response = self.guest_client.get(reverse_name)

Но как осуществить это не знаю. Без циклов проверки выглядят так: def test_index_html_show_correct_context(self): """Шаблон index_html сформирован с правильным контекстом.""" response = self.guest_client.get( reverse("posts:index") ) self.assertEqual(response.context.get("post").text, self.post.text) self.assertEqual(response.context.get("post").author, self.post.author) self.assertEqual(response.context.get("post").group, self.post.group)

def test_group_list_correct_context(self):
    """Шаблон group_list сформирован с правильным контекстом."""
    response = self.guest_client.get(reverse(
        "posts:group_list", kwargs={"slug": self.group.slug}))
    expected = list(Post.objects.filter(group_id=self.group.id)[:10])
    self.assertEqual(list(response.context["page_obj"]), expected)

def test_profile_correct_context(self):
    """Шаблон  profile сформирован с правильным контекстом."""
    response = self.guest_client.get(
        reverse("posts:profile", args=(self.post.author,))
    )
    expected = list(Post.objects.filter(author_id=self.user.id)[:10])
    self.assertEqual(list(response.context["page_obj"]), expected)
Вернуться на верх