Coverage for website/members/tests/test_views.py: 100.00%

34 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from datetime import date, timedelta 

2 

3from django.test import TestCase 

4 

5from members.models import Member, Membership, Profile 

6from members.views import MembersIndex 

7 

8 

9class MembersIndexText(TestCase): 

10 @classmethod 

11 def setUpTestData(cls): 

12 # Add 10 members with default membership 

13 members = [Member(id=i, username=i) for i in range(7)] 

14 Member.objects.bulk_create(members) 

15 profiles = [Profile(user_id=i) for i in range(7)] 

16 Profile.objects.bulk_create(profiles) 

17 

18 Membership( 

19 user_id=0, type=Membership.HONORARY, until=date.today() + timedelta(days=1) 

20 ).save() 

21 

22 Membership( 

23 user_id=1, 

24 type=Membership.BENEFACTOR, 

25 until=date.today() + timedelta(days=1), 

26 ).save() 

27 

28 Membership( 

29 user_id=2, type=Membership.MEMBER, until=date.today() + timedelta(days=1) 

30 ).save() 

31 

32 Membership( 

33 user_id=3, type=Membership.MEMBER, until=date.today() + timedelta(days=1) 

34 ).save() 

35 Membership( 

36 user_id=3, 

37 type=Membership.MEMBER, 

38 until=date.today() - timedelta(days=365 * 10), 

39 ).save() 

40 

41 Membership( 

42 user_id=4, 

43 type=Membership.BENEFACTOR, 

44 until=date.today() + timedelta(days=1), 

45 ).save() 

46 Membership( 

47 user_id=4, 

48 type=Membership.MEMBER, 

49 until=date.today() - timedelta(days=365 * 10), 

50 ).save() 

51 

52 Membership( 

53 user_id=5, 

54 type=Membership.MEMBER, 

55 until=date.today() - timedelta(days=365 * 10), 

56 ).save() 

57 

58 # user_id=6 has no memberships at all 

59 

60 def test_honorary_query_filter(self): 

61 view = MembersIndex() 

62 view.query_filter = "honorary" 

63 view.year_range = [date.today().year] 

64 members = view.get_queryset() 

65 self.assertEqual(len(members), 1) 

66 self.assertEqual(members[0].id, 0) 

67 

68 def test_former_query_filter(self): 

69 view = MembersIndex() 

70 view.query_filter = "former" 

71 view.year_range = [date.today().year] 

72 members = view.get_queryset() 

73 self.assertEqual(len(members), 3) 

74 for member in members: 

75 self.assertIn(member.id, {4, 5, 6})