Skip to content

Commit c8361ab

Browse files
committed
Repair warning call for duplicate review submission. Improve testing. Additional fix for ietf-tools#3092. Commit ready for merge.
- Legacy-Id: 18627
1 parent a6e614d commit c8361ab

2 files changed

Lines changed: 38 additions & 3 deletions

File tree

ietf/doc/tests_review.py

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
from ietf.doc.factories import ( NewRevisionDocEventFactory, IndividualDraftFactory, WgDraftFactory,
2525
WgRfcFactory, ReviewFactory, DocumentFactory)
26-
from ietf.doc.models import ( DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent,
26+
from ietf.doc.models import ( Document, DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent,
2727
ReviewAssignmentDocEvent, )
2828
from ietf.group.factories import RoleFactory, ReviewTeamFactory
2929
from ietf.group.models import Group
@@ -37,6 +37,7 @@
3737
from ietf.utils.mail import outbox, empty_outbox, parseaddr, on_behalf_of, get_payload_text
3838
from ietf.utils.test_utils import login_testing_unauthorized, reload_db_objects
3939
from ietf.utils.test_utils import TestCase
40+
from ietf.utils.text import strip_prefix, xslugify
4041

4142
class ReviewTests(TestCase):
4243
def setUp(self):
@@ -876,7 +877,41 @@ def test_complete_unsolicited_review_link_to_mailing_list_by_secretary(self, moc
876877

877878
self.assertEqual(len(outbox), 0)
878879
self.assertTrue("http://example.com" in assignment.review.external_url)
879-
880+
881+
def test_double_submit_review(self):
882+
assignment, url = self.setup_complete_review_test()
883+
884+
login_testing_unauthorized(self, assignment.reviewer.person.user.username, url)
885+
886+
name_components = [
887+
"review",
888+
strip_prefix(assignment.review_request.doc.name, "draft-"),
889+
assignment.review_request.doc.rev,
890+
assignment.review_request.team.acronym,
891+
assignment.review_request.type.slug,
892+
xslugify(assignment.reviewer.person.ascii_parts()[3]),
893+
datetime.date.today().isoformat(),
894+
]
895+
review_name = "-".join(c for c in name_components if c).lower()
896+
Document.objects.create(name=review_name,type_id='review',group=assignment.review_request.team)
897+
898+
r = self.client.post(url, data={
899+
"result": ReviewResultName.objects.get(reviewteamsettings_review_results_set__group=assignment.review_request.team, slug="ready").pk,
900+
"state": ReviewAssignmentStateName.objects.get(slug="completed").pk,
901+
"reviewed_rev": assignment.review_request.doc.rev,
902+
"review_submission": "enter",
903+
"review_content": "This is a review\nwith two lines",
904+
"review_url": "",
905+
"review_file": "",
906+
# Custom completion should be ignored - review posted by assignee is always set to now
907+
"completion_date": "2012-12-24",
908+
"completion_time": "12:13:14",
909+
})
910+
self.assertEqual(r.status_code, 302)
911+
r2 = self.client.get(r.url)
912+
self.assertEqual(len(r2.context['messages']),1)
913+
self.assertIn('Attempt to save review failed', list(r2.context['messages'])[0].message)
914+
880915
def test_partially_complete_review(self):
881916
assignment, url = self.setup_complete_review_test()
882917

ietf/doc/views_review.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,7 @@ def complete_review(request, name, assignment_id=None, acronym=None):
703703
review = Document.objects.create(name=review_name,type_id='review',group=team)
704704
DocAlias.objects.create(name=review_name).docs.add(review)
705705
else:
706-
messages.warning(message='Attempt to save review failed: review document already exists. This most likely occurred because the review was submitted twice in quick succession. If you intended to submit a new review, rather than update an existing one, things are probably OK. Please verify that the shown review is what you expected.')
706+
messages.warning(request, message='Attempt to save review failed: review document already exists. This most likely occurred because the review was submitted twice in quick succession. If you intended to submit a new review, rather than update an existing one, things are probably OK. Please verify that the shown review is what you expected.')
707707
return redirect("ietf.doc.views_doc.document_main", name=review_name)
708708

709709
if not assignment:

0 commit comments

Comments
 (0)