コード例 #1
0
 def setUp(self):
     super(IsStudentFormDisabledHelperTest, self).setUp()
     self.course = CourseFactory.create()
     self.user = UserFactory.create()
     self.enrollment = CourseEnrollmentFactory.create(user=self.user, course_id=self.course.id)
     # Instructor haven't edited the information yet
     self.uid = UniversityID(can_edit=True, user=self.user, course_key=self.course.id)
     self.uid.save()
コード例 #2
0
class IsStudentFormDisabledHelperTest(ModuleStoreTestCase):
    TODAY = datetime.datetime.now(pytz.UTC)
    LAST_WEEK = TODAY - datetime.timedelta(days=7)
    NEXT_WEEK = TODAY + datetime.timedelta(days=7)

    def setUp(self):
        super(IsStudentFormDisabledHelperTest, self).setUp()
        self.course = CourseFactory.create()
        self.user = UserFactory.create()
        self.enrollment = CourseEnrollmentFactory.create(user=self.user, course_id=self.course.id)
        # Instructor haven't edited the information yet
        self.uid = UniversityID(can_edit=True, user=self.user, course_key=self.course.id)
        self.uid.save()

    def assertReturnValue(self, expected, msg=None):
        actual = helpers.is_student_form_disabled(self.user, self.course.id)
        self.assertEquals(actual, expected, msg)

    def test_happy_scenario(self):
        self.assertReturnValue(False)

    def test_with_can_edit_equals_false(self):
        """
        The form is should be disabled the instructor edited the student data.
        """
        self.uid.can_edit = False
        self.uid.save()
        self.assertReturnValue(True, 'Should be disabled when the instructor updates the information')

    def test_with_future_registration_end_date(self):
        """
        The form is should be disabled when registration end date (is not null) and (already passed).
        """
        uid_settings = UniversityIDSettings(registration_end_date=self.NEXT_WEEK, course_key=self.course.id)
        uid_settings.save()
        self.assertReturnValue(False, 'Future registration end date should NOT disable the form')

    def test_with_past_registration_end_date(self):
        """
        The form is should be disabled when registration end date (is not null) and (already passed).
        """
        uid_settings = UniversityIDSettings(registration_end_date=self.LAST_WEEK, course_key=self.course.id)
        uid_settings.save()
        self.assertReturnValue(True, 'Past registration end date should disable the form')

    def test_with_null_registration_end_date(self):
        """
        The form is should be disabled when registration end date (is not null) and (already passed).
        """
        uid_settings = UniversityIDSettings(registration_end_date=None, course_key=self.course.id)
        uid_settings.save()
        self.assertReturnValue(False, 'NULL registration end date should NOT disable the form')

    def test_not_enrolled_user(self):
        enrollment = CourseEnrollment.objects.get(user=self.user, course_id=self.course.id)
        enrollment.delete()
        self.assertReturnValue(True, 'Should be disabled for un-enrolled users')
コード例 #3
0
    def test_initial_data_are_valid(self):
        form = self.get_form()

        default_cohort = CourseUserGroup.objects.get(~Q(name=self.cohort.name), course_id=self.course.id)
        self.assertEquals(default_cohort.name, DEFAULT_COHORT_NAME)

        custom_cohort = CourseUserGroup.objects.get(course_id=self.course.id, name=self.cohort.name)
        self.assertEquals(custom_cohort.group_type, CourseUserGroup.COHORT)

        # Sanity check
        cohorts = UniversityID.get_cohorts_for_course(self.course.id)
        self.assertListEqual(list(cohorts), [custom_cohort])

        self.assertEquals(form.errors, {})
        self.assertTrue(form.is_valid())
コード例 #4
0
    def test_get_marked_university_ids(self):
        uni_ids = [
            '20-{}'.format(i)
            for i in ['01a', '10x', '03', '04M ', '04m', '04M\t', '10x ', '02t']
        ]

        course_key = CourseFactory.create().id

        for uni_id in uni_ids:
            model = UniversityIDFactory.create(
                course_key=course_key,
                university_id=uni_id,
            )

            model.save()

        marked = UniversityID.get_marked_university_ids(course_key=course_key)

        self.assertEquals(len(marked), len(uni_ids))

        # Should sort the UniversityIDs
        # Should not mark unique IDs
        self.assertListEqual(
            list1=[
                [u'20-01a', False],
                [u'20-02t', False],
                [u'20-03', False],
            ],
            list2=[
                [obj.university_id, obj.is_conflicted]
                for obj in marked[:3]
            ],
        )

        # Should mark conflicted
        self.assertListEqual(
            list1=[
                [u'20-04M\t', True],
                [u'20-04M ', True],
                [u'20-04m', True],
                [u'20-10x', True],
                [u'20-10x ', True],
            ],
            list2=[
                [obj.university_id, obj.is_conflicted]
                for obj in marked[3:]
            ],
        )
コード例 #5
0
    def get_cohort_choices(self):
        yield ('', '---')

        for cohort in UniversityID.get_cohorts_for_course(self.course_key):
            yield (cohort.id, cohort.name)
コード例 #6
0
 def get_queryset(self):
     return UniversityID.get_marked_university_ids(
         course_key=self.get_course_key())