def test_can_generate_invalidated(self):
        """
        Test handling when user is on the invalidate list
        """
        u = UserFactory()
        cr = CourseFactory()
        key = cr.id  # pylint: disable=no-member
        CourseEnrollmentFactory(
            user=u,
            course_id=key,
            is_active=True,
            mode="verified",
        )
        cert = GeneratedCertificateFactory(
            user=u,
            course_id=key,
            mode=GeneratedCertificate.MODES.verified,
            status=CertificateStatuses.downloadable
        )
        CertificateAllowlistFactory.create(course_id=key, user=u)
        CertificateInvalidationFactory.create(
            generated_certificate=cert,
            invalidated_by=self.user,
            active=True
        )

        assert not _can_generate_allowlist_certificate(u, key)
        assert _set_allowlist_cert_status(u, key) == CertificateStatuses.unavailable
 def test_can_generate_web_cert_disabled(self):
     """
     Test handling when web certs are not enabled
     """
     with mock.patch(WEB_CERTS_METHOD, return_value=False):
         assert not _can_generate_allowlist_certificate(self.user, self.course_run_key)
         assert _set_allowlist_cert_status(self.user, self.course_run_key) is None
 def test_can_generate_not_verified(self):
     """
     Test handling when the user's id is not verified
     """
     with mock.patch(ID_VERIFIED_METHOD, return_value=False):
         assert not _can_generate_allowlist_certificate(self.user, self.course_run_key)
         assert _set_allowlist_cert_status(self.user, self.course_run_key) == CertificateStatuses.unverified
Exemple #4
0
 def test_can_generate_no_overview(self):
     """
     Test handling when the course overview is missing
     """
     with mock.patch(COURSE_OVERVIEW_METHOD, return_value=None):
         assert not _can_generate_allowlist_certificate(self.user, self.course_run_key, self.enrollment_mode)
         assert _set_allowlist_cert_status(self.user, self.course_run_key, self.enrollment_mode, self.grade) is None
 def test_can_generate_not_enrolled(self):
     """
     Test handling when user is not enrolled
     """
     u = UserFactory()
     cr = CourseFactory()
     key = cr.id  # pylint: disable=no-member
     CertificateAllowlistFactory.create(course_id=key, user=u)
     assert not _can_generate_allowlist_certificate(u, key)
     assert _set_allowlist_cert_status(u, key) is None
    def test_handle_invalid(self):
        """
        Test handling of an invalid user/course run combo
        """
        u = UserFactory()

        assert not _can_generate_allowlist_certificate(u, self.course_run_key)
        assert not generate_allowlist_certificate_task(u, self.course_run_key)
        assert not generate_certificate_task(u, self.course_run_key)
        assert _set_allowlist_cert_status(u, self.course_run_key) is None
Exemple #7
0
 def test_can_generate_not_verified(self, idv_retired):
     """
     Test handling when the user's id is not verified
     """
     with mock.patch(ID_VERIFIED_METHOD, return_value=False), \
             mock.patch(INTEGRITY_ENABLED_METHOD, return_value=idv_retired):
         self.assertEqual(idv_retired,
                          _can_generate_allowlist_certificate(self.user, self.course_run_key, self.enrollment_mode))
         self.assertIsNot(idv_retired,
                          _set_allowlist_cert_status(
                              self.user, self.course_run_key,
                              self.enrollment_mode, self.grade) == CertificateStatuses.unverified)
 def test_can_generate_not_verified(self, enable_integrity_signature):
     """
     Test handling when the user's id is not verified
     """
     with mock.patch(ID_VERIFIED_METHOD, return_value=False), \
             mock.patch.dict(settings.FEATURES, ENABLE_INTEGRITY_SIGNATURE=enable_integrity_signature):
         self.assertEqual(enable_integrity_signature,
                          _can_generate_allowlist_certificate(self.user, self.course_run_key, self.enrollment_mode))
         self.assertIsNot(enable_integrity_signature,
                          _set_allowlist_cert_status(
                              self.user, self.course_run_key,
                              self.enrollment_mode, self.grade) == CertificateStatuses.unverified)
 def test_can_generate_not_whitelisted(self):
     """
     Test handling when user is not whitelisted
     """
     u = UserFactory()
     cr = CourseFactory()
     key = cr.id  # pylint: disable=no-member
     CourseEnrollmentFactory(
         user=u,
         course_id=key,
         is_active=True,
         mode="verified",
     )
     assert not _can_generate_allowlist_certificate(u, key)
     assert _set_allowlist_cert_status(u, key) is None
Exemple #10
0
 def test_can_generate_not_allowlisted(self):
     """
     Test handling when user is not on the certificate allowlist.
     """
     u = UserFactory()
     cr = CourseFactory()
     key = cr.id  # pylint: disable=no-member
     CourseEnrollmentFactory(
         user=u,
         course_id=key,
         is_active=True,
         mode=CourseMode.VERIFIED,
     )
     assert not _can_generate_allowlist_certificate(u, key, self.enrollment_mode)
     assert _set_allowlist_cert_status(u, key, self.enrollment_mode, self.grade) is None
Exemple #11
0
 def test_can_generate_not_verified(self, enable_idv_requirement):
     """
     Test handling when the user's id is not verified
     """
     with mock.patch(ID_VERIFIED_METHOD, return_value=False), \
             mock.patch.dict(settings.FEATURES, ENABLE_CERTIFICATES_IDV_REQUIREMENT=enable_idv_requirement):
         self.assertNotEqual(
             enable_idv_requirement,
             _can_generate_allowlist_certificate(self.user,
                                                 self.course_run_key,
                                                 self.enrollment_mode))
         self.assertIs(
             enable_idv_requirement,
             _set_allowlist_cert_status(
                 self.user, self.course_run_key, self.enrollment_mode,
                 self.grade) == CertificateStatuses.unverified)
    def test_can_generate_audit(self):
        """
        Test handling when user is enrolled in audit mode
        """
        u = UserFactory()
        cr = CourseFactory()
        key = cr.id  # pylint: disable=no-member
        CourseEnrollmentFactory(
            user=u,
            course_id=key,
            is_active=True,
            mode="audit",
        )
        CertificateAllowlistFactory.create(course_id=key, user=u)

        assert not _can_generate_allowlist_certificate(u, key)
        assert _set_allowlist_cert_status(u, key) is None
    def test_cert_status_downloadable(self):
        """
        Test cert status when status is already downloadable
        """
        u = UserFactory()
        cr = CourseFactory()
        key = cr.id  # pylint: disable=no-member
        CourseEnrollmentFactory(
            user=u,
            course_id=key,
            is_active=True,
            mode=GeneratedCertificate.MODES.verified,
        )
        GeneratedCertificateFactory(user=u,
                                    course_id=key,
                                    mode=GeneratedCertificate.MODES.verified,
                                    status=CertificateStatuses.downloadable)

        assert _set_allowlist_cert_status(u, key) is None