11from datetime import date , timedelta
22
3+ from django .contrib .auth .models import User
34from django .test import TestCase
45from django .urls import reverse
56
1011class IndividualMemberListViewTests (TestCase ):
1112 url = reverse ("members:individual-members" )
1213
13- @classmethod
14- def setUpTestData (cls ):
15- IndividualMember .objects .create (
16- name = "DjangoDeveloper" , email = "developer@example.com"
17- )
18-
1914 def test_developer_member_redirect (self ):
2015 old_url = reverse ("members:developer-members" )
2116 response = self .client .get (old_url )
@@ -24,7 +19,80 @@ def test_developer_member_redirect(self):
2419 def test_view_render (self ):
2520 response = self .client .get (self .url )
2621 self .assertContains (response , "Individual members" )
27- self .assertContains (response , "DjangoDeveloper" )
22+
23+ def test_view_should_link_only_existing_profiles_of_members (self ):
24+ developer1 = User .objects .create_user (
25+ username = "developer1" ,
26+ password = "password" ,
27+ )
28+ developer2 = User .objects .create_user (
29+ username = "developer2" ,
30+ password = "password" ,
31+ )
32+ individual_member1 = IndividualMember .objects .create (
33+ user = developer1 ,
34+ name = "DjangoDeveloper1" ,
35+ email = "developer1@example.com" ,
36+ )
37+ individual_member2 = IndividualMember .objects .create (
38+ user = developer2 ,
39+ name = "DjangoDeveloper2" ,
40+ email = "developer2@example.com" ,
41+ )
42+ individual_member3 = IndividualMember .objects .create (
43+ name = "DjangoDeveloper3" ,
44+ email = "developer3@example.com" ,
45+ )
46+ developer1_url = reverse ("user_profile" , args = ["developer1" ])
47+ developer2_url = reverse ("user_profile" , args = ["developer2" ])
48+ developer3_url = reverse ("user_profile" , args = ["developer3" ])
49+ response = self .client .get (self .url )
50+ self .assertContains (response , developer1_url )
51+ self .assertContains (response , individual_member1 .name )
52+ self .assertContains (response , developer2_url )
53+ self .assertContains (response , individual_member2 .name )
54+ self .assertNotContains (response , developer3_url )
55+ self .assertContains (response , individual_member3 .name )
56+
57+ def test_view_should_link_only_existing_profiles_of_former_members (self ):
58+ developer1 = User .objects .create_user (
59+ username = "developer1" ,
60+ password = "password" ,
61+ )
62+ developer2 = User .objects .create_user (
63+ username = "developer2" ,
64+ password = "password" ,
65+ )
66+ individual_member1 = IndividualMember .objects .create (
67+ user = developer1 ,
68+ name = "DjangoDeveloper1" ,
69+ email = "developer1@example.com" ,
70+ member_since = date (2015 , 7 , 26 ),
71+ member_until = date (2015 , 7 , 27 ),
72+ )
73+ individual_member2 = IndividualMember .objects .create (
74+ user = developer2 ,
75+ name = "DjangoDeveloper2" ,
76+ email = "developer2@example.com" ,
77+ member_since = date (2015 , 7 , 26 ),
78+ member_until = date (2015 , 7 , 27 ),
79+ )
80+ individual_member3 = IndividualMember .objects .create (
81+ name = "DjangoDeveloper3" ,
82+ email = "developer3@example.com" ,
83+ member_since = date (2015 , 7 , 26 ),
84+ member_until = date (2015 , 7 , 27 ),
85+ )
86+ developer1_url = reverse ("user_profile" , args = ["developer1" ])
87+ developer2_url = reverse ("user_profile" , args = ["developer2" ])
88+ developer3_url = reverse ("user_profile" , args = ["developer3" ])
89+ response = self .client .get (self .url )
90+ self .assertContains (response , developer1_url )
91+ self .assertContains (response , individual_member1 .name )
92+ self .assertContains (response , developer2_url )
93+ self .assertContains (response , individual_member2 .name )
94+ self .assertNotContains (response , developer3_url )
95+ self .assertContains (response , individual_member3 .name )
2896
2997 def test_view_should_only_render_former_members_once (self ):
3098 IndividualMember .objects .create (
0 commit comments