def test_canvas_user_not_found(self, get_user_profile, enroll_user_sections):
     """ Fail before enrollment attempt if user does not exist in Canvas """
     get_user_profile.return_value.status_code.return_value = 404
     bad_user_id = '    '  # mocking a bad user ID
     with self.assertRaises(NoCanvasUserToEnroll):
         result = enroll_creator_in_new_course(self.sis_course_id, bad_user_id)
     get_user_profile.assert_called_with(request_ctx=ANY, user_id=bad_user_id)
 def test_enrollment_on_userrole_exception(self, user_role_db_mock, get_user_profile, enroll_user_sections):
     """
     Successful enrollment even if there is an exception fetching user role data
     """
     self.initialize_test(get_user_profile, enroll_user_sections)
     self.user_id = 'sis_user_id:%s' % self.sis_user_id
     user_role_db_mock.side_effect = Exception
     result = enroll_creator_in_new_course(self.sis_course_id, self.user_id)
     enroll_user_sections.assert_called_with(request_ctx=ANY,
                                             section_id=ANY,
                                             enrollment_user_id=ANY,
                                             enrollment_type='TeacherEnrollment',
                                             enrollment_enrollment_state=ANY)
 def test_custom_role_enrollment(self, course_staff_db_mock, user_role_db_mock, get_user_profile, enroll_user_sections):
     """
     Successful custom enrollment when with the enrollment_role being passed in
     """
     self.initialize_test(get_user_profile, enroll_user_sections)
     self.user_id = 'sis_user_id:%s' % self.sis_user_id
     # user_role_db_mock = Mock()#1 #Course Head
     user_role_db_mock.return_value = Mock(spec=UserRole, canvas_role='Course Head')
     canvas_role = user_role_db_mock.canvas_role
     result = enroll_creator_in_new_course(self.sis_course_id, self.user_id)
     enroll_user_sections.assert_called_with(request_ctx=ANY,
                                             section_id='sis_section_id:%s' % self.sis_course_id,
                                             enrollment_user_id=self.canvas_user_id,
                                             enrollment_type='TeacherEnrollment',
                                             enrollment_role='Course Head',
                                             enrollment_enrollment_state='active')
 def test_canvas_user_id(self, get_user_profile, enroll_user_sections):
     """ Successful enrollment using Canvas user ID """
     self.initialize_test(get_user_profile, enroll_user_sections)
     self.user_id = self.canvas_user_id
     test_result = enroll_creator_in_new_course(self.sis_course_id, self.user_id)
     self.verify_test(get_user_profile, enroll_user_sections)