def test_enable_disable_course_flag(self): """ Ensures that the flag, once enabled for a course, can also be disabled. """ with lti_consumer_fields_editing_flag(course_id=self.course_id, enabled_for_course=True): self.assertTrue( CourseEditLTIFieldsEnabledFlag.lti_access_to_learners_editable( self.course_id, False)) with lti_consumer_fields_editing_flag(course_id=self.course_id, enabled_for_course=False): self.assertFalse( CourseEditLTIFieldsEnabledFlag. lti_access_to_learners_editable(self.course_id, False))
def test_lti_fields_editing_feature_flags(self, enabled_for_course, is_already_sharing_learner_info): """ Test that feature flag works correctly with course-specific configuration in combination with a boolean which indicates whether a course-run already sharing learner username/email - given the course-specific configuration record is present. """ with lti_consumer_fields_editing_flag( course_id=self.course_id, enabled_for_course=enabled_for_course): feature_enabled = CourseEditLTIFieldsEnabledFlag.lti_access_to_learners_editable( self.course_id, is_already_sharing_learner_info, ) self.assertEqual(feature_enabled, enabled_for_course)
def test_lti_fields_editing_is_backwards_compatible( self, is_already_sharing_learner_info): """ Test that feature flag works correctly with a boolean which indicates whether a course-run already sharing learner username/email - given the course-specific configuration record is not set previously. This tests the backward compatibility which currently is: if an existing course run is already sharing learner information then this feature should be enabled for that course run by default. """ feature_enabled = CourseEditLTIFieldsEnabledFlag.lti_access_to_learners_editable( self.course_id, is_already_sharing_learner_info, ) feature_flag_created = CourseEditLTIFieldsEnabledFlag.objects.filter( course_id=self.course_id).exists() self.assertEqual(feature_flag_created, is_already_sharing_learner_info) self.assertEqual(feature_enabled, is_already_sharing_learner_info)