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

Save a new reviewrequest for each team requested in the request form. Fixes #2094.
 - Legacy-Id: 12491
Note: SVN reference [12489] has been migrated to Git commit 4fff1ab101e4f7cd27dc8ded889e09905866076f
This commit is contained in:
Henrik Levkowetz 2016-12-09 12:01:48 +00:00
parent e83cee2c8b
commit 57eb5844e5
5 changed files with 26 additions and 17 deletions

View file

@ -46,6 +46,7 @@ class ReviewTests(TestCase):
doc = make_test_data()
review_req = make_review_data(doc)
review_team = review_req.team
review_team3 = Group.objects.get(acronym='reviewteam3')
url = urlreverse('ietf.doc.views_review.request_review', kwargs={ "name": doc.name })
login_testing_unauthorized(self, "reviewsecretary", url)
@ -59,18 +60,21 @@ class ReviewTests(TestCase):
# post request
r = self.client.post(url, {
"type": "early",
"team": review_team.pk,
"team": [review_team.pk,review_team3.pk],
"deadline": deadline.isoformat(),
"requested_rev": "01",
"requested_by": Person.objects.get(user__username="reviewsecretary").pk,
})
self.assertEqual(r.status_code, 302)
req = ReviewRequest.objects.get(doc=doc, state="requested")
self.assertEqual(req.deadline, deadline)
self.assertEqual(req.team, review_team)
self.assertEqual(req.requested_rev, "01")
self.assertEqual(doc.latest_event().type, "requested_review")
qs = ReviewRequest.objects.filter(doc=doc, state="requested")
self.assertEqual(qs.count(),2)
self.assertEqual(set(qs.values_list('team__acronym',flat=True)),set(['reviewteam','reviewteam3']))
for req in qs:
self.assertEqual(req.deadline, deadline)
self.assertEqual(req.requested_rev, "01")
self.assertEqual(doc.latest_event().type, "requested_review")
def test_doc_page(self):
doc = make_test_data()

View file

@ -111,6 +111,7 @@ def request_review(request, name):
teams = form.cleaned_data["team"]
for team in teams:
review_req = form.save(commit=False)
review_req.id = None
review_req.doc = doc
review_req.state = ReviewRequestStateName.objects.get(slug="requested", used=True)
review_req.team = team

View file

@ -129,7 +129,7 @@ class ReviewTests(TestCase):
availability="unavailable",
)
settings = ReviewerSettings.objects.get(person=reviewer)
settings = ReviewerSettings.objects.get(person=reviewer,team=review_req1.team)
settings.skip_next = 1
settings.save()

View file

@ -385,11 +385,14 @@ def make_test_data():
return draft
def make_review_data(doc):
team = create_group(acronym="reviewteam", name="Review Team", type_id="dir", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut"))
for r in ReviewResultName.objects.filter(slug__in=["issues", "ready-issues", "ready", "not-ready"]):
ResultUsedInReviewTeam.objects.create(team=team, result=r)
for t in ReviewTypeName.objects.filter(slug__in=["early", "lc", "telechat"]):
TypeUsedInReviewTeam.objects.create(team=team, type=t)
team1 = create_group(acronym="reviewteam", name="Review Team", type_id="dir", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut"))
team2 = create_group(acronym="reviewteam2", name="Review Team 2", type_id="dir", list_email="reviewteam2@ietf.org", parent=Group.objects.get(acronym="farfut"))
team3 = create_group(acronym="reviewteam3", name="Review Team 3", type_id="dir", list_email="reviewteam2@ietf.org", parent=Group.objects.get(acronym="farfut"))
for team in (team1, team2, team3):
for r in ReviewResultName.objects.filter(slug__in=["issues", "ready-issues", "ready", "not-ready"]):
ResultUsedInReviewTeam.objects.create(team=team, result=r)
for t in ReviewTypeName.objects.filter(slug__in=["early", "lc", "telechat"]):
TypeUsedInReviewTeam.objects.create(team=team, type=t)
u = User.objects.create(username="reviewer")
u.set_password("reviewer+password")
@ -397,12 +400,13 @@ def make_review_data(doc):
reviewer = Person.objects.create(name=u"Some Réviewer", ascii="Some Reviewer", user=u)
email = Email.objects.create(address="reviewer@example.com", person=reviewer)
Role.objects.create(name_id="reviewer", person=reviewer, email=email, group=team)
ReviewerSettings.objects.create(team=team, person=reviewer, min_interval=14, skip_next=0)
for team in (team1, team2, team3):
Role.objects.create(name_id="reviewer", person=reviewer, email=email, group=team)
ReviewerSettings.objects.create(team=team, person=reviewer, min_interval=14, skip_next=0)
review_req = ReviewRequest.objects.create(
doc=doc,
team=team,
team=team1,
type_id="early",
deadline=datetime.datetime.now() + datetime.timedelta(days=20),
state_id="accepted",
@ -411,14 +415,14 @@ def make_review_data(doc):
)
p = Person.objects.get(user__username="marschairman")
Role.objects.create(name_id="reviewer", person=p, email=p.email_set.first(), group=team)
Role.objects.create(name_id="reviewer", person=p, email=p.email_set.first(), group=team1)
u = User.objects.create(username="reviewsecretary")
u.set_password("reviewsecretary+password")
u.save()
reviewsecretary = Person.objects.create(name=u"Réview Secretary", ascii="Review Secretary", user=u)
reviewsecretary_email = Email.objects.create(address="reviewsecretary@example.com", person=reviewsecretary)
Role.objects.create(name_id="secr", person=reviewsecretary, email=reviewsecretary_email, group=team)
Role.objects.create(name_id="secr", person=reviewsecretary, email=reviewsecretary_email, group=team1)
return review_req

Binary file not shown.