Import waffle classes from edx_toggles instead of waffle_utils

Those classes were ported to edx_toggles. The imports remain in
waffle_utils.__init__ for backward compatibility.
This commit is contained in:
Régis Behmo
2020-10-23 14:51:35 +02:00
parent 3b127f8c92
commit 4586002956
64 changed files with 141 additions and 183 deletions

View File

@@ -4,12 +4,8 @@ waffle switches for the contentstore app.
"""
from openedx.core.djangoapps.waffle_utils import (
CourseWaffleFlag,
WaffleFlag,
WaffleFlagNamespace,
WaffleSwitchNamespace
)
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace, WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
# Namespace
WAFFLE_NAMESPACE = u'studio'

View File

@@ -9,20 +9,16 @@ import os
import shutil
import tarfile
from datetime import datetime
from math import ceil
from tempfile import NamedTemporaryFile, mkdtemp
from ccx_keys.locator import CCXLocator
from celery import group
from celery.task import task
from celery.utils.log import get_task_logger
from celery_utils.persist_on_failure import LoggedPersistOnFailureTask
from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.auth.models import User
from django.core.exceptions import SuspiciousOperation
from django.core.files import File
from django.core.files.base import ContentFile
from django.test import RequestFactory
from django.utils.text import get_valid_filename
from django.utils.translation import ugettext as _
@@ -32,7 +28,6 @@ from organizations.models import OrganizationCourse
from path import Path as path
from pytz import UTC
from six import iteritems, text_type
from six.moves import range
from user_tasks.models import UserTaskArtifact, UserTaskStatus
from user_tasks.tasks import UserTask
@@ -57,12 +52,6 @@ from xmodule.modulestore.django import modulestore
from xmodule.modulestore.exceptions import DuplicateCourseError, ItemNotFoundError
from xmodule.modulestore.xml_exporter import export_course_to_xml, export_library_to_xml
from xmodule.modulestore.xml_importer import import_course_from_xml, import_library_from_xml
from xmodule.video_module.transcripts_utils import (
Transcript,
TranscriptsGenerationException,
clean_video_id,
get_transcript_from_contentstore
)
User = get_user_model()

View File

@@ -15,6 +15,7 @@ from crum import set_current_request
from django.conf import settings
from django.test import RequestFactory
from django.test.utils import override_settings
from edx_toggles.toggles.testutils import override_waffle_flag
from milestones.models import MilestoneRelationshipType
from milestones.tests.utils import MilestonesTestCaseMixin
from mock import Mock, patch
@@ -30,7 +31,6 @@ from cms.djangoapps.models.settings.course_metadata import CourseMetadata
from cms.djangoapps.models.settings.encoder import CourseSettingsEncoder
from cms.djangoapps.models.settings.waffle import MATERIAL_RECOMPUTE_ONLY_FLAG
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from openedx.core.djangoapps.models.course_details import CourseDetails
from student.roles import CourseInstructorRole, CourseStaffRole
from student.tests.factories import UserFactory

View File

@@ -23,6 +23,7 @@ from django.urls import reverse
from django.utils.translation import ugettext as _
from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.decorators.http import require_GET, require_http_methods
from edx_toggles.toggles import WaffleSwitchNamespace
from milestones import api as milestones_api
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
@@ -43,7 +44,6 @@ from openedx.core.djangoapps.credit.api import get_credit_requirements, is_credi
from openedx.core.djangoapps.credit.tasks import update_credit_course_requirements
from openedx.core.djangoapps.models.course_details import CourseDetails
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from openedx.core.djangolib.js_utils import dump_js_escaped_json
from openedx.core.lib.course_tabs import CourseTabPluginManager
from openedx.core.lib.courses import course_image_url

View File

@@ -2,7 +2,6 @@
Helper methods for Studio views.
"""
import hashlib
from uuid import uuid4
import six
@@ -17,7 +16,6 @@ from edxmako.shortcuts import render_to_string
from openedx.core.toggles import ENTRANCE_EXAMS
from xmodule.modulestore.django import modulestore
from xmodule.tabs import StaticTab
from xmodule.x_module import DEPRECATION_VSCOMPAT_EVENT
from ..utils import reverse_course_url, reverse_library_url, reverse_usage_url

View File

@@ -21,6 +21,7 @@ from edx_proctoring.api import (
get_exam_configuration_dashboard_url
)
from edx_proctoring.exceptions import ProctoredExamNotFoundException
from edx_toggles.toggles import WaffleSwitch
from help_tokens.core import HelpUrlExpert
from opaque_keys.edx.keys import CourseKey
from opaque_keys.edx.locator import LibraryUsageLocator
@@ -36,7 +37,6 @@ from cms.djangoapps.xblock_config.models import CourseEditLTIFieldsEnabledFlag
from cms.lib.xblock.authoring_mixin import VISIBILITY_VIEW
from edxmako.shortcuts import render_to_string
from openedx.core.djangoapps.schedules.config import COURSE_UPDATE_WAFFLE_FLAG
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from openedx.core.lib.gating import api as gating_api
from openedx.core.lib.xblock_utils import hash_resource, request_token, wrap_xblock, wrap_xblock_aside
from static_replace import replace_static_urls

View File

@@ -23,7 +23,6 @@ from cms.djangoapps.contentstore.tests.utils import CourseTestCase
from cms.djangoapps.contentstore.utils import add_instructor, reverse_course_url, reverse_usage_url
from course_action_state.managers import CourseRerunUIStateManager
from course_action_state.models import CourseRerunState
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES
from student.auth import has_course_author_access
from student.roles import CourseStaffRole, GlobalStaff, LibraryUserRole

