33from ietf .doc .factories import WgDraftFactory , IndividualDraftFactory
44from ietf .group .factories import ReviewTeamFactory
55from ietf .group .models import Group , Role
6+ from ietf .name .models import ReviewerQueuePolicyName
67from ietf .person .fields import PersonEmailChoiceField
78from ietf .person .models import Email
89from ietf .review .factories import ReviewAssignmentFactory , ReviewRequestFactory
9- from ietf .review .models import ReviewerSettings , NextReviewerInTeam , UnavailablePeriod , ReviewWish
10- from ietf .review .policies import get_reviewer_queue_policy , AssignmentOrderResolver , \
11- LeastRecentlyUsedReviewerQueuePolicy , RotateAlphabeticallyReviewerQueuePolicy
10+ from ietf .review .models import ReviewerSettings , NextReviewerInTeam , UnavailablePeriod , ReviewWish , \
11+ ReviewTeamSettings
12+ from ietf .review .policies import (AssignmentOrderResolver , LeastRecentlyUsedReviewerQueuePolicy ,
13+ RotateAlphabeticallyReviewerQueuePolicy ,
14+ get_reviewer_queue_policy )
1215from ietf .utils .test_data import create_person
1316from ietf .utils .test_utils import TestCase
1417
1518
19+ class GetReviewerQueuePolicyTest (TestCase ):
20+ def test_valid_policy (self ):
21+ team = ReviewTeamFactory (acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ), settings__reviewer_queue_policy_id = 'LeastRecentlyUsed' )
22+ policy = get_reviewer_queue_policy (team )
23+ self .assertEqual (policy .__class__ , LeastRecentlyUsedReviewerQueuePolicy )
24+
25+ def test_missing_settings (self ):
26+ team = ReviewTeamFactory (acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
27+ ReviewTeamSettings .objects .all ().delete ()
28+ with self .assertRaises (ValueError ):
29+ get_reviewer_queue_policy (team )
30+
31+ def test_invalid_policy_name (self ):
32+ ReviewerQueuePolicyName .objects .create (slug = 'invalid' )
33+ team = ReviewTeamFactory (acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ), settings__reviewer_queue_policy_id = 'invalid' )
34+ with self .assertRaises (ValueError ):
35+ get_reviewer_queue_policy (team )
36+
37+
1638class RotateAlphabeticallyReviewerQueuePolicyTest (TestCase ):
1739 """
1840 These tests also cover the common behaviour in RotateAlphabeticallyReviewerQueuePolicy,
@@ -63,7 +85,7 @@ def test_default_reviewer_rotation_list(self):
6385
6486 def test_setup_reviewer_field (self ):
6587 team = ReviewTeamFactory (acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
66- policy = get_reviewer_queue_policy (team )
88+ policy = RotateAlphabeticallyReviewerQueuePolicy (team )
6789 reviewer_0 = create_person (team , "reviewer" , name = "Test Reviewer-0" , username = "testreviewer0" )
6890 reviewer_1 = create_person (team , "reviewer" , name = "Test Reviewer-1" , username = "testreviewer1" )
6991 review_req = ReviewRequestFactory (team = team , type_id = 'early' )
@@ -80,7 +102,7 @@ def test_setup_reviewer_field(self):
80102
81103 def test_recommended_assignment_order (self ):
82104 team = ReviewTeamFactory (acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
83- policy = get_reviewer_queue_policy (team )
105+ policy = RotateAlphabeticallyReviewerQueuePolicy (team )
84106 reviewer_high = create_person (team , "reviewer" , name = "Test Reviewer-1-high" , username = "testreviewerhigh" )
85107 reviewer_low = create_person (team , "reviewer" , name = "Test Reviewer-0-low" , username = "testreviewerlow" )
86108
@@ -100,7 +122,7 @@ def test_recommended_assignment_order(self):
100122
101123 def test_update_policy_state_for_assignment (self ):
102124 team = ReviewTeamFactory (acronym = "rotationteam" , name = "Review Team" , list_email = "rotationteam@ietf.org" , parent = Group .objects .get (acronym = "farfut" ))
103- policy = get_reviewer_queue_policy (team )
125+ policy = RotateAlphabeticallyReviewerQueuePolicy (team )
104126
105127 # make a bunch of reviewers
106128 reviewers = [
0 commit comments