Deprecate WaffleFlag.override method

This allows us to get rid of waffle_utils' custom WaffleFlag method.
This commit is contained in:
Régis Behmo
2020-10-23 11:39:21 +02:00
parent 16ce16e85e
commit 2307dff4c9
43 changed files with 105 additions and 121 deletions

View File

@@ -14,7 +14,6 @@ from django.test.client import Client, RequestFactory
from django.test.utils import override_settings
from django.urls import reverse
from mock import patch
from urllib.parse import urlencode
from course_modes.models import CourseMode
from lms.djangoapps.badges.events.course_complete import get_completion_badge

View File

@@ -12,7 +12,6 @@ from mock import patch
from openedx.core.djangoapps.content.block_structure.api import clear_course_from_cache
from openedx.core.djangoapps.content.block_structure.config import STORAGE_BACKING_FOR_CACHE, waffle
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.tests.factories import UserFactory
from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase

View File

@@ -8,6 +8,7 @@ import ddt
from django.urls import reverse
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.course_home_api.tests.utils import BaseCourseHomeTests
from lms.djangoapps.course_home_api.toggles import COURSE_HOME_MICROFRONTEND, COURSE_HOME_MICROFRONTEND_DATES_TAB
from lms.djangoapps.experiments.testutils import override_experiment_waffle_flag
@@ -26,7 +27,7 @@ class DatesTabTestViews(BaseCourseHomeTests):
ContentTypeGatingConfig.objects.create(enabled=True, enabled_as_of=datetime(2017, 1, 1))
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True)
@ddt.data(CourseMode.AUDIT, CourseMode.VERIFIED)
def test_get_authenticated_enrolled_user(self, enrollment_mode):
CourseEnrollment.enroll(self.user, self.course.id, enrollment_mode)
@@ -39,28 +40,28 @@ class DatesTabTestViews(BaseCourseHomeTests):
self.assertTrue(all(block.get('learner_has_access') for block in date_blocks))
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True)
def test_get_authenticated_user_not_enrolled(self):
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
self.assertFalse(response.data.get('learner_is_full_access'))
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True)
def test_get_unauthenticated_user(self):
self.client.logout()
response = self.client.get(self.url)
self.assertEqual(response.status_code, 401)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True)
def test_get_unknown_course(self):
url = reverse('course-home-dates-tab', args=['course-v1:unknown+course+2T2020'])
response = self.client.get(url)
self.assertEqual(response.status_code, 404)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True)
def test_banner_data_is_returned(self):
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
@@ -70,7 +71,7 @@ class DatesTabTestViews(BaseCourseHomeTests):
self.assertContains(response, 'verified_upgrade_link')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True)
def test_masquerade(self):
self.switch_to_staff()
CourseEnrollment.enroll(self.user, self.course.id, 'audit')

View File