View File

@@ -13,6 +13,7 @@ from django.test import TestCase
from django.test.client import RequestFactory
from django.urls import reverse
from edx_proctoring.exceptions import ProctoredExamNotFoundException
from edx_toggles.toggles.testutils import override_waffle_switch
from mock import Mock, PropertyMock, patch
from opaque_keys import InvalidKeyError
from opaque_keys.edx.asides import AsideUsageKeyV2
@@ -35,7 +36,6 @@ from cms.djangoapps.contentstore.tests.utils import CourseTestCase
from cms.djangoapps.contentstore.utils import reverse_course_url, reverse_usage_url
from cms.djangoapps.contentstore.views import item as item_module
from lms_xblock.mixin import NONSENSICAL_ACCESS_RESTRICTION
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from student.tests.factories import UserFactory
from xblock_django.models import XBlockConfiguration, XBlockStudioConfiguration, XBlockStudioConfigurationFlag
from xblock_django.user_service import DjangoXBlockUserService

View File

@@ -9,7 +9,6 @@ import json
import re
from contextlib import contextmanager
from datetime import datetime
from functools import wraps
import dateutil.parser
import ddt
@@ -17,6 +16,8 @@ import pytz
import six
from django.conf import settings
from django.test.utils import override_settings
from edx_toggles.toggles import WaffleSwitch
from edx_toggles.toggles.testutils import override_waffle_flag, override_waffle_switch
from edxval.api import (
create_or_update_transcript_preferences,
create_or_update_video_transcript,
@@ -33,17 +34,13 @@ from waffle.testutils import override_flag
from cms.djangoapps.contentstore.models import VideoUploadConfig
from cms.djangoapps.contentstore.tests.utils import CourseTestCase
from cms.djangoapps.contentstore.utils import reverse_course_url
from edx_toggles.toggles.testutils import override_waffle_flag
from openedx.core.djangoapps.profile_images.tests.helpers import make_image_file
from openedx.core.djangoapps.video_pipeline.config.waffle import (
DEPRECATE_YOUTUBE,
ENABLE_DEVSTACK_VIDEO_UPLOADS,
waffle_flags
)
from openedx.core.djangoapps.video_pipeline.models import VEMPipelineIntegration
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from openedx.core.djangoapps.waffle_utils.models import WaffleFlagCourseOverrideModel
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from xmodule.modulestore.tests.factories import CourseFactory
from ..videos import (

View File

@@ -41,6 +41,7 @@ from edxval.api import (
from opaque_keys.edx.keys import CourseKey
from pytz import UTC
from edx_toggles.toggles import WaffleFlagNamespace, WaffleSwitchNamespace
from edxmako.shortcuts import render_to_response
from openedx.core.djangoapps.video_config.models import VideoTranscriptEnabledFlag
from openedx.core.djangoapps.video_pipeline.config.waffle import (
@@ -48,7 +49,7 @@ from openedx.core.djangoapps.video_pipeline.config.waffle import (
ENABLE_DEVSTACK_VIDEO_UPLOADS,
waffle_flags
)
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlagNamespace, WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
from util.json_request import JsonResponse, expect_json
from xmodule.video_module.transcripts_utils import Transcript

View File

@@ -3,7 +3,7 @@ Student app helpers and settings
"""
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitchNamespace
# Namespace for student app waffle switches
STUDENT_WAFFLE_NAMESPACE = WaffleSwitchNamespace(name='student')

View File

@@ -22,12 +22,15 @@ from django.utils.translation import ugettext_lazy as _
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from edx_toggles.toggles import WaffleSwitch
from openedx.core.lib.courses import clean_course_id
from student import STUDENT_WAFFLE_NAMESPACE
from student.models import (
AccountRecovery,
AccountRecoveryConfiguration,
AllowedAuthUser,
BulkChangeEnrollmentConfiguration,
BulkUnenrollConfiguration,
CourseAccessRole,
CourseEnrollment,
CourseEnrollmentAllowed,
@@ -40,10 +43,7 @@ from student.models import (
RegistrationCookieConfiguration,
UserAttribute,
UserProfile,
UserTestGroup,
BulkUnenrollConfiguration,
AccountRecoveryConfiguration,
BulkChangeEnrollmentConfiguration
UserTestGroup
)
from student.roles import REGISTERED_ACCESS_ROLES
from xmodule.modulestore.django import modulestore

View File

@@ -15,18 +15,18 @@ from django.forms import ValidationError
from django.test import TestCase, override_settings
from django.urls import reverse
from django.utils.timezone import now
from edx_toggles.toggles.testutils import override_waffle_switch
from mock import Mock
from pytz import UTC
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from student.admin import COURSE_ENROLLMENT_ADMIN_SWITCH, AllowedAuthUserForm, CourseEnrollmentForm, UserAdmin
from student.models import AllowedAuthUser, CourseEnrollment, LoginFailures
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
class AdminCourseRolesPageTest(SharedModuleStoreTestCase):
"""Test the django admin course roles form saving data in db.

View File

@@ -17,6 +17,7 @@ from django.test import TestCase
from django.test.utils import override_settings
from django.urls import reverse
from django.utils.timezone import now
from edx_toggles.toggles.testutils import override_waffle_flag
from milestones.tests.utils import MilestonesTestCaseMixin
from mock import patch
from opaque_keys import InvalidKeyError
@@ -25,7 +26,6 @@ from pyquery import PyQuery as pq
from six.moves import range
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from entitlements.tests.factories import CourseEntitlementFactory
from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFactory
from openedx.core.djangoapps.catalog.tests.factories import ProgramFactory

View File

@@ -16,6 +16,7 @@ from django.utils.translation import ugettext as _
from django.views.decorators.csrf import ensure_csrf_cookie
from edx_django_utils import monitoring as monitoring_utils
from edx_django_utils.plugins import get_plugins_view_context
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from opaque_keys.edx.keys import CourseKey
from pytz import UTC
from six import iteritems, text_type
@@ -42,12 +43,10 @@ from openedx.core.djangoapps.programs.utils import ProgramDataExtender, ProgramP
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.user_api.accounts.utils import is_secondary_email_feature_enabled
from openedx.core.djangoapps.util.maintenance_banner import add_maintenance_banner
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from openedx.core.djangolib.markup import HTML, Text
from openedx.features.enterprise_support.api import get_dashboard_consent_notification
from openedx.features.enterprise_support.api import (
get_dashboard_consent_notification,
get_enterprise_learner_portal_enabled_message,
get_enterprise_learner_portal_enabled_message
)
from student.api import COURSE_DASHBOARD_PLUGIN_VIEW_NAME
from student.helpers import cert_info, check_verify_status_by_course, get_resume_urls_for_enrollments

View File

@@ -19,13 +19,12 @@ from pkg_resources import resource_string
from pytz import UTC
from six import text_type
from web_fragments.fragment import Fragment
from xblock.completable import XBlockCompletionMode
from xblock.core import XBlock
from xblock.exceptions import NoSuchServiceError
from xblock.fields import Boolean, Integer, List, Scope, String
from openedx.core.djangoapps.waffle_utils import WaffleFlag
from edx_toggles.toggles import WaffleFlag
from openedx.core.lib.graph_traversals import traverse_pre_order
from .exceptions import NotFoundError

View File

@@ -7,6 +7,11 @@ and disabling for instructor-paced courses.
import ddt
import mock
import six
from edx_toggles.toggles import WaffleSwitch
from edx_toggles.toggles.testutils import override_waffle_switch
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory
from lms.djangoapps.certificates import api as certs_api
from lms.djangoapps.certificates.models import (
@@ -20,11 +25,6 @@ from lms.djangoapps.grades.course_grade_factory import CourseGradeFactory
from lms.djangoapps.grades.tests.utils import mock_passing_grade
from lms.djangoapps.verify_student.models import IDVerificationAttempt, SoftwareSecurePhotoVerification
from openedx.core.djangoapps.certificates.config import waffle
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory
AUTO_CERTIFICATE_GENERATION_SWITCH = WaffleSwitch(waffle.waffle(), waffle.AUTO_CERTIFICATE_GENERATION)

View File

@@ -17,6 +17,7 @@ from mock import patch
from urllib.parse import urlencode
from course_modes.models import CourseMode
from edx_toggles.toggles import WaffleSwitch
from edx_toggles.toggles.testutils import override_waffle_switch
from lms.djangoapps.badges.events.course_complete import get_completion_badge
from lms.djangoapps.badges.tests.factories import (
@@ -46,7 +47,6 @@ from openedx.core.djangoapps.site_configuration.tests.test_util import (
with_site_configuration,
with_site_configuration_context
)
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from openedx.core.djangolib.js_utils import js_escaped_string
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase
from openedx.core.lib.tests.assertions.events import assert_event_matches

View File

@@ -1,7 +1,7 @@
""" Course API """
from openedx.core.djangoapps.waffle_utils import WaffleSwitch, WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitch, WaffleSwitchNamespace
WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name='course_list_api_rate_limit')

View File

@@ -8,17 +8,17 @@ from itertools import product
import ddt
import six
from django.test.client import RequestFactory
from edx_toggles.toggles.testutils import override_waffle_switch
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_switch
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from student.tests.factories import UserFactory
from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import SampleCourseFactory, check_mongo_calls
from xmodule.modulestore.tests.sample_courses import BlockInfo
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_switch
from ..api import get_blocks

View File

@@ -3,8 +3,7 @@ Toggles for Course API.
"""
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
COURSE_BLOCKS_API_NAMESPACE = WaffleFlagNamespace(name=u'course_blocks_api')

View File

@@ -2,8 +2,9 @@
Toggles for course home experience.
"""
from edx_toggles.toggles import WaffleFlagNamespace
from lms.djangoapps.experiments.flags import ExperimentWaffleFlag
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='course_home')

View File

@@ -14,8 +14,10 @@ import ddt
import pytz
import six
from bson import ObjectId
from capa.tests.response_xml_factory import OptionResponseXMLFactory
from completion import waffle as completion_waffle
from completion.models import BlockCompletion
from course_modes.models import CourseMode
from django.conf import settings
from django.contrib.auth.models import AnonymousUser
from django.http import Http404, HttpResponse
@@ -26,6 +28,8 @@ from django.urls import reverse
from edx_proctoring.api import create_exam, create_exam_attempt, update_attempt_status
from edx_proctoring.runtime import set_runtime_service
from edx_proctoring.tests.test_services import MockCertificateService, MockCreditService, MockGradesService
from edx_toggles.toggles import WaffleSwitch
from edx_toggles.toggles.testutils import override_waffle_switch
from edx_when.field_data import DateLookupFieldData
from freezegun import freeze_time
from milestones.tests.utils import MilestonesTestCaseMixin
@@ -35,6 +39,8 @@ from opaque_keys.edx.keys import CourseKey, UsageKey
from pyquery import PyQuery
from six import text_type
from six.moves import range
from student.models import CourseEnrollment, anonymous_id_for_user
from verify_student.tests.factories import SoftwareSecurePhotoVerificationFactory
from web_fragments.fragment import Fragment
from xblock.completable import CompletableXBlockMixin
from xblock.core import XBlock, XBlockAside
@@ -42,9 +48,22 @@ from xblock.field_data import FieldData
from xblock.fields import ScopeIds
from xblock.runtime import DictKeyValueStore, KvsFieldData, Runtime
from xblock.test.tools import TestRuntime
from xblock_django.models import XBlockConfiguration
from xmodule.capa_module import ProblemBlock
from xmodule.html_module import AboutBlock, CourseInfoBlock, HtmlBlock, StaticTabBlock
from xmodule.lti_module import LTIDescriptor
from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.django_utils import (
TEST_DATA_MIXED_MODULESTORE,
ModuleStoreTestCase,
SharedModuleStoreTestCase
)
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory, ToyCourseFactory, check_mongo_calls
from xmodule.modulestore.tests.test_asides import AsideTestType
from xmodule.video_module import VideoBlock
from xmodule.x_module import STUDENT_VIEW, CombinedSystem, XModule, XModuleDescriptor
from capa.tests.response_xml_factory import OptionResponseXMLFactory
from course_modes.models import CourseMode
from lms.djangoapps.courseware import module_render as render
from lms.djangoapps.courseware.access_response import AccessResponse
from lms.djangoapps.courseware.courses import get_course_info_section, get_course_with_access
@@ -66,31 +85,13 @@ from openedx.core.djangoapps.credit.api import set_credit_requirement_status, se
from openedx.core.djangoapps.credit.models import CreditCourse
from openedx.core.djangoapps.oauth_dispatch.jwt import create_jwt_for_user
from openedx.core.djangoapps.oauth_dispatch.tests.factories import AccessTokenFactory, ApplicationFactory
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from openedx.core.lib.courses import course_image_url
from openedx.core.lib.gating import api as gating_api
from openedx.core.lib.url_utils import quote_slashes
from student.models import CourseEnrollment, anonymous_id_for_user
from verify_student.tests.factories import SoftwareSecurePhotoVerificationFactory
from xblock_django.models import XBlockConfiguration
from xmodule.capa_module import ProblemBlock
from xmodule.html_module import AboutBlock, CourseInfoBlock, HtmlBlock, StaticTabBlock
from xmodule.lti_module import LTIDescriptor
from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.django_utils import (
TEST_DATA_MIXED_MODULESTORE,
ModuleStoreTestCase,
SharedModuleStoreTestCase
)
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory, ToyCourseFactory, check_mongo_calls
from xmodule.modulestore.tests.test_asides import AsideTestType
from xmodule.video_module import VideoBlock
from xmodule.x_module import STUDENT_VIEW, CombinedSystem, XModule, XModuleDescriptor
TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT
# pylint: disable=feature-toggle-needs-doc
ENABLE_COMPLETION_TRACKING_SWITCH = WaffleSwitch(
completion_waffle.waffle(), completion_waffle.ENABLE_COMPLETION_TRACKING, __name__
)

View File

@@ -2,8 +2,9 @@
Toggles for courseware in-course experience.
"""
from edx_toggles.toggles import WaffleFlagNamespace
from lms.djangoapps.experiments.flags import ExperimentWaffleFlag
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
# Namespace for courseware waffle flags.
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='courseware')

View File

@@ -8,7 +8,6 @@ View for Courseware Index
import logging
import six
from six.moves import urllib
from django.conf import settings
from django.contrib.auth.views import redirect_to_login
from django.db import transaction
@@ -22,8 +21,10 @@ from django.views.decorators.cache import cache_control
from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.generic import View
from edx_django_utils.monitoring import set_custom_attributes_for_course_key
from edx_toggles.toggles import WaffleSwitchNamespace
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey, UsageKey
from six.moves import urllib
from web_fragments.fragment import Fragment
from edxmako.shortcuts import render_to_response, render_to_string
@@ -36,13 +37,12 @@ from openedx.core.djangoapps.crawlers.models import CrawlersConfig
from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY
from openedx.core.djangoapps.user_api.preferences.api import get_user_preference
from openedx.core.djangoapps.util.user_messages import PageLevelMessages
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from openedx.core.djangolib.markup import HTML, Text
from openedx.features.course_experience import (
COURSE_ENABLE_UNENROLLED_ACCESS_FLAG,
DISABLE_COURSE_OUTLINE_PAGE_FLAG,
default_course_url_name,
RELATIVE_DATES_FLAG,
default_course_url_name
)
from openedx.features.course_experience.urls import COURSE_HOME_VIEW_NAME
from openedx.features.course_experience.views.course_sock import CourseSockFragmentView
@@ -55,12 +55,7 @@ from xmodule.x_module import PUBLIC_VIEW, STUDENT_VIEW
from ..access import has_access
from ..access_utils import check_public_access
from ..courses import (
check_course_access_with_redirect,
get_course_with_access,
get_current_child,
get_studio_url
)
from ..courses import check_course_access_with_redirect, get_course_with_access, get_current_child, get_studio_url
from ..entrance_exams import (
course_has_entrance_exam,
get_entrance_exam_content,
@@ -71,15 +66,10 @@ from ..masquerade import check_content_start_date_for_masquerade_user, setup_mas
from ..model_data import FieldDataCache
from ..module_render import get_module_for_descriptor, toc_for_course
from ..permissions import MASQUERADE_AS_STUDENT
from ..toggles import (
COURSEWARE_MICROFRONTEND_COURSE_TEAM_PREVIEW,
REDIRECT_TO_COURSEWARE_MICROFRONTEND,
)
from ..toggles import COURSEWARE_MICROFRONTEND_COURSE_TEAM_PREVIEW, REDIRECT_TO_COURSEWARE_MICROFRONTEND
from ..url_helpers import get_microfrontend_url
from .views import CourseTabView
log = logging.getLogger("edx.courseware.views.index")
TEMPLATE_IMPORTS = {'urllib': urllib}

View File

@@ -16,16 +16,20 @@ from six import text_type
import third_party_auth
from course_modes.models import CourseMode
from .models import EmailMarketingConfiguration
from lms.djangoapps.email_marketing.tasks import get_email_cookies_via_sailthru, update_user, update_user_email
from edx_toggles.toggles import WaffleSwitchNamespace
from lms.djangoapps.email_marketing.tasks import (
get_email_cookies_via_sailthru,
update_course_enrollment,
update_user,
update_user_email
)
from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY
from openedx.core.djangoapps.user_authn.cookies import CREATE_LOGON_COOKIE
from openedx.core.djangoapps.user_authn.views.register import REGISTER_USER
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from student.signals import SAILTHRU_AUDIT_PURCHASE
from util.model_utils import USER_FIELD_CHANGED
from lms.djangoapps.email_marketing.tasks import update_course_enrollment
from .models import EmailMarketingConfiguration
log = logging.getLogger(__name__)

View File

@@ -11,16 +11,16 @@ from django.utils.timezone import now
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
from course_modes.models import format_course_price, get_cosmetic_verified_display_price, CourseMode
from lms.djangoapps.courseware.access import has_staff_access_to_preview_mode
from lms.djangoapps.courseware.utils import verified_upgrade_deadline_link, can_show_verified_upgrade
from course_modes.models import CourseMode, format_course_price, get_cosmetic_verified_display_price
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from entitlements.models import CourseEntitlement
from lms.djangoapps.commerce.utils import EcommerceService
from lms.djangoapps.courseware.access import has_staff_access_to_preview_mode
from lms.djangoapps.courseware.utils import can_show_verified_upgrade, verified_upgrade_deadline_link
from openedx.core.djangoapps.catalog.utils import get_programs
from openedx.core.djangoapps.django_comment_common.models import Role
from openedx.core.djangoapps.schedules.models import Schedule
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from openedx.features.course_duration_limits.access import get_user_course_expiration_date, get_user_course_duration
from openedx.features.course_duration_limits.access import get_user_course_duration, get_user_course_expiration_date
from student.models import CourseEnrollment
from xmodule.partitions.partitions_service import get_all_partitions_for_course, get_user_partition_groups

View File

@@ -6,9 +6,8 @@ The Discount API Views should return information about discounts that apply to t
import six
from django.utils.decorators import method_decorator
from django.http import HttpResponseBadRequest
from django.utils.decorators import method_decorator
from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication
from edx_rest_framework_extensions.auth.session.authentication import SessionAuthenticationAllowInactiveUser
from opaque_keys import InvalidKeyError
@@ -16,21 +15,19 @@ from opaque_keys.edx.keys import CourseKey
from rest_framework.response import Response
from rest_framework.views import APIView
from course_modes.models import get_cosmetic_verified_display_price
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from lms.djangoapps.commerce.utils import EcommerceService
from lms.djangoapps.courseware.utils import can_show_verified_upgrade
from lms.djangoapps.experiments.stable_bucketing import stable_bucketing_hash_group
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from openedx.core.djangoapps.cors_csrf.decorators import ensure_csrf_cookie_cross_domain
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from openedx.core.lib.api.authentication import BearerAuthenticationAllowInactiveUser
from openedx.core.lib.api.permissions import ApiKeyHeaderPermissionIsAuthenticated
from openedx.core.lib.api.view_utils import DeveloperErrorViewMixin
from lms.djangoapps.courseware.utils import can_show_verified_upgrade
from course_modes.models import get_cosmetic_verified_display_price
from lms.djangoapps.commerce.utils import EcommerceService
from lms.djangoapps.experiments.stable_bucketing import stable_bucketing_hash_group
from student.models import CourseEnrollment
from track import segment
# .. toggle_name: experiments.mobile_upsell_rev934
# .. toggle_type: flag
# .. toggle_default: False

View File

@@ -4,12 +4,8 @@ waffle switches for the Grades app.
"""
from openedx.core.djangoapps.waffle_utils import (
CourseWaffleFlag,
WaffleFlagNamespace,
WaffleSwitch,
WaffleSwitchNamespace
)
from edx_toggles.toggles import WaffleFlagNamespace, WaffleSwitch, WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
# Namespace
WAFFLE_NAMESPACE = u'grades'

View File

@@ -2,7 +2,8 @@
Waffle flags for instructor dashboard.
"""
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlagNamespace, WaffleFlag
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
WAFFLE_NAMESPACE = 'instructor'
# Namespace for instructor waffle flags.

View File

@@ -3,7 +3,8 @@ This module contains various configuration settings via
waffle switches for the instructor_task app.
"""
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlagNamespace, WaffleSwitchNamespace
from edx_toggles.toggles import WaffleFlagNamespace, WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
WAFFLE_NAMESPACE = 'instructor_task'
INSTRUCTOR_TASK_WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name=WAFFLE_NAMESPACE)

View File

@@ -2,7 +2,7 @@
Toggles for verify_student app
"""
from openedx.core.djangoapps.waffle_utils import WaffleFlagNamespace, WaffleFlag
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
# Namespace for verify_students waffle flags.
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='verify_student')

View File

@@ -4,7 +4,7 @@ waffle switches for the Certificates app.
"""
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitchNamespace
# Namespace
WAFFLE_NAMESPACE = u'certificates'

View File

@@ -7,15 +7,15 @@ from datetime import datetime, timedelta
import ddt
import pytz
import waffle
from django.test import TestCase
from course_modes.models import CourseMode
from django.test import TestCase
from edx_toggles.toggles import WaffleSwitch
from edx_toggles.toggles.testutils import override_waffle_switch
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from openedx.core.djangoapps.certificates import api
from openedx.core.djangoapps.certificates.config import waffle as certs_waffle
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from openedx.core.djangoapps.waffle_utils import WaffleSwitch
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from student.tests.factories import CourseEnrollmentFactory, UserFactory
# TODO: Copied from lms.djangoapps.certificates.models,

View File

@@ -4,7 +4,7 @@ waffle switches for the Block Structure framework.
"""
from openedx.core.djangoapps.waffle_utils import WaffleSwitch, WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitch, WaffleSwitchNamespace
from openedx.core.lib.cache_utils import request_cached
from .models import BlockStructureConfiguration

View File

@@ -6,8 +6,7 @@ Tests for manager.py
import ddt
import six
from django.test import TestCase
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from edx_toggles.toggles.testutils import override_waffle_switch
from ..block_structure import BlockStructureBlockData
from ..config import RAISE_ERROR_WHEN_NOT_FOUND, STORAGE_BACKING_FOR_CACHE, waffle_switch

View File

@@ -4,10 +4,9 @@ Unit tests for the Course Blocks signals
import ddt
from edx_toggles.toggles.testutils import override_waffle_switch
from mock import patch
from opaque_keys.edx.locator import CourseLocator, LibraryLocator
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from xmodule.modulestore.exceptions import ItemNotFoundError
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory

View File

@@ -4,8 +4,8 @@ Tests for block_structure/cache.py
import ddt
from edx_toggles.toggles.testutils import override_waffle_switch
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase
from ..config import STORAGE_BACKING_FOR_CACHE, waffle_switch

View File

@@ -10,6 +10,9 @@ import ddt
import mock
import six
from django.core.management import call_command
from edx_toggles.toggles.testutils import override_waffle_switch
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
import openedx.core.djangoapps.content.block_structure.config as block_structure_config
from openedx.core.djangoapps.content.block_structure.signals import update_block_structure_on_course_publish
@@ -22,10 +25,7 @@ from openedx.core.djangoapps.coursegraph.tasks import (
should_dump_course,
strip_branch_and_version
)
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from openedx.core.djangolib.testing.utils import skip_unless_lms
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
class TestDumpToNeo4jCommandBase(SharedModuleStoreTestCase):

View File

@@ -4,11 +4,8 @@ waffle switches for the course_details view.
"""
from openedx.core.djangoapps.waffle_utils import (
CourseWaffleFlag,
WaffleFlagNamespace,
WaffleSwitchNamespace
)
from edx_toggles.toggles import WaffleFlagNamespace, WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
COURSE_DETAIL_WAFFLE_NAMESPACE = 'course_detail'
COURSE_DETAIL_WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name=COURSE_DETAIL_WAFFLE_NAMESPACE)

View File

@@ -10,7 +10,7 @@ this package should be kept small, thin, and stateless.
"""
default_app_config = 'openedx.core.djangoapps.programs.apps.ProgramsConfig'
from openedx.core.djangoapps.waffle_utils import WaffleSwitch, WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitch, WaffleSwitchNamespace
PROGRAMS_WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name='programs')

View File

@@ -3,10 +3,8 @@ Contains configuration for schedules app
"""
from openedx.core.djangoapps.waffle_utils import (
WaffleFlagNamespace, CourseWaffleFlag, WaffleFlag,
WaffleSwitch, WaffleSwitchNamespace,
)
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace, WaffleSwitch, WaffleSwitchNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='schedules')
WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name='schedules')

