from datetime import timedelta from django.conf import settings from django.core.cache import cache from django.test import TestCase from django.urls import reverse from django.utils.timezone import now from model_bakery import baker from club.models import Club, Membership from core.models import User class TestClub(TestCase): """Set up data for test cases related to clubs and membership. The generated dataset is the one created by the populate command, plus the following modifications : - `self.club` is a dummy club recreated for each test - `self.club` has two board members : skia (role 3) and comptable (role 10) - `self.club` has one regular member : richard - `self.club` has one former member : sli (who had role 2) - None of the `self.club` members are in the AE club. """ @classmethod def setUpTestData(cls): # subscribed users - initial members cls.skia = User.objects.get(username="skia") # by default, Skia is in the AE, which creates side effect cls.skia.memberships.all().delete() cls.richard = User.objects.get(username="rbatsbak") cls.comptable = User.objects.get(username="comptable") cls.sli = User.objects.get(username="sli") cls.root = User.objects.get(username="root") # subscribed users - not initial members cls.krophil = User.objects.get(username="krophil") cls.subscriber = User.objects.get(username="subscriber") # old subscriber cls.old_subscriber = User.objects.get(username="old_subscriber") # not subscribed cls.public = User.objects.get(username="public") cls.ae = Club.objects.get(pk=settings.SITH_MAIN_CLUB_ID) cls.club = baker.make(Club) cls.members_url = reverse("club:club_members", kwargs={"club_id": cls.club.id}) a_month_ago = now() - timedelta(days=30) yesterday = now() - timedelta(days=1) Membership.objects.create( club=cls.club, user=cls.skia, start_date=a_month_ago, role=3 ) Membership.objects.create(club=cls.club, user=cls.richard, role=1) Membership.objects.create( club=cls.club, user=cls.comptable, start_date=a_month_ago, role=10 ) # sli was a member but isn't anymore Membership.objects.create( club=cls.club, user=cls.sli, start_date=a_month_ago, end_date=yesterday, role=2, ) def setUp(self): cache.clear()