Skip to content

Commit 0856990

Browse files
committed
Checkpoint. Most tests do not fail. Oddness with an API resource, and with one template's coverage
- Legacy-Id: 16031
1 parent a4db665 commit 0856990

10 files changed

Lines changed: 65 additions & 65 deletions

File tree

ietf/doc/tests_review.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818

1919
import ietf.review.mailarch
2020
from ietf.doc.factories import NewRevisionDocEventFactory, WgDraftFactory, WgRfcFactory
21-
from ietf.doc.models import DocumentAuthor, RelatedDocument, DocEvent, ReviewRequestDocEvent, ReviewAssignmentDocEvent
21+
from ietf.doc.models import DocumentAuthor, RelatedDocument, DocEvent, ReviewAssignmentDocEvent
2222
from ietf.group.factories import RoleFactory, ReviewTeamFactory
2323
from ietf.group.models import Group
2424
from ietf.message.models import Message
25-
from ietf.name.models import ReviewResultName, ReviewRequestStateName, ReviewAssignmentStateName, ReviewTypeName
25+
from ietf.name.models import ReviewResultName, ReviewRequestStateName, ReviewAssignmentStateName
2626
from ietf.person.models import Email, Person
2727
from ietf.review.factories import ReviewRequestFactory, ReviewAssignmentFactory
2828
from ietf.review.models import (ReviewRequest, ReviewerSettings,
@@ -137,7 +137,7 @@ def test_doc_page(self):
137137
review_team = ReviewTeamFactory(acronym="reviewteam", name="Review Team", type_id="review", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut"))
138138
rev_role = RoleFactory(group=review_team,person__user__username='reviewer',person__user__email='reviewer@example.com',name_id='reviewer')
139139
review_req = ReviewRequestFactory(doc=doc,team=review_team,type_id='early',state_id='assigned',requested_by=rev_role.person,deadline=datetime.datetime.now()+datetime.timedelta(days=20))
140-
assignment = ReviewAssignmentFactory(review_request=review_req, reviewer=rev_role.person.email_set.first(), state_id='accepted')
140+
ReviewAssignmentFactory(review_request=review_req, reviewer=rev_role.person.email_set.first(), state_id='accepted')
141141

142142
# move the review request to a doubly-replaced document to
143143
# check we can fish it out
@@ -160,7 +160,7 @@ def test_review_request(self):
160160
review_team = ReviewTeamFactory(acronym="reviewteam", name="Review Team", type_id="review", list_email="reviewteam@ietf.org", parent=Group.objects.get(acronym="farfut"))
161161
rev_role = RoleFactory(group=review_team,person__user__username='reviewer',person__user__email='reviewer@example.com',name_id='reviewer')
162162
review_req = ReviewRequestFactory(doc=doc,team=review_team,type_id='early',state_id='assigned',requested_by=rev_role.person,deadline=datetime.datetime.now()+datetime.timedelta(days=20))
163-
assignment = ReviewAssignmentFactory(review_request = review_req, reviewer = rev_role.person.email_set.first(), state_id='accepted')
163+
ReviewAssignmentFactory(review_request = review_req, reviewer = rev_role.person.email_set.first(), state_id='accepted')
164164

165165
url = urlreverse('ietf.doc.views_review.review_request', kwargs={ "name": doc.name, "request_id": review_req.pk })
166166

@@ -403,7 +403,7 @@ def test_assign_reviewer(self):
403403
self.assertEqual(review_req.reviewassignment_set.count(),1)
404404
assignment = review_req.reviewassignment_set.first()
405405
self.assertEqual(assignment.reviewer, reviewer)
406-
self.assertEqual(assignment.state_id, "requested")
406+
self.assertEqual(assignment.state_id, "assigned")
407407
self.assertEqual(len(outbox), 1)
408408
self.assertTrue("assigned" in outbox[0].get_payload(decode=True).decode("utf-8"))
409409
self.assertEqual(NextReviewerInTeam.objects.get(team=review_req.team).next_reviewer, rotation_list[1])
@@ -812,7 +812,6 @@ def test_partially_complete_review(self):
812812
self.assertTrue(any( len(line) > 80 for line in body.splitlines() ))
813813

814814
first_review = assignment.review
815-
first_reviewer = assignment.reviewer
816815

817816
# complete
818817
assignment = assignment.review_request.reviewassignment_set.create(state_id="requested", reviewer=assignment.reviewer)
@@ -902,7 +901,7 @@ def test_edit_comment(self):
902901
rev_role = RoleFactory(group=review_team,person__user__username='reviewer',person__user__email='reviewer@example.com',name_id='reviewer')
903902
RoleFactory(group=review_team,person__user__username='reviewsecretary',person__user__email='reviewsecretary@example.com',name_id='secr')
904903
review_req = ReviewRequestFactory(doc=doc,team=review_team,type_id='early',state_id='assigned',requested_by=rev_role.person,deadline=datetime.datetime.now()+datetime.timedelta(days=20))
905-
assignment = ReviewAssignmentFactory(review_request = review_req, reviewer = rev_role.person.email_set.first(), state_id='accepted')
904+
ReviewAssignmentFactory(review_request = review_req, reviewer = rev_role.person.email_set.first(), state_id='accepted')
906905

907906
url = urlreverse('ietf.doc.views_review.edit_comment', kwargs={ "name": doc.name, "request_id": review_req.pk })
908907

@@ -924,7 +923,7 @@ def test_edit_deadline(self):
924923
rev_role = RoleFactory(group=review_team,person__user__username='reviewer',person__user__email='reviewer@example.com',name_id='reviewer')
925924
RoleFactory(group=review_team,person__user__username='reviewsecretary',person__user__email='reviewsecretary@example.com',name_id='secr')
926925
review_req = ReviewRequestFactory(doc=doc,team=review_team,type_id='early',state_id='accepted',requested_by=rev_role.person,deadline=datetime.datetime.now()+datetime.timedelta(days=20))
927-
assignment = ReviewAssignmentFactory(review_request = review_req, reviewer = rev_role.person.email_set.first(), state_id='accepted')
926+
ReviewAssignmentFactory(review_request = review_req, reviewer = rev_role.person.email_set.first(), state_id='accepted')
928927

929928
url = urlreverse('ietf.doc.views_review.edit_deadline', kwargs={ "name": doc.name, "request_id": review_req.pk })
930929

ietf/doc/views_doc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@
6464
from ietf.mailtrigger.utils import gather_relevant_expansions
6565
from ietf.meeting.models import Session
6666
from ietf.meeting.utils import group_sessions, get_upcoming_manageable_sessions, sort_sessions
67-
from ietf.review.models import ReviewRequest, ReviewAssignment
68-
from ietf.review.utils import can_request_review_of_doc, review_requests_to_list_for_docs, review_assignments_to_list_for_docs
67+
from ietf.review.models import ReviewAssignment
68+
from ietf.review.utils import can_request_review_of_doc, review_assignments_to_list_for_docs
6969
from ietf.review.utils import no_review_from_teams_on_doc
7070
from ietf.utils import markup_txt, log
7171
from ietf.utils.text import maybe_split

ietf/doc/views_review.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from ietf.review.utils import (active_review_teams, assign_review_request_to_reviewer,
3232
can_request_review_of_doc, can_manage_review_requests_for_team,
3333
email_review_assignment_change, email_review_request_change,
34-
make_new_review_request_from_existing, close_review_request_states,
34+
close_review_request_states,
3535
close_review_request, setup_reviewer_field)
3636
from ietf.review import mailarch
3737
from ietf.utils.fields import DatepickerDateField
@@ -201,13 +201,13 @@ def review_request(request, name, request_id):
201201
for assignment in assignments:
202202
assignment.is_reviewer = user_is_person(request.user, assignment.reviewer.person)
203203

204-
assignment.can_accept_reviewer_assignment = (assignment.state_id == "requested"
204+
assignment.can_accept_reviewer_assignment = (assignment.state_id == "assigned"
205205
and (assignment.is_reviewer or can_manage_request))
206206

207-
assignment.can_reject_reviewer_assignment = (assignment.state_id in ["requested", "accepted"]
207+
assignment.can_reject_reviewer_assignment = (assignment.state_id in ["assigned", "accepted"]
208208
and (assignment.is_reviewer or can_manage_request))
209209

210-
assignment.can_complete_review = (assignment.state_id in ["requested", "accepted", "overtaken", "no-response", "part-completed", "completed"]
210+
assignment.can_complete_review = (assignment.state_id in ["assigned", "accepted", "overtaken", "no-response", "part-completed", "completed"]
211211
and (assignment.is_reviewer or can_manage_request))
212212

213213
# This implementation means if a reviewer accepts one assignment for a review_request, he accepts all assigned to him (for that request)

ietf/group/tests_review.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
from ietf.doc.models import TelechatDocEvent
1010
from ietf.group.models import Role
1111
from ietf.iesg.models import TelechatDate
12-
from ietf.person.models import Email, Person
13-
from ietf.review.models import ReviewRequest, ReviewerSettings, UnavailablePeriod, ReviewSecretarySettings
12+
from ietf.person.models import Person
13+
from ietf.review.models import ReviewerSettings, UnavailablePeriod, ReviewSecretarySettings
1414
from ietf.review.utils import (
1515
suggested_review_requests_for_team,
1616
review_assignments_needing_reviewer_reminder, email_reviewer_reminder,
1717
review_assignments_needing_secretary_reminder, email_secretary_reminder,
1818
reviewer_rotation_list,
1919
)
20-
from ietf.name.models import ReviewTypeName, ReviewResultName, ReviewRequestStateName, ReviewAssignmentStateName
20+
from ietf.name.models import ReviewResultName, ReviewRequestStateName, ReviewAssignmentStateName
2121
import ietf.group.views
2222
from ietf.utils.mail import outbox, empty_outbox
2323
from ietf.dbtemplate.factories import DBTemplateFactory
@@ -173,13 +173,12 @@ def test_reviewer_overview(self):
173173

174174
def test_manage_review_requests(self):
175175
group = ReviewTeamFactory()
176-
reviewer = RoleFactory(name_id='reviewer',group=group,person__user__username='reviewer').person
176+
RoleFactory(name_id='reviewer',group=group,person__user__username='reviewer').person
177177
marsperson = RoleFactory(name_id='reviewer',group=group,person=PersonFactory(name=u"Mars Anders Chairman",user__username='marschairman')).person
178178
review_req1 = ReviewRequestFactory(doc__pages=2,doc__shepherd=marsperson.email(),team=group)
179179
review_req2 = ReviewRequestFactory(team=group)
180180
review_req3 = ReviewRequestFactory(team=group)
181181
RoleFactory(name_id='chair',group=review_req1.doc.group,person=marsperson)
182-
doc = review_req1.doc
183182

184183
unassigned_url = urlreverse(ietf.group.views.manage_review_requests, kwargs={ 'acronym': group.acronym, 'group_type': group.type_id, "assignment_status": "unassigned" })
185184
login_testing_unauthorized(self, "secretary", unassigned_url)

ietf/iesg/agenda.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from ietf.doc.models import Document, LastCallDocEvent, ConsensusDocEvent
1313
from ietf.doc.utils_search import fill_in_telechat_date
1414
from ietf.iesg.models import TelechatDate, TelechatAgendaItem
15-
from ietf.review.utils import review_requests_to_list_for_docs
15+
from ietf.review.utils import review_assignments_to_list_for_docs
1616

1717
def get_agenda_date(date=None):
1818
if not date:

ietf/ietfauth/tests.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from ietf.mailinglists.models import Subscribed
2323
from ietf.person.models import Person, Email, PersonalApiKey, PERSON_API_KEY_ENDPOINTS
2424
from ietf.person.factories import PersonFactory, EmailFactory
25-
from ietf.review.factories import ReviewRequestFactory
25+
from ietf.review.factories import ReviewRequestFactory, ReviewAssignmentFactory
2626
from ietf.review.models import ReviewWish, UnavailablePeriod
2727
from ietf.utils.decorators import skip_coverage
2828

@@ -358,11 +358,12 @@ def test_reset_password(self):
358358
self.assertTrue(self.username_in_htpasswd_file(user.username))
359359

360360
def test_review_overview(self):
361-
review_req = ReviewRequestFactory(reviewer=EmailFactory(person__user__username='reviewer'))
362-
RoleFactory(name_id='reviewer',group=review_req.team,person=review_req.reviewer.person)
361+
review_req = ReviewRequestFactory()
362+
assignment = ReviewAssignmentFactory(review_request=review_req,reviewer=EmailFactory(person__user__username='reviewer'))
363+
RoleFactory(name_id='reviewer',group=review_req.team,person=assignment.reviewer.person)
363364
doc = review_req.doc
364365

365-
reviewer = review_req.reviewer.person
366+
reviewer = assignment.reviewer.person
366367

367368
UnavailablePeriod.objects.create(
368369
team=review_req.team,

ietf/ietfauth/views.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
from ietf.ietfauth.utils import role_required
6666
from ietf.mailinglists.models import Subscribed, Whitelisted
6767
from ietf.person.models import Person, Email, Alias, PersonalApiKey
68-
from ietf.review.models import ReviewRequest, ReviewerSettings, ReviewWish
68+
from ietf.review.models import ReviewerSettings, ReviewWish, ReviewAssignment
6969
from ietf.review.utils import unavailable_periods_to_list, get_default_filter_re
7070
from ietf.doc.fields import SearchableDocumentField
7171
from ietf.utils.decorators import person_required
@@ -433,18 +433,18 @@ def __init__(self, teams, *args, **kwargs):
433433

434434
@login_required
435435
def review_overview(request):
436-
open_review_requests = ReviewRequest.objects.filter(
436+
open_review_assignments = ReviewAssignment.objects.filter(
437437
reviewer__person__user=request.user,
438-
state__in=["requested", "accepted"],
438+
state__in=["assigned", "accepted"],
439439
)
440440
today = Date.today()
441-
for r in open_review_requests:
442-
r.due = max(0, (today - r.deadline).days)
441+
for r in open_review_assignments:
442+
r.due = max(0, (today - r.review_request.deadline).days)
443443

444-
closed_review_requests = ReviewRequest.objects.filter(
444+
closed_review_assignments = ReviewAssignment.objects.filter(
445445
reviewer__person__user=request.user,
446446
state__in=["no-response", "part-completed", "completed"],
447-
).order_by("-time")[:20]
447+
).order_by("-review_request__time")[:20]
448448

449449
teams = Group.objects.filter(role__name="reviewer", role__person__user=request.user, state="active")
450450

@@ -483,8 +483,8 @@ def review_overview(request):
483483
review_wishes = ReviewWish.objects.filter(person__user=request.user).prefetch_related("team")
484484

485485
return render(request, 'ietfauth/review_overview.html', {
486-
'open_review_requests': open_review_requests,
487-
'closed_review_requests': closed_review_requests,
486+
'open_review_assignments': open_review_assignments,
487+
'closed_review_assignments': closed_review_assignments,
488488
'teams': teams,
489489
'review_wishes': review_wishes,
490490
'review_wish_form': review_wish_form,

ietf/name/resources.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,20 @@ class Meta:
429429
}
430430
api.name.register(ReviewRequestStateNameResource())
431431

432+
class ReviewAssignmentStateNameResource(ModelResource):
433+
class Meta:
434+
cache = SimpleCache()
435+
queryset = ReviewAssignmentStateName.objects.all()
436+
#resource_name = 'reviewassignmentstatename'
437+
filtering = {
438+
"slug": ALL,
439+
"name": ALL,
440+
"desc": ALL,
441+
"used": ALL,
442+
"order": ALL,
443+
}
444+
api.name.register(ReviewAssignmentStateNameResource())
445+
432446
class ReviewTypeNameResource(ModelResource):
433447
class Meta:
434448
cache = SimpleCache()
@@ -570,17 +584,3 @@ class Meta:
570584
api.name.register(AgendaTypeNameResource())
571585

572586

573-
class ReviewAssignmentStateNameResource(ModelResource):
574-
class Meta:
575-
queryset = ReviewAssignmentStateName.objects.all()
576-
serializer = api.Serializer()
577-
cache = SimpleCache()
578-
#resource_name = 'reviewassignmentstatename'
579-
filtering = {
580-
"slug": ALL,
581-
"name": ALL,
582-
"desc": ALL,
583-
"used": ALL,
584-
"order": ALL,
585-
}
586-
api.name.register(ReviewAssignmentStateNameResource())

ietf/stats/tests.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from ietf.person.factories import PersonFactory
1919
from ietf.person.models import Person, Email
2020
from ietf.name.models import FormalLanguageName, DocRelationshipName, CountryName
21-
from ietf.review.factories import ReviewRequestFactory, ReviewerSettingsFactory
21+
from ietf.review.factories import ReviewRequestFactory, ReviewerSettingsFactory, ReviewAssignmentFactory
2222
from ietf.stats.models import MeetingRegistration, CountryAlias
2323
from ietf.stats.utils import get_meeting_registration_data
2424

@@ -157,7 +157,8 @@ def test_known_country_list(self):
157157

158158
def test_review_stats(self):
159159
reviewer = PersonFactory()
160-
review_req = ReviewRequestFactory(reviewer=reviewer.email_set.first())
160+
review_req = ReviewRequestFactory()
161+
ReviewAssignmentFactory(review_request=review_req, reviewer=reviewer.email_set.first())
161162
RoleFactory(group=review_req.team,name_id='reviewer',person=reviewer)
162163
ReviewerSettingsFactory(team=review_req.team, person=reviewer)
163164
PersonFactory(user__username='plain')

ietf/templates/ietfauth/review_overview.html

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ <h1>Review overview for {{ request.user }}</h1>
1717

1818
<h2>Assigned reviews</h2>
1919

20-
{% if open_review_requests %}
20+
{% if open_review_assignments %}
2121
<table class="table table-condensed table-striped">
2222
<thead>
2323
<tr>
@@ -30,15 +30,15 @@ <h2>Assigned reviews</h2>
3030
</tr>
3131
</thead>
3232
<tbody>
33-
{% for r in open_review_requests %}
33+
{% for r in open_review_assignments %}
3434
<tr>
35-
<td><a {% if r.pk != None %}href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}"{% endif %}>{{ r.doc.name }}</a></td>
36-
<td>{% if r.requested_rev %}{{ r.requested_rev }}{% else %}Current{% endif %}</td>
37-
<td>{{r.doc.rev}}</td>
38-
<td><a href="{% url 'ietf.group.views.review_requests' acronym=r.team.acronym %}">{{ r.team.acronym }}</a></td>
39-
<td>{{ r.type.name }}</td>
35+
<td><a {% if r.pk != None %}href="{% url "ietf.doc.views_review.review_request" name=r.review_request.doc.name request_id=r.review_request.pk %}"{% endif %}>{{ r.review_request.doc.name }}</a></td>
36+
<td>{% if r.review_request.requested_rev %}{{ r.review_request.requested_rev }}{% else %}Current{% endif %}</td>
37+
<td>{{r.review_request.doc.rev}}</td>
38+
<td><a href="{% url 'ietf.group.views.review_requests' acronym=r.review_request.team.acronym %}">{{ r.review_request.team.acronym }}</a></td>
39+
<td>{{ r.review_request.type.name }}</td>
4040
<td>
41-
{{ r.deadline|date:"Y-m-d" }}
41+
{{ r.review_request.deadline|date:"Y-m-d" }}
4242
{% if r.due %}<span class="label label-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %}
4343
</td>
4444
</tr>
@@ -50,9 +50,9 @@ <h2>Assigned reviews</h2>
5050
{% endif %}
5151

5252

53-
<h2>Latest closed review requests</h2>
53+
<h2>Latest closed review assignments</h2>
5454

55-
{% if closed_review_requests %}
55+
{% if closed_review_assignments %}
5656
<table class="table table-condensed table-striped">
5757
<thead>
5858
<tr>
@@ -66,14 +66,14 @@ <h2>Latest closed review requests</h2>
6666
</tr>
6767
</thead>
6868
<tbody>
69-
{% for r in closed_review_requests %}
69+
{% for r in closed_review_assignments %}
7070
<tr>
71-
<td><a {% if r.pk != None %}href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}"{% endif %}>{{ r.doc.name }}</a></td>
72-
<td>{{r.reviewed_rev|default:"See review"}}{% if r.requested_rev %}{% if r.requested_rev != r.reviewed_rev %}({{ r.requested_rev }} requested){% endif %}{% endif %}</td>
73-
<td><a href="{% url 'ietf.group.views.review_requests' acronym=r.team.acronym %}">{{ r.team.acronym }}</a></td>
74-
<td>{{ r.type.name }}</td>
71+
<td><a {% if r.pk != None %}href="{% url "ietf.doc.views_review.review_request" name=r.review_request.doc.name request_id=r.review_request.pk %}"{% endif %}>{{ r.review_request.doc.name }}</a></td>
72+
<td>{{r.reviewed_rev|default:"See review"}}{% if r.review_request.requested_rev %}{% if r.review_request.requested_rev != r.reviewed_rev %}({{ r.review_request.requested_rev }} requested){% endif %}{% endif %}</td>
73+
<td><a href="{% url 'ietf.group.views.review_requests' acronym=r.review_request.team.acronym %}">{{ r.review_request.team.acronym }}</a></td>
74+
<td>{{ r.review_request.type.name }}</td>
7575
<td>
76-
{{ r.deadline|date:"Y-m-d" }}
76+
{{ r.review_request.deadline|date:"Y-m-d" }}
7777
{% if r.due %}<span class="label label-warning">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %}
7878
</td>
7979
<td><span class="{% if r.state_id == "completed" or r.state_id == "part-completed" %}bg-success{% endif %}">{{ r.state.name }}</span></td>

0 commit comments

Comments
 (0)