View File

@@ -7,13 +7,13 @@ import datetime
import ddt
import pytest
from edx_toggles.toggles.testutils import override_waffle_flag
from mock import patch
from pytz import utc
from testfixtures import LogCapture
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.courseware.models import DynamicUpgradeDeadlineConfiguration
from openedx.core.djangoapps.schedules.models import ScheduleExperience
from openedx.core.djangoapps.schedules.signals import CREATE_SCHEDULE_WAFFLE_FLAG, log

View File

@@ -2,8 +2,8 @@
Toggles for accounts related code.
"""
from edx_toggles.toggles import WaffleFlag
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.waffle_utils import WaffleFlag
# .. toggle_name: order_history.redirect_to_microfrontend
# .. toggle_implementation: WaffleFlag

View File

@@ -5,7 +5,7 @@ Waffle flags and switches to change user API functionality.
from django.utils.translation import ugettext_lazy as _
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitchNamespace
SYSTEM_MAINTENANCE_MSG = _(u'System maintenance in progress. Please try again later.')
WAFFLE_NAMESPACE = u'user_api'

View File

@@ -3,7 +3,7 @@ Waffle flags and switches for user authn.
"""
from openedx.core.djangoapps.waffle_utils import WaffleSwitch, WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitch, WaffleSwitchNamespace
_WAFFLE_NAMESPACE = u'user_authn'
_WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name=_WAFFLE_NAMESPACE, log_prefix=u'UserAuthN: ')

