def test_without_request_and_undefined_waffle(self): """ Test the flag behavior when outside a request context and waffle data undefined. """ crum.set_current_request(None) test_course_flag = CourseWaffleFlag(self.NAMESPACED_FLAG_NAME, __name__) assert test_course_flag.is_enabled(self.TEST_COURSE_KEY) is False
def _is_staff_grader_enabled(self, course_key): """ Helper to evaluate if the staff grader flag / overrides are enabled """ # This toggle is documented on the edx-ora2 repo in openassessment/xblock/config_mixin.py # pylint: disable=toggle-missing-annotation enhanced_staff_grader_flag = CourseWaffleFlag( WAFFLE_NAMESPACE, ENHANCED_STAFF_GRADER, module_name='openassessment.xblock.config_mixin' ) return enhanced_staff_grader_flag.is_enabled(course_key)
def test_without_request_and_everyone_active_waffle(self): """ Test the flag behavior when outside a request context and waffle active for everyone. """ crum.set_current_request(None) test_course_flag = CourseWaffleFlag(self.NAMESPACED_FLAG_NAME, __name__) with override_waffle_flag(self.TEST_COURSE_FLAG, active=True): assert test_course_flag.is_enabled(self.TEST_COURSE_KEY) is True
def _is_staff_grader_enabled(self, course_key): """ Helper to evaluate if the staff grader flag / overrides are enabled """ # This toggle is documented on the edx-ora2 repo in openassessment/xblock/config_mixin.py # Note: Do not copy this practice of directly using a toggle from a library. # Instead, see docs for exposing a wrapper api: # https://edx.readthedocs.io/projects/edx-toggles/en/latest/how_to/implement_the_right_toggle_type.html#using-other-toggles pylint: disable=line-too-long # pylint: disable=toggle-missing-annotation enhanced_staff_grader_flag = CourseWaffleFlag( f"{WAFFLE_NAMESPACE}.{ENHANCED_STAFF_GRADER}", module_name='openassessment.xblock.config_mixin') return enhanced_staff_grader_flag.is_enabled(course_key)
def test_undefined_waffle_flag(self): """ Test flag with undefined waffle flag. """ test_course_flag = CourseWaffleFlag(self.NAMESPACED_FLAG_NAME, __name__) with patch.object( WaffleFlagCourseOverrideModel, 'override_value', return_value=WaffleFlagCourseOverrideModel.ALL_CHOICES.unset): # check twice to test that the result is properly cached assert test_course_flag.is_enabled(self.TEST_COURSE_KEY) is False assert test_course_flag.is_enabled(self.TEST_COURSE_KEY) is False # result is cached, so override check should happen once # pylint: disable=no-member WaffleFlagCourseOverrideModel.override_value.assert_called_once_with( self.NAMESPACED_FLAG_NAME, self.TEST_COURSE_KEY)
def enable_anonymous_courseware_access(self): waffle_flag = CourseWaffleFlag(WaffleFlagNamespace(name='seo'), 'enable_anonymous_courseware_access') return waffle_flag.is_enabled(self.course_key)
def enable_anonymous_courseware_access(self): waffle_flag = CourseWaffleFlag(WaffleFlagNamespace(name='seo'), 'enable_anonymous_courseware_access') return waffle_flag.is_enabled(self.course_key)