def create_users_data():
     staff_user = UserFactory(last_login=now() - timedelta(days=5))
     instructor_user = UserFactory(last_login=now() - timedelta(days=5))
     course = CourseOverviewFactory(end=now() + timedelta(days=30))
     archived_course = CourseOverviewFactory(end=now() - timedelta(days=30))
     course_ids = [course.id, archived_course.id]
     for course_id in course_ids:
         CourseAccessRoleFactory.create(course_id=course_id,
                                        user=staff_user,
                                        role="staff")
         CourseAccessRoleFactory.create(course_id=course_id,
                                        user=instructor_user,
                                        role="instructor")
Esempio n. 2
0
 def test_get_roles(self):
     """Create a role for a user, then get it"""
     expected_role = CourseAccessRoleFactory.create(
         course_id=self.course.id,
         user=self.user,
         role="SuperCoolTestRole",
     )
     roles = data.get_user_roles(self.user.username)
     assert roles == {expected_role}
Esempio n. 3
0
    def test_get_compliance_deadline_for_user(self):
        """
        Test that the proper deadlines get returned for each user scenario
            * Staff deadline returns STAFF_USER_COMPLIANCE_DEADLINE
            * CourseAccessRole Users return ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE
            * Everyone else gets GENERAL_USER_COMPLIANCE_DEADLINE
        """
        # Staff user returned the STAFF_USER_COMPLIANCE_DEADLINE
        user = UserFactory(is_staff=True)
        self.assertEqual(date1, _get_compliance_deadline_for_user(user))

        # User with CourseAccessRole returns the ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE
        user = UserFactory()
        CourseAccessRoleFactory.create(user=user)
        self.assertEqual(date2, _get_compliance_deadline_for_user(user))

        user = UserFactory()
        self.assertEqual(date3, _get_compliance_deadline_for_user(user))
Esempio n. 4
0
    def test_get_compliance_deadline_for_user_fallbacks(self):
        """
        Test that when some deadlines aren't specified, we cascade from general to specific.
        """
        staff = UserFactory(is_staff=True)
        privileged = UserFactory()
        CourseAccessRoleFactory.create(user=privileged)
        both = UserFactory(is_staff=True)
        CourseAccessRoleFactory.create(user=both)
        user = UserFactory()

        only_general = {
            'GENERAL_USER_COMPLIANCE_DEADLINE': date3
        }
        with self.settings(PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG=only_general):
            self.assertEqual(date3, _get_compliance_deadline_for_user(staff))
            self.assertEqual(date3, _get_compliance_deadline_for_user(privileged))
            self.assertEqual(date3, _get_compliance_deadline_for_user(both))

        no_staff = {
            'ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE': date2,
            'GENERAL_USER_COMPLIANCE_DEADLINE': date3
        }
        with self.settings(PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG=no_staff):
            self.assertEqual(date2, _get_compliance_deadline_for_user(both))
            self.assertEqual(date2, _get_compliance_deadline_for_user(staff))

        no_privileged = {
            'STAFF_USER_COMPLIANCE_DEADLINE': date1,
            'GENERAL_USER_COMPLIANCE_DEADLINE': date3
        }
        with self.settings(PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG=no_privileged):
            self.assertEqual(date1, _get_compliance_deadline_for_user(both))
            self.assertEqual(date3, _get_compliance_deadline_for_user(privileged))

        only_privileged = {
            'ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE': date2,
        }
        with self.settings(PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG=only_privileged):
            self.assertEqual(date2, _get_compliance_deadline_for_user(both))
            self.assertEqual(date2, _get_compliance_deadline_for_user(staff))
            self.assertIsNone(_get_compliance_deadline_for_user(user))

        early_elevated = {
            'STAFF_USER_COMPLIANCE_DEADLINE': date2,
            'ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE': date1,
        }
        with self.settings(PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG=early_elevated):
            self.assertEqual(date1, _get_compliance_deadline_for_user(both))
            self.assertEqual(date2, _get_compliance_deadline_for_user(staff))
            self.assertEqual(date1, _get_compliance_deadline_for_user(privileged))
            self.assertIsNone(_get_compliance_deadline_for_user(user))

        early_general = {
            'STAFF_USER_COMPLIANCE_DEADLINE': date3,
            'ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE': date2,
            'GENERAL_USER_COMPLIANCE_DEADLINE': date1,
        }
        with self.settings(PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG=early_general):
            self.assertEqual(date1, _get_compliance_deadline_for_user(both))
            self.assertEqual(date1, _get_compliance_deadline_for_user(staff))
            self.assertEqual(date1, _get_compliance_deadline_for_user(privileged))
            self.assertEqual(date1, _get_compliance_deadline_for_user(user))