View File

@@ -21,12 +21,11 @@ from django.utils.translation import get_language
from django.utils.translation import ugettext as _
from django.views.decorators.csrf import csrf_exempt, ensure_csrf_cookie
from django.views.decorators.debug import sensitive_post_parameters
from ipware.ip import get_ip
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from pytz import UTC
from ratelimit.decorators import ratelimit
from requests import HTTPError
from rest_framework.response import Response
from rest_framework.throttling import AnonRateThrottle
from rest_framework.views import APIView
from six import text_type
from social_core.exceptions import AuthAlreadyAssociated, AuthException
@@ -57,7 +56,6 @@ from openedx.core.djangoapps.user_authn.views.registration_form import (
RegistrationFormFactory,
get_registration_extension_form
)
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from student.helpers import (
AccountValidationError,
authenticate_new_user,

View File

@@ -18,7 +18,10 @@ from django.http import HttpResponse
from django.test.client import Client
from django.test.utils import override_settings
from django.urls import NoReverseMatch, reverse
from edx_toggles.toggles.testutils import override_waffle_switch
from mock import patch
from student.tests.factories import RegistrationFactory, UserFactory, UserProfileFactory
from util.password_policy_validators import DEFAULT_MAX_PASSWORD_LENGTH
from openedx.core.djangoapps.password_policy.compliance import (
NonCompliantPasswordException,
@@ -32,12 +35,9 @@ from openedx.core.djangoapps.user_authn.views.login import (
AllowedAuthUser,
_check_user_auth_flow
)
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase, skip_unless_lms
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
from openedx.core.lib.api.test_utils import ApiTestCase
from student.tests.factories import RegistrationFactory, UserFactory, UserProfileFactory
from util.password_policy_validators import DEFAULT_MAX_PASSWORD_LENGTH
@ddt.ddt

View File

@@ -4,6 +4,7 @@
from datetime import datetime, timedelta
from http.cookies import SimpleCookie
from urllib.parse import urlencode
import ddt
import mock
@@ -20,12 +21,9 @@ from django.urls import reverse
from django.utils.translation import ugettext as _
from freezegun import freeze_time
from pytz import UTC
from six.moves.urllib.parse import urlencode # pylint: disable=import-error
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.branding.api import get_privacy_url
from openedx.core.djangoapps.site_configuration.tests.factories import SiteConfigurationFactory, SiteFactory
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
from openedx.core.djangoapps.theming.tests.test_util import with_comprehensive_theme_context
from openedx.core.djangoapps.user_authn.views.login_form import login_and_registration_form
@@ -125,7 +123,7 @@ class LoginAndRegistrationTest(ThirdPartyAuthTestMixin, UrlResetMixin, ModuleSto
Test that rate limiting for logistration enpoints works as expected.
"""
login_url = reverse('signin_user')
for i in range(5):
for _ in range(5):
response = self.client.get(login_url)
self.assertEqual(response.status_code, 200)

View File

@@ -3,7 +3,7 @@ Waffle flags and switches
"""
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitchNamespace
WAFFLE_NAMESPACE = u'open_edx_util'

View File

@@ -3,7 +3,8 @@ This module contains configuration settings via waffle flags
for the Video Pipeline app.
"""
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlag, WaffleFlagNamespace
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
# Videos Namespace
WAFFLE_NAMESPACE = 'videos'

View File

@@ -6,7 +6,6 @@ import logging
from opaque_keys.edx.keys import CourseKey
# pylint: disable=unused-import
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace, WaffleSwitch, WaffleSwitchNamespace
log = logging.getLogger(__name__)

View File

@@ -12,8 +12,8 @@ from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
from six.moves.urllib.parse import urlparse
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
# accommodates course api urls, excluding any course api routes that do not fall under v*/courses, such as v1/blocks.
COURSE_REGEX = re.compile(r'^(.*?/courses/)(?!v[0-9]+/[^/]+){}'.format(settings.COURSE_ID_PATTERN))

View File

@@ -6,10 +6,10 @@ This is not inside a django app because it is a global property of the system.
from django.test import Client, TestCase
from django.urls import reverse
from edx_toggles.toggles.testutils import override_waffle_switch
from student.tests.factories import TEST_PASSWORD, UserFactory
from openedx.core.djangoapps.user_authn.views.login import ENABLE_LOGIN_USING_THIRDPARTY_AUTH_ONLY
from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_switch
from student.tests.factories import TEST_PASSWORD, UserFactory
class TestAdminView(TestCase):

View File

@@ -6,9 +6,9 @@ from django.utils.translation import ugettext as _
from edx_django_utils.monitoring import set_custom_attribute
from waffle import flag_is_active
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from lms.djangoapps.experiments.flags import ExperimentWaffleFlag
from openedx.core.djangoapps.util.user_messages import UserMessageCollection
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag
# Namespace for course experience waffle flags.

View File

@@ -14,13 +14,13 @@ from django.http import QueryDict
from django.urls import reverse
from django.utils.http import urlquote_plus
from django.utils.timezone import now
from edx_toggles.toggles.testutils import override_waffle_flag
from pytz import UTC
from waffle.models import Flag
from waffle.testutils import override_flag
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from edx_toggles.toggles.testutils import override_waffle_flag
from experiments.models import ExperimentData
from lms.djangoapps.commerce.models import CommerceConfiguration
from lms.djangoapps.commerce.utils import EcommerceService
@@ -45,7 +45,7 @@ from openedx.core.djangoapps.django_comment_common.models import (
FORUM_ROLE_MODERATOR
)
from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory
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.markup import HTML
from openedx.features.course_duration_limits.models import CourseDurationLimitConfig
from openedx.features.course_experience import (
@@ -1020,6 +1020,7 @@ class CourseHomeFragmentViewTests(ModuleStoreTestCase):
mock.Mock(return_value=(HTML("<span>DISCOUNT_PRICE</span>"), True))
)
def test_upgrade_message_discount(self):
# pylint: disable=no-member
CourseEnrollment.enroll(self.user, self.course.id, CourseMode.AUDIT)
with override_waffle_flag(SHOW_UPGRADE_MSG_ON_COURSE_HOME, True):

View File

@@ -5,9 +5,9 @@ Tests for course verification sock
import ddt
import mock
from edx_toggles.toggles.testutils import override_waffle_flag
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.commerce.models import CommerceConfiguration
from openedx.core.djangolib.markup import HTML
from openedx.features.course_experience import DISPLAY_COURSE_SOCK_FLAG

View File

@@ -3,7 +3,7 @@ Miscellaneous waffle switches that both LMS and Studio need to access
"""
from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
from edx_toggles.toggles import WaffleSwitchNamespace
# Namespace
WAFFLE_NAMESPACE = u'course_experience'

View File

@@ -12,16 +12,16 @@ not other discounts like coupons or enterprise/program offers configured in ecom
from datetime import datetime, timedelta
import pytz
from crum import get_current_request, impersonate
from django.utils import timezone
from django.utils.dateparse import parse_datetime
import pytz
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from course_modes.models import CourseMode
from entitlements.models import CourseEntitlement
from experiments.models import ExperimentData
from lms.djangoapps.experiments.stable_bucketing import stable_bucketing_hash_group
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
from openedx.features.discounts.models import DiscountPercentageConfig, DiscountRestrictionConfig
from student.models import CourseEnrollment
from track import segment

View File

@@ -9,12 +9,12 @@ import pytest
import pytz
from django.contrib.sites.models import Site
from django.utils.timezone import now
from edx_toggles.toggles.testutils import override_waffle_flag
from enterprise.models import EnterpriseCustomer, EnterpriseCustomerUser
from mock import Mock, patch
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from edx_toggles.toggles.testutils import override_waffle_flag
from entitlements.tests.factories import CourseEntitlementFactory
from experiments.models import ExperimentData
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview

View File

@@ -10,8 +10,9 @@ from django.conf import settings
from django.urls import NoReverseMatch, reverse
from django.utils.translation import ugettext as _
from edx_django_utils.cache import TieredCache, get_cache_key
from edx_toggles.toggles import WaffleFlag
from enterprise.api.v1.serializers import EnterpriseCustomerBrandingConfigurationSerializer
from enterprise.models import EnterpriseCustomerUser, EnterpriseCustomer
from enterprise.models import EnterpriseCustomer, EnterpriseCustomerUser
from social_django.models import UserSocialAuth
import third_party_auth
@@ -19,7 +20,6 @@ from lms.djangoapps.branding.api import get_privacy_url
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.user_authn.cookies import standard_cookie_settings
from openedx.core.djangolib.markup import HTML, Text
from openedx.core.djangoapps.waffle_utils import WaffleFlag
from student.helpers import get_next_url_for_login_page
ENTERPRISE_HEADER_LINKS = WaffleFlag('enterprise', 'enterprise_header_links', __name__)

View File

@@ -10,10 +10,10 @@ from django.conf import settings
from django.test import override_settings
from django.test.client import RequestFactory
from django.urls import reverse
from edx_toggles.toggles.testutils import override_waffle_flag
from opaque_keys.edx.locator import CourseLocator
from course_modes.models import CourseMode
from edx_toggles.toggles.testutils import override_waffle_flag
from lms.djangoapps.certificates.api import is_passing_status
from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFactory
from lms.envs.test import CREDENTIALS_PUBLIC_SERVICE_URL

View File

@@ -3,9 +3,8 @@ Toggles for Learner Profile page.
"""
from edx_toggles.toggles import WaffleFlag, WaffleFlagNamespace
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
# Namespace for learner profile waffle flags.
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='learner_profile')

View File

@@ -10,9 +10,9 @@ from django.core.exceptions import ValidationError
from django.test import TestCase
from opaque_keys.edx.keys import CourseKey, UsageKey
from six.moves import range, zip
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from openedx.core.djangolib.testing.utils import skip_unless_lms
from student.tests.factories import CourseEnrollmentFactory, UserFactory
SELECT = 1
UPDATE = 1