@@ -11,6 +11,7 @@ from django.urls import reverse
from mock import Mock, patch
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.course_home_api.tests.utils import BaseCourseHomeTests
from lms.djangoapps.course_home_api.toggles import COURSE_HOME_MICROFRONTEND, COURSE_HOME_MICROFRONTEND_OUTLINE_TAB
from lms.djangoapps.experiments.testutils import override_experiment_waffle_flag
@@ -33,9 +34,9 @@ class OutlineTabTestViews(BaseCourseHomeTests):
super().setUp()
self.url = reverse('course-home-outline-tab', args=[self.course.id])
@ENABLE_COURSE_GOALS.override(active=True)
@override_waffle_flag(ENABLE_COURSE_GOALS, active=True)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@ddt.data(CourseMode.AUDIT, CourseMode.VERIFIED)
def test_get_authenticated_enrolled_user(self, enrollment_mode):
CourseEnrollment.enroll(self.user, self.course.id, enrollment_mode)
@@ -68,7 +69,7 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertIn('http://', resume_course_url)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
def test_get_authenticated_user_not_enrolled(self):
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
@@ -86,14 +87,14 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertTrue(all(block.get('date') for block in date_blocks))
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
def test_get_unauthenticated_user(self):
self.client.logout()
response = self.client.get(self.url)
self.assertEqual(response.status_code, 403)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
def test_masquerade(self):
user = UserFactory()
set_user_preference(user, 'time_zone', 'Asia/Tokyo')
@@ -109,22 +110,22 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertEqual(self.client.get(self.url).data['dates_widget']['user_timezone'], 'Asia/Tokyo')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@COURSE_ENABLE_UNENROLLED_ACCESS_FLAG.override()
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@override_waffle_flag(COURSE_ENABLE_UNENROLLED_ACCESS_FLAG, active=True)
def test_handouts(self):
CourseEnrollment.enroll(self.user, self.course.id)
self.store.create_item(self.user.id, self.course.id, 'course_info', 'handouts', fields={'data': '<p>Hi</p>'})
self.assertEqual(self.client.get(self.url).data['handouts_html'], '<p>Hi</p>')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
def test_get_unknown_course(self):
url = reverse('course-home-outline-tab', args=['course-v1:unknown+course+2T2020'])
response = self.client.get(url)
self.assertEqual(response.status_code, 404)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=False)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=False)
@ddt.data(CourseMode.AUDIT, CourseMode.VERIFIED)
def test_waffle_flag_disabled(self, enrollment_mode):
CourseEnrollment.enroll(self.user, self.course.id, enrollment_mode)
@@ -132,7 +133,7 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertEqual(response.status_code, 404)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@ddt.data(True, False)
def test_welcome_message(self, welcome_message_is_dismissed):
CourseEnrollment.enroll(self.user, self.course.id)
@@ -159,22 +160,22 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertEqual(welcome_message_html, None if welcome_message_is_dismissed else '<p>Welcome</p>')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_offer_html', new=Mock(return_value='<p>Offer</p>'))
def test_offer_html(self):
CourseEnrollment.enroll(self.user, self.course.id)
self.assertEqual(self.client.get(self.url).data['offer_html'], '<p>Offer</p>')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_course_expired_message', new=Mock(return_value='<p>Expired</p>'))
def test_course_expired_html(self):
CourseEnrollment.enroll(self.user, self.course.id)
self.assertEqual(self.client.get(self.url).data['course_expired_html'], '<p>Expired</p>')
@ENABLE_COURSE_GOALS.override(active=True)
@override_waffle_flag(ENABLE_COURSE_GOALS, active=True)
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
def test_post_course_goal(self):
CourseEnrollment.enroll(self.user, self.course.id, CourseMode.AUDIT)
@@ -194,7 +195,7 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertEqual(selected_goal['key'], 'certify')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@patch.dict('django.conf.settings.FEATURES', {'ENABLE_SPECIAL_EXAMS': True})
@patch('lms.djangoapps.course_api.blocks.transformers.milestones.get_attempt_status_summary')
def test_proctored_exam(self, mock_summary):
@@ -238,7 +239,7 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertEqual(exam_data['icon'], 'fa-foo-bar')
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override(active=True)
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
def test_assignment(self):
course = CourseFactory.create()
with self.store.bulk_operations(course.id):
@@ -269,8 +270,8 @@ class OutlineTabTestViews(BaseCourseHomeTests):
self.assertIsNone(ungraded_data['icon'])
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
@COURSE_HOME_MICROFRONTEND_OUTLINE_TAB.override()
@COURSE_ENABLE_UNENROLLED_ACCESS_FLAG.override()
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
@override_waffle_flag(COURSE_ENABLE_UNENROLLED_ACCESS_FLAG, active=True)
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_offer_html', new=Mock(return_value='<p>Offer</p>'))
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_course_expired_message', new=Mock(return_value='<p>Expired</p>'))
@ddt.data(*itertools.product([True, False], [True, False],

View File

@@ -3,15 +3,14 @@ Tests for Progress Tab API in the Course Home API
"""
import ddt
from django.urls import reverse
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.course_home_api.tests.utils import BaseCourseHomeTests
from lms.djangoapps.course_home_api.toggles import COURSE_HOME_MICROFRONTEND
from lms.djangoapps.verify_student.models import ManualVerification
from openedx.core.djangoapps.user_api.preferences.api import set_user_preference
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.models import CourseEnrollment
from student.tests.factories import UserFactory

View File

@@ -19,8 +19,8 @@ from six import text_type
from waffle.testutils import override_switch
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.ccx.tests.factories import CcxFactory
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.features.course_experience import COURSE_ENABLE_UNENROLLED_ACCESS_FLAG
from openedx.features.course_experience.waffle import ENABLE_COURSE_ABOUT_SIDEBAR_HTML
from openedx.features.course_experience.waffle import WAFFLE_NAMESPACE as COURSE_EXPERIENCE_WAFFLE_NAMESPACE

View File

@@ -12,13 +12,12 @@ from mock import patch
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from lms.djangoapps.courseware.course_tools import FinancialAssistanceTool
from lms.djangoapps.courseware.course_tools import VerifiedUpgradeTool
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.courseware.course_tools import FinancialAssistanceTool, VerifiedUpgradeTool
from lms.djangoapps.courseware.models import DynamicUpgradeDeadlineConfiguration
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from openedx.core.djangoapps.schedules.config import CREATE_SCHEDULE_WAFFLE_FLAG
from openedx.core.djangoapps.site_configuration.tests.factories import SiteFactory
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory

View File

@@ -10,6 +10,7 @@ import waffle
from django.contrib.messages.middleware import MessageMiddleware
from django.test import RequestFactory
from django.urls import reverse
from edx_toggles.toggles.testutils import override_waffle_flag
from mock import patch
from pytz import utc
@@ -42,7 +43,6 @@ from openedx.core.djangoapps.schedules.signals import CREATE_SCHEDULE_WAFFLE_FLA
from openedx.core.djangoapps.self_paced.models import SelfPacedConfiguration
from openedx.core.djangoapps.site_configuration.tests.factories import SiteFactory
from openedx.core.djangoapps.user_api.preferences.api import set_user_preference
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.features.course_duration_limits.models import CourseDurationLimitConfig
from openedx.features.course_experience import (
DISABLE_UNIFIED_COURSE_TAB_FLAG,
@@ -756,7 +756,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
self.client.login(username=user.username, password=TEST_PASSWORD)
if mfe_active:
with override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True), \
COURSE_HOME_MICROFRONTEND_DATES_TAB.override(active=True):
override_waffle_flag(COURSE_HOME_MICROFRONTEND_DATES_TAB, active=True):
response = self.client.get(url, follow=True)
else:
response = self.client.get(url, follow=True)

View File

@@ -10,6 +10,7 @@ from milestones.tests.utils import MilestonesTestCaseMixin
from mock import Mock, patch
from capa.tests.response_xml_factory import MultipleChoiceResponseXMLFactory
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.courseware.entrance_exams import (
course_has_entrance_exam,
get_entrance_exam_content,
@@ -20,7 +21,6 @@ from lms.djangoapps.courseware.model_data import FieldDataCache
from lms.djangoapps.courseware.module_render import get_module, handle_xblock_callback, toc_for_course
from lms.djangoapps.courseware.tests.factories import InstructorFactory, RequestFactoryNoCsrf, StaffFactory, UserFactory
from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.core.djangolib.testing.utils import get_mock_request
from openedx.features.course_experience import DISABLE_COURSE_OUTLINE_PAGE_FLAG, DISABLE_UNIFIED_COURSE_TAB_FLAG
from student.models import CourseEnrollment

View File

@@ -19,7 +19,9 @@ from xblock.runtime import DictKeyValueStore
from capa.tests.response_xml_factory import OptionResponseXMLFactory
from lms.djangoapps.courseware.masquerade import (
CourseMasquerade, MasqueradingKeyValueStore, get_masquerading_user_group,
CourseMasquerade,
MasqueradingKeyValueStore,
get_masquerading_user_group
)
from lms.djangoapps.courseware.tests.factories import StaffFactory
from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase, MasqueradeMixin, masquerade_as_group_member

View File

@@ -12,9 +12,9 @@ from mock import patch
from six import text_type
from six.moves import range
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory
from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.features.course_experience import DISABLE_COURSE_OUTLINE_PAGE_FLAG
from student.tests.factories import UserFactory
from xmodule.modulestore.django import modulestore

View File

@@ -13,6 +13,7 @@ from mock import MagicMock, Mock, patch
from six import text_type
from six.moves import range
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.courseware.courses import get_course_by_id
from lms.djangoapps.courseware.tabs import (
CourseInfoTab,
@@ -26,7 +27,6 @@ from lms.djangoapps.courseware.tabs import (
from lms.djangoapps.courseware.tests.factories import InstructorFactory, StaffFactory
from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase
from lms.djangoapps.courseware.views.views import StaticCourseTabView, get_static_tab_fragment
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.core.djangolib.testing.utils import get_mock_request
from openedx.features.course_experience import DISABLE_UNIFIED_COURSE_TAB_FLAG
from student.models import CourseEnrollment

View File

@@ -74,7 +74,7 @@ from openedx.core.djangoapps.content.course_overviews.models import CourseOvervi
from openedx.core.djangoapps.crawlers.models import CrawlersConfig
from openedx.core.djangoapps.credit.api import set_credit_requirements
from openedx.core.djangoapps.credit.models import CreditCourse, CreditProvider
from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES, override_waffle_flag
from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES
from openedx.core.djangolib.testing.utils import get_mock_request
from openedx.core.lib.gating import api as gating_api
from openedx.core.lib.url_utils import quote_slashes
@@ -1446,7 +1446,7 @@ class ProgressPageTests(ProgressPageBaseTests):
def test_progress_queries(self, enable_waffle, initial, subsequent):
ContentTypeGatingConfig.objects.create(enabled=True, enabled_as_of=datetime(2018, 1, 1))
self.setup_course()
with override_waffle_flag(ASSUME_ZERO_GRADE_IF_ABSENT, active=enable_waffle):
with grades_waffle().override(ASSUME_ZERO_GRADE_IF_ABSENT, active=enable_waffle):
with self.assertNumQueries(
initial, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST
), check_mongo_calls(1):

View File

@@ -11,13 +11,13 @@ from edx_django_utils.cache import RequestCache
from mock import patch
from opaque_keys.edx.keys import CourseKey
from edx_toggles.toggles.testutils import override_waffle_flag
from experiments.factories import ExperimentKeyValueFactory
from experiments.flags import ExperimentWaffleFlag
from lms.djangoapps.experiments.testutils import override_experiment_waffle_flag
from openedx.core.djangoapps.site_configuration.tests.factories import SiteFactory
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
from openedx.core.djangoapps.waffle_utils.models import WaffleFlagCourseOverrideModel
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
@@ -105,7 +105,7 @@ class ExperimentWaffleFlagTests(SharedModuleStoreTestCase):
@ddt.unpack
def test_forcing_bucket(self, active, expected_bucket):
bucket_flag = CourseWaffleFlag('experiments', 'test.0', __name__)
with bucket_flag.override(active=active):
with override_waffle_flag(bucket_flag, active=active):
self.assertEqual(self.get_bucket(), expected_bucket)
def test_tracking(self):

View File

@@ -5,21 +5,19 @@ Tests for experimentation views
from datetime import timedelta
from uuid import uuid4
import six
import six
from django.urls import reverse
from django.utils.timezone import now
from rest_framework.test import APITestCase
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.course_blocks.transformers.tests.helpers import ModuleStoreTestCase
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from xmodule.modulestore.tests.factories import CourseFactory
from lms.djangoapps.experiments.views_custom import MOBILE_UPSELL_FLAG
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.factories import CourseFactory
CROSS_DOMAIN_REFERER = 'https://ecommerce.edx.org'

View File

@@ -84,6 +84,9 @@ def waffle():
def waffle_flags():
"""
Returns the namespaced, cached, audited Waffle flags dictionary for Grades.
WARNING: do not replicate this pattern. Instead of declaring waffle flag names as strings, you should create
WaffleFlag and CourseWaffleFlag objects as top-level constants.
"""
namespace = WaffleFlagNamespace(name=WAFFLE_NAMESPACE, log_prefix=u'Grades: ')
return {

View File

@@ -18,6 +18,7 @@ from rest_framework.test import APITestCase
from six import text_type
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.certificates.models import CertificateStatuses, GeneratedCertificate
from lms.djangoapps.courseware.tests.factories import InstructorFactory, StaffFactory
from lms.djangoapps.grades.config.waffle import WRITABLE_GRADEBOOK, waffle_flags
@@ -36,7 +37,6 @@ from lms.djangoapps.grades.rest_api.v1.views import CourseEnrollmentPagination
from lms.djangoapps.grades.subsection_grade import ReadSubsectionGrade
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import TEST_DATA_SPLIT_MODULESTORE, SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory

View File

@@ -17,6 +17,7 @@ from django.utils import timezone
from mock import MagicMock, patch
from six.moves import range
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.grades import tasks
from lms.djangoapps.grades.config.models import PersistentGradesEnabledFlag
from lms.djangoapps.grades.config.waffle import ENFORCE_FREEZE_GRADE_AFTER_COURSE_END, waffle_flags
@@ -33,7 +34,6 @@ from lms.djangoapps.grades.tasks import (
recalculate_subsection_grade_v3
)
from openedx.core.djangoapps.content.block_structure.exceptions import BlockStructureNotFound
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.models import CourseEnrollment, anonymous_id_for_user
from student.tests.factories import UserFactory
from track.event_transaction_utils import create_new_event_transaction_id, get_event_transaction_id

View File

@@ -36,6 +36,7 @@ from testfixtures import LogCapture
from bulk_email.models import BulkEmailFlag, CourseEmail, CourseEmailTemplate
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.certificates.api import generate_user_certificates
from lms.djangoapps.certificates.models import CertificateStatuses
from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFactory
@@ -68,7 +69,6 @@ from openedx.core.djangoapps.django_comment_common.utils import seed_permissions
from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.core.lib.teams_config import TeamsConfig
from openedx.core.lib.xblock_utils import grade_histogram
from openedx.features.course_experience import RELATIVE_DATES_FLAG

View File

@@ -20,15 +20,15 @@ from six.moves import range
from common.test.utils import XssTestMixin
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from edxmako.shortcuts import render_to_response
from lms.djangoapps.courseware.tabs import get_course_tab_list
from lms.djangoapps.courseware.tests.factories import StaffFactory, StudentModuleFactory, UserFactory
from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase
from lms.djangoapps.grades.config.waffle import WRITABLE_GRADEBOOK, waffle_flags
from lms.djangoapps.instructor.views.gradebook_api import calculate_page_info
from lms.djangoapps.instructor.toggles import DATA_DOWNLOAD_V2
from lms.djangoapps.instructor.views.gradebook_api import calculate_page_info
from openedx.core.djangoapps.site_configuration.models import SiteConfiguration
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag
from student.models import CourseEnrollment
from student.roles import CourseFinanceAdminRole
from student.tests.factories import AdminFactory, CourseAccessRoleFactory, CourseEnrollmentFactory