Пример #1
0
    def test_get_course_cohort_names(self):
        """
        Make sure cohorts.get_course_cohort_names() properly returns a list of cohort
        names for a given course.
        """
        course = modulestore().get_course(self.toy_course_key)

        self.assertItemsEqual(cohorts.get_course_cohort_names(course.id), [])
        self.assertItemsEqual(
            cohorts.get_course_cohort_names(
                SlashSeparatedCourseKey('course', 'does_not', 'exist')), [])

        CourseUserGroup.objects.create(name="FirstCohort",
                                       course_id=course.id,
                                       group_type=CourseUserGroup.COHORT)

        self.assertItemsEqual(cohorts.get_course_cohort_names(course.id),
                              ["FirstCohort"])

        CourseUserGroup.objects.create(name="SecondCohort",
                                       course_id=course.id,
                                       group_type=CourseUserGroup.COHORT)

        self.assertItemsEqual(cohorts.get_course_cohort_names(course.id),
                              ["FirstCohort", "SecondCohort"])
Пример #2
0
    def test_get_course_cohort_names(self):
        """
        Make sure cohorts.get_course_cohort_names() properly returns a list of cohort
        names for a given course.
        """
        course = modulestore().get_course(self.toy_course_key)

        self.assertItemsEqual(
            cohorts.get_course_cohort_names(course.id),
            []
        )
        self.assertItemsEqual(
            cohorts.get_course_cohort_names(SlashSeparatedCourseKey('course', 'does_not', 'exist')),
            []
        )

        CourseUserGroup.objects.create(
            name="FirstCohort",
            course_id=course.id,
            group_type=CourseUserGroup.COHORT
        )

        self.assertItemsEqual(
            cohorts.get_course_cohort_names(course.id),
            ["FirstCohort"]
        )

        CourseUserGroup.objects.create(
            name="SecondCohort",
            course_id=course.id,
            group_type=CourseUserGroup.COHORT
        )

        self.assertItemsEqual(
            cohorts.get_course_cohort_names(course.id),
            ["FirstCohort", "SecondCohort"]
        )
Пример #3
0
    def test_workgroups_users_post_with_cohort_backfill(self):
        """
        This test asserts a case where a workgroup was created before the existence of a cohorted discussion
        """
        data = {
            'name': self.test_workgroup_name,
            'project': self.test_project.id
        }
        response = self.do_post(self.test_workgroups_uri, data)
        self.assertEqual(response.status_code, 201)
        test_uri = '{}{}/'.format(self.test_workgroups_uri, str(response.data['id']))
        users_uri = '{}users/'.format(test_uri)
        data = {"id": self.test_user.id}
        response = self.do_post(users_uri, data)
        self.assertEqual(response.status_code, 201)
        response = self.do_get(test_uri)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['users'][0]['id'], self.test_user.id)

        cohort_name = Workgroup.cohort_name_for_workgroup(
            self.test_project.id,
            response.data['id'],
            self.test_workgroup_name
        )

        # now let's remove existing cohort users
        cohort = get_cohort_by_name(self.test_course.id, cohort_name, CourseUserGroup.WORKGROUP)
        self.assertTrue(is_user_in_cohort(cohort, self.test_user.id, CourseUserGroup.WORKGROUP))

        remove_user_from_cohort(cohort, self.test_user.username, CourseUserGroup.WORKGROUP)
        self.assertFalse(is_user_in_cohort(cohort, self.test_user.id, CourseUserGroup.WORKGROUP))

        # delete cohort
        delete_empty_cohort(self.test_course.id, cohort_name, CourseUserGroup.WORKGROUP)
        self.assertEqual(0, len(get_course_cohort_names(self.test_course.id, CourseUserGroup.WORKGROUP)))

        # add a 2nd user and make sure a discussion cohort was created and users were backfilled
        test_uri = '{}{}/'.format(self.test_workgroups_uri, str(response.data['id']))
        users_uri = '{}users/'.format(test_uri)
        data = {"id": self.test_user2.id}
        response = self.do_post(users_uri, data)
        self.assertEqual(response.status_code, 201)

        # now inspect cohort and assert that things are as we anticipate (i.e. both users are in there)
        cohort = get_cohort_by_name(self.test_course.id, cohort_name, CourseUserGroup.WORKGROUP)
        self.assertIsNotNone(cohort)
        self.assertTrue(is_user_in_cohort(cohort, self.test_user.id, CourseUserGroup.WORKGROUP))
        self.assertTrue(is_user_in_cohort(cohort, self.test_user2.id, CourseUserGroup.WORKGROUP))