Тестирование 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)