|
22 | 22 | import debug # pyflakes:ignore |
23 | 23 |
|
24 | 24 | import ietf.review.mailarch |
25 | | -from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory, ReviewFactory |
| 25 | +from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory, \ |
| 26 | + ReviewFactory, DocumentFactory |
26 | 27 | from ietf.doc.models import DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent, ReviewAssignmentDocEvent |
27 | 28 | from ietf.group.factories import RoleFactory, ReviewTeamFactory |
28 | 29 | from ietf.group.models import Group |
@@ -479,7 +480,7 @@ def test_reject_reviewer_assignment(self): |
479 | 480 | login_testing_unauthorized(self, "reviewsecretary", reject_url) |
480 | 481 | r = self.client.get(reject_url) |
481 | 482 | self.assertEqual(r.status_code, 200) |
482 | | - self.assertContains(r, str(assignment.reviewer.person)) |
| 483 | + self.assertContains(r, assignment.reviewer.person.plain_name()) |
483 | 484 | self.assertNotContains(r, 'can not be rejected') |
484 | 485 | self.assertContains(r, '<button type="submit"') |
485 | 486 |
|
@@ -1165,3 +1166,51 @@ def test_withdraw_assignment(self): |
1165 | 1166 | assignment = reload_db_objects(assignment) |
1166 | 1167 | self.assertEqual(assignment.state_id, 'withdrawn') |
1167 | 1168 |
|
| 1169 | + def test_review_wish_add(self): |
| 1170 | + doc = DocumentFactory() |
| 1171 | + team = ReviewTeamFactory() |
| 1172 | + reviewer = RoleFactory(group=team, name_id='reviewer').person |
| 1173 | + url = urlreverse('ietf.doc.views_review.review_wish_add', kwargs={'name': doc.name}) |
| 1174 | + |
| 1175 | + login_testing_unauthorized(self, reviewer.user.username, url) |
| 1176 | + r = self.client.get(url) |
| 1177 | + self.assertEqual(r.status_code, 200) |
| 1178 | + |
| 1179 | + # As this reviewer is only on a single team, posting without data should work |
| 1180 | + r = self.client.post(url + '?next=/redirect-url') |
| 1181 | + self.assertRedirects(r, '/redirect-url', fetch_redirect_response=False) |
| 1182 | + self.assertTrue(ReviewWish.objects.get(person=reviewer, doc=doc, team=team)) |
| 1183 | + |
| 1184 | + # Try again with a reviewer on multiple teams, requiring team selection. |
| 1185 | + # This also uses an invalid redirect URL that should be ignored. |
| 1186 | + ReviewWish.objects.all().delete() |
| 1187 | + team2 = ReviewTeamFactory() |
| 1188 | + RoleFactory(group=team2, person=reviewer, name_id='reviewer') |
| 1189 | + |
| 1190 | + r = self.client.post(url + '?next=http://example.com/') |
| 1191 | + self.assertEqual(r.status_code, 200) # Missing team parameter |
| 1192 | + |
| 1193 | + r = self.client.post(url + '?next=http://example.com/', data={'team': team2.pk}) |
| 1194 | + self.assertRedirects(r, doc.get_absolute_url(), fetch_redirect_response=False) |
| 1195 | + self.assertTrue(ReviewWish.objects.get(person=reviewer, doc=doc, team=team2)) |
| 1196 | + |
| 1197 | + def test_review_wishes_remove(self): |
| 1198 | + doc = DocumentFactory() |
| 1199 | + team = ReviewTeamFactory() |
| 1200 | + reviewer = RoleFactory(group=team, name_id='reviewer').person |
| 1201 | + ReviewWish.objects.create(person=reviewer, doc=doc, team=team) |
| 1202 | + url = urlreverse('ietf.doc.views_review.review_wishes_remove', kwargs={'name': doc.name}) |
| 1203 | + |
| 1204 | + login_testing_unauthorized(self, reviewer.user.username, url) |
| 1205 | + r = self.client.get(url) |
| 1206 | + self.assertEqual(r.status_code, 200) |
| 1207 | + |
| 1208 | + r = self.client.post(url + '?next=/redirect-url') |
| 1209 | + self.assertRedirects(r, '/redirect-url', fetch_redirect_response=False) |
| 1210 | + self.assertFalse(ReviewWish.objects.all()) |
| 1211 | + |
| 1212 | + # Try again with an invalid redirect URL that should be ignored. |
| 1213 | + ReviewWish.objects.create(person=reviewer, doc=doc, team=team) |
| 1214 | + r = self.client.post(url + '?next=http://example.com') |
| 1215 | + self.assertRedirects(r, doc.get_absolute_url(), fetch_redirect_response=False) |
| 1216 | + self.assertFalse(ReviewWish.objects.all()) |
0 commit comments