|
1 | | -# Copyright The IETF Trust 2012-2019, All Rights Reserved |
| 1 | +# Copyright The IETF Trust 2012-2020, All Rights Reserved |
2 | 2 | # -*- coding: utf-8 -*- |
3 | 3 |
|
4 | 4 |
|
@@ -124,22 +124,37 @@ def access_secretariat_url(self, url): |
124 | 124 | def test_private_index_view(self): |
125 | 125 | """Verify private home view""" |
126 | 126 | self.access_member_url(self.private_index_url) |
| 127 | + |
| 128 | + # Verify that nominee table has links to person and feedback pages |
| 129 | + nom_pos = self.create_nominee('accepted', COMMUNITY_USER, 'APP') |
| 130 | + person_url = reverse('ietf.person.views.profile', |
| 131 | + kwargs={'email_or_name': nom_pos.nominee.name()}) |
| 132 | + feedback_url = reverse('ietf.nomcom.views.view_feedback_nominee', |
| 133 | + kwargs={'year': self.year, 'nominee_id': nom_pos.nominee.pk}) |
| 134 | + |
| 135 | + # With a single nominee, the first row will have our data. |
| 136 | + # Require that the row have at least one link to the person URL |
| 137 | + # and one to the feedback URL. |
| 138 | + response = self.client.get(self.private_index_url) |
| 139 | + q = PyQuery(response.content) |
| 140 | + row_q = q('#nominee-position-table tbody tr').eq(0) |
| 141 | + self.assertTrue(row_q('a[href="%s"]' % (person_url)), |
| 142 | + 'Nominee table does not link to nominee profile page') |
| 143 | + self.assertTrue(row_q('a[href="%s#comment"]' % (feedback_url)), |
| 144 | + 'Nominee table does not link to nominee feedback page') |
127 | 145 | self.client.logout() |
128 | 146 |
|
| 147 | + def create_nominee(self, base_state, username, pos_name): |
| 148 | + cnominee = Nominee.objects.get(email__person__user__username=username) |
| 149 | + position = Position.objects.get(name=pos_name) |
| 150 | + return NomineePosition.objects.create(position=position, |
| 151 | + nominee=cnominee, |
| 152 | + state=NomineePositionStateName.objects.get(slug=base_state)) |
| 153 | + |
129 | 154 | def create_nominees_for_states(self, base_state): |
130 | | - cnominee = Nominee.objects.get(email__person__user__username=COMMUNITY_USER) |
131 | | - position = Position.objects.get(name='APP') |
132 | | - nom_pos = NomineePosition.objects.create(position=position, |
133 | | - nominee=cnominee, |
134 | | - state=NomineePositionStateName.objects.get(slug=base_state)) |
135 | | - position = Position.objects.get(name='INT') |
136 | | - NomineePosition.objects.create(position=position, |
137 | | - nominee=cnominee, |
138 | | - state=NomineePositionStateName.objects.get(slug=base_state)) |
139 | | - position = Position.objects.get(name='OAM') |
140 | | - NomineePosition.objects.create(position=position, |
141 | | - nominee=cnominee, |
142 | | - state=NomineePositionStateName.objects.get(slug=base_state)) |
| 155 | + nom_pos = self.create_nominee(base_state, COMMUNITY_USER, 'APP') |
| 156 | + self.create_nominee(base_state, COMMUNITY_USER, 'INT') |
| 157 | + self.create_nominee(base_state, COMMUNITY_USER, 'OAM') |
143 | 158 | return nom_pos |
144 | 159 |
|
145 | 160 | def test_private_index_post_accept(self): |
@@ -872,7 +887,12 @@ def feedback_view(self, *args, **kwargs): |
872 | 887 | response = self.client.get(feedback_url) |
873 | 888 | self.assertEqual(response.status_code, 200) |
874 | 889 | self.assertContains(response, "feedbackform") |
875 | | - |
| 890 | + # Test for a link to the nominee's profile page |
| 891 | + q = PyQuery(response.content) |
| 892 | + person_url = reverse('ietf.person.views.profile', kwargs={'email_or_name': nominee.name()}) |
| 893 | + self.assertTrue(q('a[href="%s"]' % (person_url)), |
| 894 | + 'Nominee feedback page does not link to profile page') |
| 895 | + |
876 | 896 | comments = 'Test feedback view. Comments with accents äöåÄÖÅ éáíóú âêîôû ü àèìòù.' |
877 | 897 |
|
878 | 898 | test_data = {'comment_text': comments, |
|
0 commit comments