1616import debug # pyflakes:ignore
1717
1818import ietf .review .mailarch
19- from ietf .doc .models import DocumentAuthor , Document , DocAlias , RelatedDocument , DocEvent , ReviewRequestDocEvent
19+ from ietf .doc .factories import NewRevisionDocEventFactory , WgDraftFactory , WgRfcFactory
20+ from ietf .doc .models import DocumentAuthor , RelatedDocument , DocEvent , ReviewRequestDocEvent
21+ from ietf .group .factories import RoleFactory , ReviewTeamFactory
2022from ietf .group .models import Group
2123from ietf .message .models import Message
22- from ietf .name .models import ReviewResultName , ReviewRequestStateName , ReviewTypeName , DocRelationshipName
24+ from ietf .name .models import ReviewResultName , ReviewRequestStateName , ReviewTypeName
2325from ietf .person .models import Email , Person
26+ from ietf .review .factories import ReviewRequestFactory
2427from ietf .review .models import (ReviewRequest , ReviewerSettings ,
2528 ReviewWish , UnavailablePeriod , NextReviewerInTeam )
2629from ietf .review .utils import reviewer_rotation_list , possibly_advance_next_reviewer_for_team
2730
2831from ietf .utils .test_utils import TestCase
29- from ietf .utils .test_data import make_test_data , make_review_data , create_person
32+ from ietf .utils .test_data import create_person
3033from ietf .utils .test_utils import login_testing_unauthorized , unicontent , reload_db_objects
3134from ietf .utils .mail import outbox , empty_outbox
3235from ietf .person .factories import PersonFactory
@@ -46,10 +49,17 @@ def tearDown(self):
4649 settings .DOCUMENT_PATH_PATTERN = self .old_document_path_pattern
4750
4851 def test_request_review (self ):
49- doc = make_test_data ()
50- review_req = make_review_data (doc )
51- review_team = review_req .team
52- review_team3 = Group .objects .get (acronym = 'reviewteam3' )
52+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
53+ NewRevisionDocEventFactory (doc = doc ,rev = '01' )
54+ RoleFactory (name_id = 'chair' ,person__user__username = 'marschairman' ,group = doc .group )
55+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
56+ review_team3 = ReviewTeamFactory (acronym = "reviewteam3" , name = "Review Team3" , type_id = "dir" , list_email = "reviewteam3@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
57+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
58+ RoleFactory (group = review_team3 ,person = rev_role .person ,name_id = 'reviewer' )
59+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
60+ RoleFactory (group = review_team3 ,person__user__username = 'reviewsecretary3' ,person__user__email = 'reviewsecretary3@example.com' ,name_id = 'secr' )
61+
62+ ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
5363
5464 url = urlreverse ('ietf.doc.views_review.request_review' , kwargs = { "name" : doc .name })
5565 login_testing_unauthorized (self , "ad" , url )
@@ -89,9 +99,7 @@ def test_request_review(self):
8999 self .assertTrue ('reviewsecretary3@' in outbox [1 ]['To' ])
90100
91101 def test_request_review_of_rfc (self ):
92- make_test_data ()
93- doc = Document .objects .filter (states__type_id = 'draft' ,states__slug = 'rfc' ).first ()
94- make_review_data (doc )
102+ doc = WgRfcFactory ()
95103
96104 url = urlreverse ('ietf.doc.views_review.request_review' , kwargs = { "name" : doc .name })
97105 login_testing_unauthorized (self , "ad" , url )
@@ -101,15 +109,18 @@ def test_request_review_of_rfc(self):
101109 self .assertEqual (r .status_code , 403 )
102110
103111 def test_doc_page (self ):
104- doc = make_test_data ()
105- review_req = make_review_data (doc )
112+
113+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
114+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
115+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
116+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
106117
107118 # move the review request to a doubly-replaced document to
108119 # check we can fish it out
109- old_doc = Document . objects . get (name = "draft-foo-mars-test" )
110- older_doc = Document . objects . create (name = "draft-older" )
111- older_docalias = DocAlias .objects .create (name = older_doc .name , document = older_doc )
112- RelatedDocument .objects .create (source = old_doc , target = older_docalias , relationship = DocRelationshipName . objects . get ( slug = 'replaces' ) )
120+ old_doc = WgDraftFactory (name = "draft-foo-mars-test" )
121+ older_doc = WgDraftFactory (name = "draft-older" )
122+ RelatedDocument .objects .create (source = old_doc , target = older_doc .docalias_set . first (), relationship_id = 'replaces' )
123+ RelatedDocument .objects .create (source = doc , target = old_doc . docalias_set . first (), relationship_id = 'replaces' )
113124 review_req .doc = older_doc
114125 review_req .save ()
115126
@@ -120,8 +131,10 @@ def test_doc_page(self):
120131 self .assertTrue ("{} Review" .format (review_req .type .name ) in content )
121132
122133 def test_review_request (self ):
123- doc = make_test_data ()
124- review_req = make_review_data (doc )
134+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
135+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
136+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
137+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
125138
126139 url = urlreverse ('ietf.doc.views_review.review_request' , kwargs = { "name" : doc .name , "request_id" : review_req .pk })
127140
@@ -131,10 +144,11 @@ def test_review_request(self):
131144 self .assertIn (review_req .team .name , unicontent (r ))
132145
133146 def test_close_request (self ):
134- doc = make_test_data ()
135- review_req = make_review_data (doc )
136- review_req .state = ReviewRequestStateName .objects .get (slug = "accepted" )
137- review_req .save ()
147+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
148+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
149+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
150+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
151+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
138152
139153 close_url = urlreverse ('ietf.doc.views_review.close_request' , kwargs = { "name" : doc .name , "request_id" : review_req .pk })
140154
@@ -166,10 +180,9 @@ def test_close_request(self):
166180 self .assertTrue ("closed" in outbox [0 ].get_payload (decode = True ).decode ("utf-8" ).lower ())
167181
168182 def test_possibly_advance_next_reviewer_for_team (self ):
169- doc = make_test_data ()
170183
171- team = Group . objects . create ( state_id = "active" , acronym = "rotationteam" , name = "Review Team" , type_id = "dir" ,
172- list_email = "rotationteam@ietf.org" , parent = Group . objects . get ( acronym = "farfut" ) )
184+ team = ReviewTeamFactory ( acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group . objects . get ( acronym = "farfut" ))
185+ doc = WgDraftFactory ( )
173186
174187 # make a bunch of reviewers
175188 reviewers = [
@@ -254,13 +267,15 @@ def get_skip_next(person):
254267 self .assertEqual (get_skip_next (reviewers [4 ]), 0 )
255268
256269 def test_assign_reviewer (self ):
257- doc = make_test_data ()
270+ doc = WgDraftFactory (pages = 2 )
271+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
272+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,person__name = u'Some Reviewer' ,name_id = 'reviewer' )
273+ RoleFactory (group = review_team ,person__user__username = 'marschairman' ,person__name = u'WG Cháir Man' ,name_id = 'reviewer' )
274+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
275+ ReviewerSettings .objects .create (team = review_team , person = rev_role .person , min_interval = 14 , skip_next = 0 )
258276
259277 # review to assign to
260- review_req = make_review_data (doc )
261- review_req .state = ReviewRequestStateName .objects .get (slug = "requested" )
262- review_req .reviewer = None
263- review_req .save ()
278+ review_req = ReviewRequestFactory (team = review_team ,doc = doc ,state_id = 'requested' )
264279
265280 # set up some reviewer-suitability factors
266281 reviewer_email = Email .objects .get (person__user__username = "reviewer" )
@@ -288,7 +303,7 @@ def test_assign_reviewer(self):
288303 reviewer_settings .save ()
289304
290305 # Need one more person in review team one so we can test incrementing skip_count without immediately decrementing it
291- another_reviewer = PersonFactory .create (name = u"Extra TestReviewer" ) # needs to be lexically greater than the exsting one
306+ another_reviewer = PersonFactory .create (name = u"Extra TestReviewer" ) # needs to be lexically greater than the existing one
292307 another_reviewer .role_set .create (name_id = 'reviewer' , email = another_reviewer .email (), group = review_req .team )
293308
294309 UnavailablePeriod .objects .create (
@@ -365,10 +380,11 @@ def test_assign_reviewer(self):
365380 self .assertEqual (ReviewerSettings .objects .get (person = reviewer .person ).skip_next , 1 )
366381
367382 def test_accept_reviewer_assignment (self ):
368- doc = make_test_data ()
369- review_req = make_review_data (doc )
370- review_req .state = ReviewRequestStateName .objects .get (slug = "requested" )
371- review_req .save ()
383+
384+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
385+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
386+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
387+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'requested' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
372388
373389 url = urlreverse ('ietf.doc.views_review.review_request' , kwargs = { "name" : doc .name , "request_id" : review_req .pk })
374390 username = review_req .reviewer .person .user .username
@@ -386,10 +402,11 @@ def test_accept_reviewer_assignment(self):
386402 self .assertEqual (review_req .state_id , "accepted" )
387403
388404 def test_reject_reviewer_assignment (self ):
389- doc = make_test_data ()
390- review_req = make_review_data (doc )
391- review_req .state = ReviewRequestStateName .objects .get (slug = "accepted" )
392- review_req .save ()
405+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
406+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
407+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
408+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
409+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
393410
394411 reject_url = urlreverse ('ietf.doc.views_review.reject_reviewer_assignment' , kwargs = { "name" : doc .name , "request_id" : review_req .pk })
395412
@@ -458,11 +475,11 @@ def make_test_mbox_tarball(self, review_req):
458475 return mbox_path
459476
460477 def test_search_mail_archive (self ):
461- doc = make_test_data ( )
462- review_req = make_review_data ( doc )
463- review_req . state = ReviewRequestStateName . objects . get ( slug = "accepted" )
464- review_req . save ( )
465- review_req . team . save ( )
478+ doc = WgDraftFactory ( group__acronym = 'mars' , rev = '01' )
479+ review_team = ReviewTeamFactory ( acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group . objects . get ( acronym = "farfut" ) )
480+ rev_role = RoleFactory ( group = review_team , person__user__username = 'reviewer' , person__user__email = 'reviewer@example.com' , name_id = 'reviewer' )
481+ RoleFactory ( group = review_team , person__user__username = 'reviewsecretary' , person__user__email = 'reviewsecretary@example.com' , name_id = 'secr' )
482+ review_req = ReviewRequestFactory ( doc = doc , team = review_team , type_id = 'early' , state_id = 'accepted' , requested_by = rev_role . person , reviewer = rev_role . person . email_set . first (), deadline = datetime . datetime . now () + datetime . timedelta ( days = 20 ) )
466483
467484 # test URL construction
468485 query_urls = ietf .review .mailarch .construct_query_urls (review_req )
@@ -504,10 +521,12 @@ def test_search_mail_archive(self):
504521 ietf .review .mailarch .construct_query_urls = real_fn
505522
506523 def setup_complete_review_test (self ):
507- doc = make_test_data ()
508- review_req = make_review_data (doc )
509- review_req .state = ReviewRequestStateName .objects .get (slug = "accepted" )
510- review_req .save ()
524+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
525+ NewRevisionDocEventFactory (doc = doc ,rev = '01' )
526+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
527+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
528+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
529+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
511530 for r in ReviewResultName .objects .filter (slug__in = ("issues" , "ready" )):
512531 review_req .team .reviewteamsettings .review_results .add (r )
513532
@@ -784,8 +803,11 @@ def test_revise_review_enter_content(self):
784803 self .assertEqual (len (outbox ), 0 )
785804
786805 def test_edit_comment (self ):
787- doc = make_test_data ()
788- review_req = make_review_data (doc )
806+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
807+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
808+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
809+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
810+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
789811
790812 url = urlreverse ('ietf.doc.views_review.edit_comment' , kwargs = { "name" : doc .name , "request_id" : review_req .pk })
791813
@@ -802,8 +824,11 @@ def test_edit_comment(self):
802824 self .assertEqual (review_req .comment ,'iHsnReEHXEmNPXcixsvAF9Aa' )
803825
804826 def test_edit_deadline (self ):
805- doc = make_test_data ()
806- review_req = make_review_data (doc )
827+ doc = WgDraftFactory (group__acronym = 'mars' ,rev = '01' )
828+ review_team = ReviewTeamFactory (acronym = "reviewteam" , name = "Review Team" , type_id = "dir" , list_email = "reviewteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
829+ rev_role = RoleFactory (group = review_team ,person__user__username = 'reviewer' ,person__user__email = 'reviewer@example.com' ,name_id = 'reviewer' )
830+ RoleFactory (group = review_team ,person__user__username = 'reviewsecretary' ,person__user__email = 'reviewsecretary@example.com' ,name_id = 'secr' )
831+ review_req = ReviewRequestFactory (doc = doc ,team = review_team ,type_id = 'early' ,state_id = 'accepted' ,requested_by = rev_role .person ,reviewer = rev_role .person .email_set .first (),deadline = datetime .datetime .now ()+ datetime .timedelta (days = 20 ))
807832
808833 url = urlreverse ('ietf.doc.views_review.edit_deadline' , kwargs = { "name" : doc .name , "request_id" : review_req .pk })
809834
0 commit comments