Skip to content

Commit a352eda

Browse files
committed
Add profile link tests for current and former individual members
1 parent 9a180f1 commit a352eda

File tree

1 file changed

+75
-7
lines changed

1 file changed

+75
-7
lines changed

members/test_views.py

Lines changed: 75 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import date, timedelta
22

3+
from django.contrib.auth.models import User
34
from django.test import TestCase
45
from django.urls import reverse
56

@@ -10,12 +11,6 @@
1011
class 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

Comments
 (0)