Exemple #1
0
    def test_list_program_uuid_filtering(self):
        """ Verify the endpoint returns data for all UserCredentials in the given program. """

        # Course run 1 is in a program, course run 2 is not
        course1_run = CourseRunFactory()
        course2_run = CourseRunFactory()
        program = ProgramFactory(course_runs=[course1_run])

        program_certificate = ProgramCertificateFactory(
            site=self.site, program_uuid=program.uuid)
        course1_certificate = CourseCertificateFactory(
            site=self.site, course_id=course1_run.key)
        course2_certificate = CourseCertificateFactory(
            site=self.site, course_id=course2_run.key)

        # Create some credentials related to the program
        course1_cred = UserCredentialFactory(credential=course1_certificate)
        program_creds = UserCredentialFactory.create_batch(
            3, credential=program_certificate)
        expected = [course1_cred] + program_creds

        # Create some more credentials that we don't expect to see returned
        UserCredentialFactory.create_batch(3)
        UserCredentialFactory(credential=course2_certificate)

        self.authenticate_user(self.user)
        self.add_user_permission(self.user, 'view_usercredential')

        response = self.client.get(self.list_path +
                                   '?program_uuid={}'.format(program.uuid))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['results'],
                         self.serialize_user_credential(expected, many=True))
Exemple #2
0
    def test_list_status_filtering(self):
        """ Verify the endpoint returns data for all UserCredentials that match the specified status. """
        awarded = UserCredentialFactory.create_batch(3, credential__site=self.site, status=UserCredential.AWARDED)
        revoked = UserCredentialFactory.create_batch(3, credential__site=self.site, status=UserCredential.REVOKED)

        self.authenticate_user(self.user)
        self.add_user_permission(self.user, 'view_usercredential')

        for status, expected in (('awarded', awarded), ('revoked', revoked)):
            response = self.client.get(self.list_path + '?status={}'.format(status))
            self.assertEqual(response.status_code, 200)
            self.assertEqual(response.data['results'], self.serialize_user_credential(expected, many=True))
Exemple #3
0
    def test_list_program_uuid_filtering(self):
        """ Verify the endpoint returns data for all UserCredentials awarded for the given program. """
        UserCredentialFactory.create_batch(3)
        program_certificate = ProgramCertificateFactory(site=self.site)
        expected = UserCredentialFactory.create_batch(3, credential=program_certificate)

        self.authenticate_user(self.user)
        self.add_user_permission(self.user, 'view_usercredential')

        response = self.client.get(self.list_path + '?program_uuid={}'.format(program_certificate.program_uuid))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data['results'], self.serialize_user_credential(expected, many=True))
Exemple #4
0
    def test_list_username_filtering(self):
        """ Verify the endpoint returns data for all UserCredentials awarded to the user matching the username. """
        UserCredentialFactory.create_batch(3, credential__site=self.site)

        self.authenticate_user(self.user)

        # Users should be able to view their own credentials without additional permissions
        username = self.user.username
        expected = UserCredentialFactory.create_batch(3, credential__site=self.site, username=username)
        self.assert_list_username_filter_request_succeeds(username, expected)

        # Privileged users should be able to view all credentials
        username = '******'
        expected = UserCredentialFactory.create_batch(3, credential__site=self.site, username=username)
        self.add_user_permission(self.user, 'view_usercredential')

        self.assert_list_username_filter_request_succeeds(username, expected)