Skip to content

Commit 4049804

Browse files
committed
Merged in [16981] from rjsparks@nostrum.com:
Look at the tree of replaces-relationships when determining if some reviewer has reviewed this (or perhaps an ancestor) of this document. Fixes ietf-tools#2821. - Legacy-Id: 16992 Note: SVN reference [16981] has been migrated to Git commit f740adc
2 parents 96bbc96 + f740adc commit 4049804

3 files changed

Lines changed: 29 additions & 3 deletions

File tree

ietf/doc/factories.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import debug # pyflakes:ignore
88
import factory
9+
import factory.fuzzy
910
import datetime
1011
import six
1112
if six.PY3:
@@ -36,6 +37,8 @@ class Meta:
3637
intended_std_level_id = None
3738
time = datetime.datetime.now()
3839
expires = factory.LazyAttribute(lambda o: o.time+datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE))
40+
pages = factory.fuzzy.FuzzyInteger(2,400)
41+
3942

4043
@factory.lazy_attribute_sequence
4144
def name(self, n):

ietf/doc/tests_review.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import debug # pyflakes:ignore
2323

2424
import ietf.review.mailarch
25-
from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory, \
26-
ReviewFactory, DocumentFactory
25+
from ietf.doc.factories import ( NewRevisionDocEventFactory, IndividualDraftFactory, WgDraftFactory,
26+
WgRfcFactory, ReviewFactory, DocumentFactory)
2727
from ietf.doc.models import DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent, ReviewAssignmentDocEvent
2828
from ietf.group.factories import RoleFactory, ReviewTeamFactory
2929
from ietf.group.models import Group
@@ -434,6 +434,29 @@ def test_assign_reviewer(self):
434434
self.assertIn("This team has completed other reviews", message)
435435
self.assertIn("{} -01 Serious Issues".format(reviewer_email.person.ascii), message)
436436

437+
def test_previously_reviewed_replaced_doc(self):
438+
review_team = ReviewTeamFactory(acronym="reviewteam", name="Review Team", type_id="review", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut"))
439+
rev_role = RoleFactory(group=review_team,person__user__username='reviewer',person__user__email='reviewer@example.com',person__name='Some Reviewer',name_id='reviewer')
440+
RoleFactory(group=review_team,person__user__username='reviewsecretary',person__user__email='reviewsecretary@example.com',name_id='secr')
441+
442+
ind_doc = IndividualDraftFactory()
443+
old_wg_doc = WgDraftFactory(relations=[('replaces',ind_doc)])
444+
middle_wg_doc = WgDraftFactory(relations=[('replaces',old_wg_doc)])
445+
new_wg_doc = WgDraftFactory(relations=[('replaces',middle_wg_doc)])
446+
447+
ReviewAssignmentFactory(review_request__team=review_team, review_request__doc=old_wg_doc, reviewer=rev_role.email, state_id='completed')
448+
449+
review_req=ReviewRequestFactory(team=review_team, doc=new_wg_doc)
450+
451+
assign_url = urlreverse('ietf.doc.views_review.assign_reviewer', kwargs={ "name": new_wg_doc.name, "request_id": review_req.pk })
452+
453+
login_testing_unauthorized(self, "reviewsecretary", assign_url)
454+
r = self.client.get(assign_url)
455+
self.assertEqual(r.status_code, 200)
456+
q = PyQuery(r.content)
457+
reviewer_label = q("option[value=\"{}\"]".format(rev_role.email.address)).text().lower()
458+
self.assertIn("reviewed document before", reviewer_label)
459+
437460
def test_accept_reviewer_assignment(self):
438461

439462
doc = WgDraftFactory(group__acronym='mars',rev='01')

ietf/review/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ def make_assignment_choices(email_queryset, review_req):
826826

827827
# previous review of document
828828
has_reviewed_previous = ReviewRequest.objects.filter(
829-
doc=doc,
829+
doc__name__in=set([doc.name]).union(*extract_complete_replaces_ancestor_mapping_for_docs([doc.name]).values()),
830830
reviewassignment__reviewer__person__in=possible_person_ids,
831831
reviewassignment__state="completed",
832832
team=team,

0 commit comments

Comments
 (0)