5
5
from django .urls import reverse
6
6
from djmoney .money import Money
7
7
8
- from .models import ApprovedGrant , BoardMember , Meeting , Office , Term
8
+ from .models import ApprovedGrant , BoardMember , Business , Meeting , Office , Term
9
9
10
10
11
11
class MeetingTestCase (TestCase ):
12
+ @classmethod
13
+ def setUpTestData (cls ):
14
+ cls .user = User .objects .create_superuser (
15
+ "admin" , "admin@example.com" , "password"
16
+ )
17
+ cls .member = BoardMember .objects .create (
18
+ account = cls .user ,
19
+ office = Office .objects .create (name = "treasurer" ),
20
+ term = Term .objects .create (year = 2023 ),
21
+ )
22
+
12
23
def test_meeting_initial (self ):
13
- user = User .objects .create_superuser ("admin" , "admin@example.com" , "password" )
14
- self .client .force_login (user )
24
+ self .client .force_login (self .user )
15
25
response = self .client .get (reverse ("admin:foundation_meeting_add" ))
16
26
self .assertContains (response , "DSF Board monthly meeting" )
17
27
self .assertContains (response , "dsf-board-monthly-meeting" )
@@ -20,17 +30,11 @@ def test_meeting_minutes_feed(self):
20
30
"""
21
31
Make sure that the meeting minutes RSS feed works
22
32
"""
23
- user = User .objects .create_superuser ("admin" , "admin@example.com" , "password" )
24
- member = BoardMember .objects .create (
25
- account = user ,
26
- office = Office .objects .create (name = "treasurer" ),
27
- term = Term .objects .create (year = 2023 ),
28
- )
29
33
Meeting .objects .create (
30
34
date = date .today (),
31
35
title = "DSF Board monthly meeting" ,
32
36
slug = "dsf-board-monthly-meeting" ,
33
- leader = member ,
37
+ leader = self . member ,
34
38
treasurer_report = "Hello World" ,
35
39
)
36
40
@@ -39,18 +43,11 @@ def test_meeting_minutes_feed(self):
39
43
self .assertIn (b"DSF Board monthly meeting" , response .content )
40
44
41
45
def test_meeting_details (self ):
42
- user = User .objects .create_superuser ("admin" , "admin@example.com" , "password" )
43
- self .client .force_login (user )
44
- member = BoardMember .objects .create (
45
- account = user ,
46
- office = Office .objects .create (name = "treasurer" ),
47
- term = Term .objects .create (year = 2023 ),
48
- )
49
46
meeting = Meeting .objects .create (
50
47
date = date (2023 , 1 , 12 ),
51
48
title = "DSF Board monthly meeting" ,
52
49
slug = "dsf-board-monthly-meeting" ,
53
- leader = member ,
50
+ leader = self . member ,
54
51
treasurer_report = "Hello World" ,
55
52
)
56
53
ApprovedGrant .objects .create (
@@ -77,3 +74,42 @@ def test_meeting_details(self):
77
74
self .assertContains (response , "DSF Board monthly meeting" )
78
75
self .assertContains (response , "USD $10,000.00" )
79
76
self .assertContains (response , "EUR €5,000.00" )
77
+
78
+ def test_latest_meeting_minutes (self ):
79
+ common_meeting_data = {
80
+ "slug" : "dsf-board-monthly-meeting" ,
81
+ "leader" : self .member ,
82
+ "treasurer_report" : "Hello World" ,
83
+ "title" : "DSF Board monthly meeting" ,
84
+ }
85
+ latest_meeting = Meeting .objects .create (
86
+ date = date (2023 , 5 , 12 ), ** common_meeting_data
87
+ )
88
+ previous_meeting = Meeting .objects .create (
89
+ date = date (2023 , 4 , 12 ), ** common_meeting_data
90
+ )
91
+ Meeting .objects .create (date = date (2023 , 3 , 12 ), ** common_meeting_data )
92
+ common_business_data = {
93
+ "body" : "Example" ,
94
+ "body_html" : "Example" ,
95
+ "business_type" : "New" ,
96
+ "meeting" : latest_meeting ,
97
+ }
98
+ Business .objects .create (title = "Business item 1" , ** common_business_data )
99
+ Business .objects .create (title = "Business item 2" , ** common_business_data )
100
+ Business .objects .create (title = "Business item 3" , ** common_business_data )
101
+
102
+ response = self .client .get (reverse ("foundation_meeting_archive_index" ))
103
+
104
+ self .assertContains (response , "Latest DSF meeting minutes" )
105
+
106
+ self .assertContains (response , "DSF Board monthly meeting, May 12, 2023" )
107
+ self .assertContains (response , latest_meeting .get_absolute_url ())
108
+ self .assertContains (response , "DSF Board monthly meeting, April 12, 2023" )
109
+ self .assertContains (response , previous_meeting .get_absolute_url ())
110
+ self .assertNotContains (response , "DSF Board monthly meeting, March 12, 2023" )
111
+
112
+ self .assertContains (response , "New and Ongoing business" , count = 1 )
113
+ self .assertContains (response , "Business item 1" )
114
+ self .assertContains (response , "Business item 2" )
115
+ self .assertContains (response , "Business item 3" )
0 commit comments