Add feature flag to disable honor mode certificates.
Added a feature flag to disable honor mode certificates for edx.org, by default set to false to allow honor mode certificates for open community. PROD-269
This commit is contained in:
@@ -759,7 +759,12 @@ class CourseMode(models.Model):
|
||||
GeneratedCertificate records with mode='audit' which are
|
||||
eligible.
|
||||
"""
|
||||
return mode_slug != cls.AUDIT
|
||||
ineligible_modes = [cls.AUDIT]
|
||||
|
||||
if settings.FEATURES['DISABLE_HONOR_CERTIFICATES']:
|
||||
ineligible_modes.append(cls.HONOR)
|
||||
|
||||
return mode_slug not in ineligible_modes
|
||||
|
||||
def to_tuple(self):
|
||||
"""
|
||||
|
||||
@@ -456,17 +456,24 @@ class CourseModeModelTest(TestCase):
|
||||
self.assertIsNone(verified_mode.expiration_datetime)
|
||||
|
||||
@ddt.data(
|
||||
(CourseMode.AUDIT, False),
|
||||
(CourseMode.HONOR, True),
|
||||
(CourseMode.VERIFIED, True),
|
||||
(CourseMode.CREDIT_MODE, True),
|
||||
(CourseMode.PROFESSIONAL, True),
|
||||
(CourseMode.NO_ID_PROFESSIONAL_MODE, True),
|
||||
(False, CourseMode.AUDIT, False),
|
||||
(False, CourseMode.HONOR, True),
|
||||
(False, CourseMode.VERIFIED, True),
|
||||
(False, CourseMode.CREDIT_MODE, True),
|
||||
(False, CourseMode.PROFESSIONAL, True),
|
||||
(False, CourseMode.NO_ID_PROFESSIONAL_MODE, True),
|
||||
(True, CourseMode.AUDIT, False),
|
||||
(True, CourseMode.HONOR, False),
|
||||
(True, CourseMode.VERIFIED, True),
|
||||
(True, CourseMode.CREDIT_MODE, True),
|
||||
(True, CourseMode.PROFESSIONAL, True),
|
||||
(True, CourseMode.NO_ID_PROFESSIONAL_MODE, True),
|
||||
)
|
||||
@ddt.unpack
|
||||
def test_eligible_for_cert(self, mode_slug, expected_eligibility):
|
||||
def test_eligible_for_cert(self, disable_honor_cert, mode_slug, expected_eligibility):
|
||||
"""Verify that non-audit modes are eligible for a cert."""
|
||||
self.assertEqual(CourseMode.is_eligible_for_certificate(mode_slug), expected_eligibility)
|
||||
with override_settings(FEATURES={'DISABLE_HONOR_CERTIFICATES': disable_honor_cert}):
|
||||
self.assertEqual(CourseMode.is_eligible_for_certificate(mode_slug), expected_eligibility)
|
||||
|
||||
@ddt.data(
|
||||
(CourseMode.AUDIT, False),
|
||||
|
||||
Reference in New Issue
Block a user