Тестирование URL в проекте Django

Нужно протестировать доступность страниц в проекте Django.

Урлы выглядят так:

urlpatterns = [
    path('', views.index, name='index'),
    path('group/<slug:slug>/', views.group_posts, name='group_posts'),
    path('profile/<str:username>/', views.profile, name='profile'),
    path('create/', views.post_create, name='post_create'),
    path('posts/<int:post_id>/', views.post_detail, name='post_detail'),
    path('posts/<int:post_id>/edit/', views.post_edit, name='post_edit'),

Загвоздка в тестировании адреса /posts/<post_id>/ - не могу додуматься, как мне обратиться к post_id в тесте.

Вот что я уже написала. Через методы setUpClass() создаю тестовый пост, а через метод setUp() создаю неавторизованного и авторизованного пользователя. По идее, в поле author нужно передать юзера, я это делаю через author=cls.user. Но ведь юзер создан ниже, в методе setUp(), и поэтому в поле author юзер не определяется. Как тут быть?

class StaticURLTests(TestCase):
    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        #  Создаю новый пост в БД для тестирования /post/test-post_id/
        cls.post = Post.objects.create(
            post_id='test-post_id',
            text='Тестовый текст',
            pub_date='Тестовая дата',
            author=cls.user
        )

    def setUp(self):
        self.guest_client = Client()
        self.user = User.objects.create_user(username='HasNoName')
        self.authorized_client = Client()
        self.authorized_client.force_login(self.user)
Вернуться на верх