import pytest from django.test import Client from django.urls import reverse from model_bakery import baker from pytest_django.asserts import assertRedirects from club.models import Club, Membership from core.baker_recipes import subscriber_user @pytest.mark.django_db def test_club_board_member_cannot_edit_club_properties(client: Client): user = subscriber_user.make() club = baker.make(Club, name="old name", is_active=True, address="old address") baker.make(Membership, club=club, user=user, role=7) client.force_login(user) res = client.post( reverse("club:club_edit", kwargs={"club_id": club.id}), {"name": "new name", "is_active": False, "address": "new address"}, ) # The request should success, # but admin-only fields shouldn't be taken into account assertRedirects(res, club.get_absolute_url()) club.refresh_from_db() assert club.name == "old name" assert club.is_active assert club.address == "new address" @pytest.mark.django_db def test_edit_club_page_doesnt_crash(client: Client): """crash test for club:club_edit""" club = baker.make(Club) user = subscriber_user.make() baker.make(Membership, club=club, user=user, role=3) client.force_login(user) res = client.get(reverse("club:club_edit", kwargs={"club_id": club.id})) assert res.status_code == 200