from django.urls import reverse import pytest from longs.models import Long def create_question(): return Long.objects.create( description="Test Question", ) def create_user(db, django_user_model): return django_user_model.objects.create_user( "user1", "user1@user.com", "password" ) @pytest.mark.django_db def test_question_creation(client, db, django_user_model): question = create_question() assert question.description == "Test Question" assert question.get_absolute_url() == f"/longs/question/{question.pk}/" # Test access user = create_user(db, django_user_model) client.force_login(user) # View access response = client.get(reverse("longs:question_detail", kwargs={"pk": question.pk}), follow=True) assert response.status_code == 403 response = client.get(reverse("longs:long_update", kwargs={"pk": question.pk}), follow=True) assert response.status_code == 403 # Add author question.add_author(user) # Test author access response = client.get(reverse("longs:question_detail", kwargs={"pk": question.pk}), follow=True) assert response.status_code == 200 response = client.get(reverse("longs:long_update", kwargs={"pk": question.pk}), follow=True) assert response.status_code == 200