@@ -422,6 +422,34 @@ def test_preapprved_user_updated_inst_id_after_req_enrollment_roles_match(self):
422
422
self .assertIn (expected_role_identifier ,
423
423
[role .identifier for role in user_participation .roles .all ()])
424
424
425
+ def test_preapprved_user_updated_inst_id_after_req_enrollment_tags_match (self ):
426
+ self .update_require_approval_course (
427
+ preapproval_require_verified_inst_id = True )
428
+
429
+ user = factories .UserFactory ()
430
+ inst_id = user .institutional_id
431
+
432
+ # Temporarily remove his/her inst_id
433
+ user .institutional_id = None
434
+ user .save ()
435
+
436
+ expected_tag_name = "test_student_tag"
437
+
438
+ self .get_test_preapproval (
439
+ institutional_id = inst_id , tags = [expected_tag_name ])
440
+
441
+ with self .temporarily_switch_to_user (user ):
442
+ self .c .post (self .enroll_request_url )
443
+
444
+ # Add back the inst_id
445
+ user .institutional_id = inst_id
446
+ user .institutional_id_verified = True
447
+ user .save ()
448
+
449
+ user_participation = Participation .objects .get (user = user )
450
+ self .assertIn (expected_tag_name ,
451
+ [tag .name for tag in user_participation .tags .all ()])
452
+
425
453
def test_course_require_inst_id_verified_user_inst_id_not_verified1 (self ):
426
454
# thought matched
427
455
self .update_require_approval_course (
@@ -553,7 +581,7 @@ def test_approve_new(self):
553
581
request = mock .MagicMock ()
554
582
555
583
participation = enrollment .handle_enrollment_request (
556
- self .course , user , status , roles , request = request )
584
+ self .course , user , status , roles , None , request = request )
557
585
558
586
self .assertEqual (participation .user , user )
559
587
self .assertEqual (participation .status , status )
@@ -570,7 +598,7 @@ def test_approve_new_none_roles(self):
570
598
request = mock .MagicMock ()
571
599
572
600
participation = enrollment .handle_enrollment_request (
573
- self .course , user , status , roles , request = request )
601
+ self .course , user , status , roles , None , request = request )
574
602
575
603
self .assertEqual (participation .user , user )
576
604
self .assertEqual (participation .status , status )
@@ -589,7 +617,7 @@ def test_deny_new(self):
589
617
request = mock .MagicMock ()
590
618
591
619
participation = enrollment .handle_enrollment_request (
592
- self .course , user , status , roles , request = request )
620
+ self .course , user , status , roles , None , request = request )
593
621
594
622
self .assertEqual (participation .user , user )
595
623
self .assertEqual (participation .status , status )
@@ -611,7 +639,7 @@ def test_approve_requested(self):
611
639
request = mock .MagicMock ()
612
640
613
641
participation = enrollment .handle_enrollment_request (
614
- self .course , user , status , roles , request = request )
642
+ self .course , user , status , roles , None , request = request )
615
643
616
644
self .assertEqual (participation .user , user )
617
645
self .assertEqual (participation .status , status )
@@ -634,7 +662,7 @@ def test_deny_requested(self):
634
662
request = mock .MagicMock ()
635
663
636
664
participation = enrollment .handle_enrollment_request (
637
- self .course , user , status , roles , request = request )
665
+ self .course , user , status , roles , None , request = request )
638
666
639
667
self .assertEqual (participation .user , user )
640
668
self .assertEqual (participation .status , status )
@@ -1002,75 +1030,6 @@ def test_edit_participation_view_save_integrity_error(self):
1002
1030
self .assertEqual (len (mail .outbox ), 0 )
1003
1031
1004
1032
1005
- class EnrollmentPreapprovalTestMixin (LocmemBackendTestsMixin ,
1006
- EnrollmentTestBaseMixin ):
1007
-
1008
- @classmethod
1009
- def setUpTestData (cls ): # noqa
1010
- super (EnrollmentPreapprovalTestMixin , cls ).setUpTestData ()
1011
- cls .non_ptcp_active_user1 .institutional_id_verified = True
1012
- cls .non_ptcp_active_user1 .save ()
1013
- cls .non_ptcp_active_user2 .institutional_id_verified = False
1014
- cls .non_ptcp_active_user2 .save ()
1015
-
1016
- @property
1017
- def preapprove_data_emails (self ):
1018
- preapproved_user = [self .non_ptcp_active_user1 ,
1019
- self .non_ptcp_active_user2 ]
1020
- preapproved_data = [u .email for u in preapproved_user ]
1021
- preapproved_data .insert (1 , " " ) # empty line
1022
- preapproved_data .insert (0 , " " ) # empty line
1023
- return preapproved_data
1024
-
1025
- @property
1026
- def preapprove_data_institutional_ids (self ):
1027
- preapproved_user = [self .non_ptcp_active_user1 ,
1028
- self .non_ptcp_active_user2 ,
1029
- self .non_ptcp_unconfirmed_user1 ]
1030
- preapproved_data = [u .institutional_id for u in preapproved_user ]
1031
- preapproved_data .insert (1 , " " ) # empty line
1032
- preapproved_data .insert (0 , " " ) # empty line
1033
- return preapproved_data
1034
-
1035
- @property
1036
- def preapproval_url (self ):
1037
- return reverse ("relate-create_preapprovals" ,
1038
- args = [self .course .identifier ])
1039
-
1040
- @property
1041
- def default_preapprove_role (self ):
1042
- role , _ = (ParticipationRole .objects .get_or_create (
1043
- course = self .course , identifier = "student" ))
1044
- return [str (role .pk )]
1045
-
1046
- def post_preapproval (self , preapproval_type , preapproval_data = None ,
1047
- force_login_instructor = True ):
1048
- if preapproval_data is None :
1049
- if preapproval_type == "email" :
1050
- preapproval_data = self .preapprove_data_emails
1051
- elif preapproval_type == "institutional_id" :
1052
- preapproval_data = self .preapprove_data_institutional_ids
1053
-
1054
- assert preapproval_data is not None
1055
- assert isinstance (preapproval_data , list )
1056
-
1057
- data = {
1058
- "preapproval_type" : [preapproval_type ],
1059
- "preapproval_data" : ["\n " .join (preapproval_data )],
1060
- "roles" : self .student_role_post_data ,
1061
- "submit" : ["" ]
1062
- }
1063
- if not force_login_instructor :
1064
- approver = self .get_logged_in_user ()
1065
- else :
1066
- approver = self .instructor_participation .user
1067
- with self .temporarily_switch_to_user (approver ):
1068
- return self .c .post (self .preapproval_url , data , follow = True )
1069
-
1070
- def get_preapproval_count (self ):
1071
- return ParticipationPreapproval .objects .all ().count ()
1072
-
1073
-
1074
1033
class CreatePreapprovalsTest (EnrollmentTestMixin ,
1075
1034
SingleCourseTestMixin , TestCase ):
1076
1035
# test enrollment.create_preapprovals
0 commit comments