Merged in [18627] from rjsparks@nostrum.com:

Repair warning call for duplicate review submission. Improve testing. Additional fix for #3092.
 - Legacy-Id: 18638
Note: SVN reference [18627] has been migrated to Git commit c8361aba80
This commit is contained in:
Henrik Levkowetz 2020-10-24 19:27:41 +00:00
commit dbd9ab0c66
2 changed files with 38 additions and 3 deletions

View file

@ -23,7 +23,7 @@ import ietf.review.mailarch
from ietf.doc.factories import ( NewRevisionDocEventFactory, IndividualDraftFactory, WgDraftFactory,
WgRfcFactory, ReviewFactory, DocumentFactory)
from ietf.doc.models import ( DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent,
from ietf.doc.models import ( Document, DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent,
ReviewAssignmentDocEvent, )
from ietf.group.factories import RoleFactory, ReviewTeamFactory
from ietf.group.models import Group
@ -37,6 +37,7 @@ from ietf.review.policies import get_reviewer_queue_policy
from ietf.utils.mail import outbox, empty_outbox, parseaddr, on_behalf_of, get_payload_text
from ietf.utils.test_utils import login_testing_unauthorized, reload_db_objects
from ietf.utils.test_utils import TestCase
from ietf.utils.text import strip_prefix, xslugify
class ReviewTests(TestCase):
def setUp(self):
@ -876,7 +877,41 @@ class ReviewTests(TestCase):
self.assertEqual(len(outbox), 0)
self.assertTrue("http://example.com" in assignment.review.external_url)
def test_double_submit_review(self):
assignment, url = self.setup_complete_review_test()
login_testing_unauthorized(self, assignment.reviewer.person.user.username, url)
name_components = [
"review",
strip_prefix(assignment.review_request.doc.name, "draft-"),
assignment.review_request.doc.rev,
assignment.review_request.team.acronym,
assignment.review_request.type.slug,
xslugify(assignment.reviewer.person.ascii_parts()[3]),
datetime.date.today().isoformat(),
]
review_name = "-".join(c for c in name_components if c).lower()
Document.objects.create(name=review_name,type_id='review',group=assignment.review_request.team)
r = self.client.post(url, data={
"result": ReviewResultName.objects.get(reviewteamsettings_review_results_set__group=assignment.review_request.team, slug="ready").pk,
"state": ReviewAssignmentStateName.objects.get(slug="completed").pk,
"reviewed_rev": assignment.review_request.doc.rev,
"review_submission": "enter",
"review_content": "This is a review\nwith two lines",
"review_url": "",
"review_file": "",
# Custom completion should be ignored - review posted by assignee is always set to now
"completion_date": "2012-12-24",
"completion_time": "12:13:14",
})
self.assertEqual(r.status_code, 302)
r2 = self.client.get(r.url)
self.assertEqual(len(r2.context['messages']),1)
self.assertIn('Attempt to save review failed', list(r2.context['messages'])[0].message)
def test_partially_complete_review(self):
assignment, url = self.setup_complete_review_test()

View file

@ -703,7 +703,7 @@ def complete_review(request, name, assignment_id=None, acronym=None):
review = Document.objects.create(name=review_name,type_id='review',group=team)
DocAlias.objects.create(name=review_name).docs.add(review)
else:
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.')
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.')
return redirect("ietf.doc.views_doc.document_main", name=review_name)
if not assignment: