Upgrade by {discount_expiration_date} and save {percentage}% [{strikeout_price}]
Use code
EDXWELCOME at checkout!
Upgrade Now
@@ -549,7 +547,7 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
expiration_date = strftime_localized(course.start + timedelta(weeks=4) + timedelta(days=1), 'SHORT_DATE')
expected_params = QueryDict(mutable=True)
course_name = CourseOverview.get_from_id(course.id).display_name_with_default
- expected_params['access_response_error'] = u'Access to {run} expired on {expiration_date}'.format(
+ expected_params['access_response_error'] = 'Access to {run} expired on {expiration_date}'.format(
run=course_name,
expiration_date=expiration_date
)
@@ -631,14 +629,14 @@ class TestCourseHomePageAccess(CourseHomePageTestCase):
future_course = self.create_future_course()
self.create_user_for_course(future_course, CourseUserType.ENROLLED)
- fake_unicode_start_time = u"üñîçø∂é_ßtå®t_tîµé"
+ fake_unicode_start_time = "üñîçø∂é_ßtå®t_tîµé"
mock_strftime_localized.return_value = fake_unicode_start_time
url = course_home_url(future_course)
response = self.client.get(url)
expected_params = QueryDict(mutable=True)
expected_params['notlive'] = fake_unicode_start_time
- expected_url = u'{url}?{params}'.format(
+ expected_url = '{url}?{params}'.format(
url=reverse('dashboard'),
params=expected_params.urlencode()
)
@@ -857,7 +855,7 @@ class CourseHomeFragmentViewTests(ModuleStoreTestCase):
CREATE_USER = False
def setUp(self):
- super(CourseHomeFragmentViewTests, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments
+ super().setUp()
CommerceConfiguration.objects.create(checkout_on_ecommerce_service=True)
end = now() + timedelta(days=30)
@@ -896,7 +894,7 @@ class CourseHomeFragmentViewTests(ModuleStoreTestCase):
self.assertContains(response, url)
self.assertContains(
response,
- u"Upgrade (
${price})".format(price=self.verified_mode.min_price),
+ f"Upgrade (
${self.verified_mode.min_price})",
)
def test_no_upgrade_message_if_logged_out(self):
diff --git a/openedx/features/course_experience/tests/views/test_course_outline.py b/openedx/features/course_experience/tests/views/test_course_outline.py
index b42299e532..20fa2b3949 100644
--- a/openedx/features/course_experience/tests/views/test_course_outline.py
+++ b/openedx/features/course_experience/tests/views/test_course_outline.py
@@ -5,9 +5,9 @@ Tests for the Course Outline view and supporting views.
import datetime
import re
+from unittest.mock import Mock, patch
import ddt
-import six
from completion.waffle import ENABLE_COMPLETION_TRACKING_SWITCH
from completion.models import BlockCompletion
from completion.test_utils import CompletionWaffleTestMixin
@@ -17,11 +17,9 @@ from django.urls import reverse
from django.utils import timezone
from edx_toggles.toggles.testutils import override_waffle_flag, override_waffle_switch
from milestones.tests.utils import MilestonesTestCaseMixin
-from mock import Mock, patch
from opaque_keys.edx.keys import CourseKey, UsageKey
from pyquery import PyQuery as pq
from pytz import UTC
-from six import text_type
from waffle.models import Switch
from common.djangoapps.course_modes.models import CourseMode
@@ -71,7 +69,7 @@ class TestCourseOutlinePage(SharedModuleStoreTestCase, MasqueradeMixin):
# setUpClassAndTestData() already calls setUpClass on SharedModuleStoreTestCase
# pylint: disable=super-method-not-called
- with super(TestCourseOutlinePage, cls).setUpClassAndTestData():
+ with super().setUpClassAndTestData():
cls.courses = []
course = CourseFactory.create(self_paced=True)
with cls.store.bulk_operations(course.id):
@@ -134,7 +132,7 @@ class TestCourseOutlinePage(SharedModuleStoreTestCase, MasqueradeMixin):
"""
Set up for the tests.
"""
- super(TestCourseOutlinePage, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments
+ super().setUp()
self.client.login(username=self.user.username, password=TEST_PASSWORD)
@override_waffle_flag(RELATIVE_DATES_FLAG, active=True)
@@ -160,7 +158,7 @@ class TestCourseOutlinePage(SharedModuleStoreTestCase, MasqueradeMixin):
self.assertContains(response, sequential['display_name'])
if sequential['graded']:
print(sequential)
- self.assertContains(response, sequential['due'].strftime(u'%Y-%m-%d %H:%M:%S'))
+ self.assertContains(response, sequential['due'].strftime('%Y-%m-%d %H:%M:%S'))
self.assertContains(response, sequential['format'])
assert sequential['children']
@@ -288,7 +286,7 @@ class TestCourseOutlinePageWithPrerequisites(SharedModuleStoreTestCase, Mileston
cls.PREREQ_REQUIRED = '(Prerequisite required)'
cls.UNLOCKED = 'Unlocked'
- with super(TestCourseOutlinePageWithPrerequisites, cls).setUpClassAndTestData():
+ with super().setUpClassAndTestData():
cls.course, cls.course_blocks = cls.create_test_course()
@classmethod
@@ -339,7 +337,7 @@ class TestCourseOutlinePageWithPrerequisites(SharedModuleStoreTestCase, Mileston
"""
Set up for the tests.
"""
- super(TestCourseOutlinePageWithPrerequisites, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments
+ super().setUp()
self.client.login(username=self.user.username, password=TEST_PASSWORD)
def setup_gated_section(self, gated_block, gating_block):
@@ -350,7 +348,7 @@ class TestCourseOutlinePageWithPrerequisites(SharedModuleStoreTestCase, Mileston
gating_block: (The prerequisite) The block that must be completed to get access to the gated block
"""
- gating_api.add_prerequisite(self.course.id, six.text_type(gating_block.location))
+ gating_api.add_prerequisite(self.course.id, str(gating_block.location))
gating_api.set_required_content(self.course.id, gated_block.location, gating_block.location, 100)
def test_content_locked(self):
@@ -437,7 +435,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
"""
# setUpClassAndTestData() already calls setUpClass on SharedModuleStoreTestCase
# pylint: disable=super-method-not-called
- with super(TestCourseOutlineResumeCourse, cls).setUpClassAndTestData():
+ with super().setUpClassAndTestData():
cls.course = cls.create_test_course()
@classmethod
@@ -479,7 +477,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
"""
Set up for the tests.
"""
- super(TestCourseOutlineResumeCourse, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments
+ super().setUp()
self.client.login(username=self.user.username, password=TEST_PASSWORD)
def visit_sequential(self, course, chapter, sequential):
@@ -489,7 +487,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
last_accessed_url = reverse(
'courseware_section',
kwargs={
- 'course_id': text_type(course.id),
+ 'course_id': str(course.id),
'chapter': chapter.url_name,
'section': sequential.url_name,
}
@@ -503,7 +501,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
"""
course_key = CourseKey.from_string(str(course.id))
# Fake a visit to sequence2/vertical2
- block_key = UsageKey.from_string(six.text_type(sequential.location))
+ block_key = UsageKey.from_string(str(sequential.location))
if block_key.course_key.run is None:
# Old mongo keys must be annotated with course run info before calling submit_completion:
block_key = block_key.replace(course_key=course_key)
@@ -564,7 +562,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
content = pq(response.content)
vertical = course.children[0].children[0].children[0]
- assert content('.action-resume-course').attr('href').endswith(('/vertical/' + vertical.url_name))
+ assert content('.action-resume-course').attr('href').endswith('/vertical/' + vertical.url_name)
@override_settings(LMS_BASE='test_url:9999')
def test_resume_course_with_completion_api(self):
@@ -584,7 +582,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
# Test for 'resume' link URL - should be vertical 1
content = pq(response.content)
- assert content('.action-resume-course').attr('href').endswith(('/vertical/' + vertical1.url_name))
+ assert content('.action-resume-course').attr('href').endswith('/vertical/' + vertical1.url_name)
self.complete_sequential(self.course, vertical2)
# Test for 'resume' link
@@ -592,7 +590,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
# Test for 'resume' link URL - should be vertical 2
content = pq(response.content)
- assert content('.action-resume-course').attr('href').endswith(('/vertical/' + vertical2.url_name))
+ assert content('.action-resume-course').attr('href').endswith('/vertical/' + vertical2.url_name)
# visit sequential 1, make sure 'Resume Course' URL is robust against 'Last Visited'
# (even though I visited seq1/vert1, 'Resume Course' still points to seq2/vert2)
@@ -601,7 +599,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
# Test for 'resume' link URL - should be vertical 2 (last completed block, NOT last visited)
response = self.visit_course_home(course, resume_count=1)
content = pq(response.content)
- assert content('.action-resume-course').attr('href').endswith(('/vertical/' + vertical2.url_name))
+ assert content('.action-resume-course').attr('href').endswith('/vertical/' + vertical2.url_name)
def test_resume_course_deleted_sequential(self):
"""
@@ -627,7 +625,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
response = self.visit_course_home(course, resume_count=1)
content = pq(response.content)
- assert content('.action-resume-course').attr('href').endswith(('/sequential/' + sequential2.url_name))
+ assert content('.action-resume-course').attr('href').endswith('/sequential/' + sequential2.url_name)
def test_resume_course_deleted_sequentials(self):
"""
@@ -665,7 +663,7 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
response = self.visit_course_home(course, start_count=1, resume_count=0)
content = pq(response.content)
vertical = course.children[0].children[0].children[0]
- assert content('.action-resume-course').attr('href').endswith(('/vertical/' + vertical.url_name))
+ assert content('.action-resume-course').attr('href').endswith('/vertical/' + vertical.url_name)
@override_waffle_switch(ENABLE_COMPLETION_TRACKING_SWITCH, active=True)
def test_course_outline_auto_open(self):
@@ -687,10 +685,10 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT
chapter2 = course.children[1]
response_content = self.client.get(course_home_url(course)).content
- stripped_response = text_type(re.sub(b"\\s+", b"", response_content), "utf-8")
+ stripped_response = str(re.sub(b"\\s+", b"", response_content), "utf-8")
- assert get_sequential_button(text_type(chapter1.location), False) in stripped_response
- assert get_sequential_button(text_type(chapter2.location), True) in stripped_response
+ assert get_sequential_button(str(chapter1.location), False) in stripped_response
+ assert get_sequential_button(str(chapter2.location), True) in stripped_response
content = pq(response_content)
button = content('#expand-collapse-outline-all-button')
diff --git a/openedx/features/course_experience/tests/views/test_course_sock.py b/openedx/features/course_experience/tests/views/test_course_sock.py
index 1552999140..77db02e06f 100644
--- a/openedx/features/course_experience/tests/views/test_course_sock.py
+++ b/openedx/features/course_experience/tests/views/test_course_sock.py
@@ -3,8 +3,9 @@ Tests for course verification sock
"""
+from unittest import mock
+
import ddt
-import mock
from edx_toggles.toggles.testutils import override_waffle_flag
from common.djangoapps.course_modes.models import CourseMode
@@ -29,7 +30,7 @@ class TestCourseSockView(SharedModuleStoreTestCase):
"""
@classmethod
def setUpClass(cls):
- super(TestCourseSockView, cls).setUpClass()
+ super().setUpClass()
# Create four courses
cls.standard_course = CourseFactory.create()
@@ -43,7 +44,7 @@ class TestCourseSockView(SharedModuleStoreTestCase):
add_course_mode(cls.verified_course_already_enrolled, upgrade_deadline_expired=False)
def setUp(self):
- super(TestCourseSockView, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments
+ super().setUp()
self.user = UserFactory.create()
# Enroll the user in the four courses
diff --git a/openedx/features/course_experience/tests/views/test_masquerade.py b/openedx/features/course_experience/tests/views/test_masquerade.py
index 8fd2305616..b0c6c1c82e 100644
--- a/openedx/features/course_experience/tests/views/test_masquerade.py
+++ b/openedx/features/course_experience/tests/views/test_masquerade.py
@@ -26,7 +26,7 @@ class MasqueradeTestBase(SharedModuleStoreTestCase, MasqueradeMixin):
"""
@classmethod
def setUpClass(cls):
- super(MasqueradeTestBase, cls).setUpClass()
+ super().setUpClass()
# Create two courses
cls.verified_course = CourseFactory.create()
@@ -37,7 +37,7 @@ class MasqueradeTestBase(SharedModuleStoreTestCase, MasqueradeMixin):
add_course_mode(cls.masters_course, mode_slug='masters', mode_display_name='Masters')
def setUp(self):
- super(MasqueradeTestBase, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments
+ super().setUp()
self.course_staff = UserFactory.create()
CourseStaffRole(self.verified_course.id).add_users(self.course_staff)
CourseStaffRole(self.masters_course.id).add_users(self.course_staff)
diff --git a/openedx/features/course_experience/url_helpers.py b/openedx/features/course_experience/url_helpers.py
index 286ac02c3e..122e9ab7f5 100644
--- a/openedx/features/course_experience/url_helpers.py
+++ b/openedx/features/course_experience/url_helpers.py
@@ -88,13 +88,13 @@ def _get_legacy_courseware_url(
# args provided by the redirect.
# Rely on index to do all error handling and access control.
if chapter is None:
- redirect_url = reverse('courseware', args=(six.text_type(course_key), ))
+ redirect_url = reverse('courseware', args=(str(course_key), ))
elif section is None:
- redirect_url = reverse('courseware_chapter', args=(six.text_type(course_key), chapter))
+ redirect_url = reverse('courseware_chapter', args=(str(course_key), chapter))
elif position is None:
redirect_url = reverse(
'courseware_section',
- args=(six.text_type(course_key), chapter, section)
+ args=(str(course_key), chapter, section)
)
else:
# Here we use the navigation_index from the position returned from
@@ -102,9 +102,9 @@ def _get_legacy_courseware_url(
# moment
redirect_url = reverse(
'courseware_position',
- args=(six.text_type(course_key), chapter, section, navigation_index(position))
+ args=(str(course_key), chapter, section, navigation_index(position))
)
- redirect_url += "?{}".format(urlencode({'activate_block_id': six.text_type(final_target_id)}))
+ redirect_url += "?{}".format(urlencode({'activate_block_id': str(final_target_id)}))
return redirect_url
@@ -177,13 +177,13 @@ def make_learning_mfe_courseware_url(
`course_key`, `sequence_key`, and `unit_key` can be either OpaqueKeys or
strings. They're only ever used to concatenate a URL string.
"""
- mfe_link = '{}/course/{}'.format(settings.LEARNING_MICROFRONTEND_URL, course_key)
+ mfe_link = f'{settings.LEARNING_MICROFRONTEND_URL}/course/{course_key}'
if sequence_key:
- mfe_link += '/{}'.format(sequence_key)
+ mfe_link += f'/{sequence_key}'
if unit_key:
- mfe_link += '/{}'.format(unit_key)
+ mfe_link += f'/{unit_key}'
return mfe_link
diff --git a/openedx/features/course_experience/views/course_dates.py b/openedx/features/course_experience/views/course_dates.py
index 985323dea4..5f0527ed86 100644
--- a/openedx/features/course_experience/views/course_dates.py
+++ b/openedx/features/course_experience/views/course_dates.py
@@ -67,7 +67,7 @@ class CourseDatesFragmentMobileView(CourseDatesFragmentView):
def get(self, request, *args, **kwargs):
if not request.user.is_authenticated:
raise Http404
- return super(CourseDatesFragmentMobileView, self).get(request, *args, **kwargs) # lint-amnesty, pylint: disable=super-with-arguments
+ return super().get(request, *args, **kwargs)
def css_dependencies(self):
"""
diff --git a/openedx/features/course_experience/views/course_home.py b/openedx/features/course_experience/views/course_home.py
index a4d031f332..89f12028ea 100644
--- a/openedx/features/course_experience/views/course_home.py
+++ b/openedx/features/course_experience/views/course_home.py
@@ -52,7 +52,7 @@ from .course_sock import CourseSockFragmentView
from .latest_update import LatestUpdateFragmentView
from .welcome_message import WelcomeMessageFragmentView
-EMPTY_HANDOUTS_HTML = u'
'
+EMPTY_HANDOUTS_HTML = '
'
class CourseHomeView(CourseTabView):
@@ -67,10 +67,10 @@ class CourseHomeView(CourseTabView):
"""
Displays the home page for the specified course.
"""
- return super(CourseHomeView, self).get(request, course_id, 'courseware', **kwargs) # lint-amnesty, pylint: disable=super-with-arguments
+ return super().get(request, course_id, 'courseware', **kwargs)
def render_to_fragment(self, request, course=None, tab=None, **kwargs): # lint-amnesty, pylint: disable=arguments-differ, unused-argument
- course_id = six.text_type(course.id)
+ course_id = str(course.id)
if course_home_mfe_outline_tab_is_active(course.id) and not request.user.is_staff:
microfrontend_url = get_learning_mfe_home_url(course_key=course_id, view_name="home")
raise Redirect(microfrontend_url)
diff --git a/openedx/features/course_experience/views/course_home_messages.py b/openedx/features/course_experience/views/course_home_messages.py
index 3c3ec19130..468237dcd8 100644
--- a/openedx/features/course_experience/views/course_home_messages.py
+++ b/openedx/features/course_experience/views/course_home_messages.py
@@ -114,17 +114,17 @@ def _register_course_home_messages(request, course, user_access, course_start_da
allow_anonymous = check_public_access(course, [COURSE_VISIBILITY_PUBLIC])
if user_access['is_anonymous'] and not allow_anonymous:
- sign_in_or_register_text = (_(u'{sign_in_link} or {register_link} and then enroll in this course.')
+ sign_in_or_register_text = (_('{sign_in_link} or {register_link} and then enroll in this course.')
if not CourseMode.is_masters_only(course.id)
- else _(u'{sign_in_link} or {register_link}.'))
+ else _('{sign_in_link} or {register_link}.'))
CourseHomeMessages.register_info_message(
request,
Text(sign_in_or_register_text).format(
- sign_in_link=HTML(u'
{sign_in_label}').format(
+ sign_in_link=HTML('
{sign_in_label}').format(
sign_in_label=_('Sign in'),
current_url=urlquote_plus(request.path),
),
- register_link=HTML(u'
{register_label}').format(
+ register_link=HTML('
{register_label}').format(
register_label=_('register'),
current_url=urlquote_plus(request.path),
)
@@ -134,7 +134,7 @@ def _register_course_home_messages(request, course, user_access, course_start_da
if not user_access['is_anonymous'] and not user_access['is_staff'] and \
not user_access['is_enrolled']:
- title = Text(_(u'Welcome to {course_display_name}')).format(
+ title = Text(_('Welcome to {course_display_name}')).format(
course_display_name=course.display_name
)
@@ -150,7 +150,7 @@ def _register_course_home_messages(request, course, user_access, course_start_da
CourseHomeMessages.register_info_message(
request,
Text(_(
- u'{open_enroll_link}Enroll now{close_enroll_link} to access the full course.'
+ '{open_enroll_link}Enroll now{close_enroll_link} to access the full course.'
)).format(
open_enroll_link=HTML('
')
@@ -171,7 +171,7 @@ def _register_course_goal_message(request, course):
course_goal_options = get_course_goal_options()
goal_choices_html = Text(_(
'To start, set a course goal by selecting the option below that best describes '
- u'your learning plan. {goal_options_container}'
+ 'your learning plan. {goal_options_container}'
)).format(
goal_options_container=HTML('
')
)
@@ -181,11 +181,11 @@ def _register_course_goal_message(request, course):
'{initial_tag}{choice}{closing_tag}'
).format(
initial_tag=HTML(
- u'
'
).format(
goal_key=GOAL_KEY_CHOICES.unsure,
- aria_label_choice=Text(_(u"Set goal to: {choice}")).format(
+ aria_label_choice=Text(_("Set goal to: {choice}")).format(
choice=course_goal_options[GOAL_KEY_CHOICES.unsure],
),
),
@@ -204,11 +204,11 @@ def _register_course_goal_message(request, course):
'{initial_tag}{goal_text}{closing_tag}'
).format(
initial_tag=HTML(
- u'
')
),
- title=Text(_(u'Welcome to {course_display_name}')).format(
+ title=Text(_('Welcome to {course_display_name}')).format(
course_display_name=course.display_name
)
)
diff --git a/openedx/features/course_experience/views/course_updates.py b/openedx/features/course_experience/views/course_updates.py
index 7fa3acad65..5f76b592ee 100644
--- a/openedx/features/course_experience/views/course_updates.py
+++ b/openedx/features/course_experience/views/course_updates.py
@@ -29,10 +29,10 @@ class CourseUpdatesView(CourseTabView):
"""
Displays the home page for the specified course.
"""
- return super(CourseUpdatesView, self).get(request, course_id, 'courseware', **kwargs) # lint-amnesty, pylint: disable=super-with-arguments
+ return super().get(request, course_id, 'courseware', **kwargs)
def render_to_fragment(self, request, course=None, tab=None, **kwargs): # lint-amnesty, pylint: disable=arguments-differ, unused-argument
- course_id = six.text_type(course.id)
+ course_id = str(course.id)
updates_fragment_view = CourseUpdatesFragmentView()
return updates_fragment_view.render_to_fragment(request, course_id=course_id, **kwargs)
@@ -49,7 +49,7 @@ class CourseUpdatesFragmentView(EdxFragmentView):
course_key = CourseKey.from_string(course_id)
course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=True)
course_url_name = default_course_url_name(course.id)
- course_url = reverse(course_url_name, kwargs={'course_id': six.text_type(course.id)})
+ course_url = reverse(course_url_name, kwargs={'course_id': str(course.id)})
ordered_updates = get_ordered_updates(request, course)
plain_html_updates = ''
diff --git a/openedx/features/course_experience/views/welcome_message.py b/openedx/features/course_experience/views/welcome_message.py
index 7ba05e0a36..19f64a68b9 100644
--- a/openedx/features/course_experience/views/welcome_message.py
+++ b/openedx/features/course_experience/views/welcome_message.py
@@ -36,7 +36,7 @@ class WelcomeMessageFragmentView(EdxFragmentView):
return None
dismiss_url = reverse(
- 'openedx.course_experience.dismiss_welcome_message', kwargs={'course_id': six.text_type(course_key)}
+ 'openedx.course_experience.dismiss_welcome_message', kwargs={'course_id': str(course_key)}
)
context = {
diff --git a/openedx/features/course_experience/waffle.py b/openedx/features/course_experience/waffle.py
index 0fe732ea0a..8fc7e14a63 100644
--- a/openedx/features/course_experience/waffle.py
+++ b/openedx/features/course_experience/waffle.py
@@ -6,7 +6,7 @@ Miscellaneous waffle switches that both LMS and Studio need to access
from edx_toggles.toggles import LegacyWaffleSwitchNamespace
# Namespace
-WAFFLE_NAMESPACE = u'course_experience'
+WAFFLE_NAMESPACE = 'course_experience'
# Switches
# .. toggle_name: course_experience.enable_about_sidebar_html
@@ -16,7 +16,7 @@ WAFFLE_NAMESPACE = u'course_experience'
# .. toggle_use_cases: open_edx
# .. toggle_creation_date: 2018-01-26
# TODO: Replace with WaffleSwitch(). See waffle() docstring.
-ENABLE_COURSE_ABOUT_SIDEBAR_HTML = u'enable_about_sidebar_html'
+ENABLE_COURSE_ABOUT_SIDEBAR_HTML = 'enable_about_sidebar_html'
def waffle():
@@ -29,4 +29,4 @@ def waffle():
ENABLE_COURSE_ABOUT_SIDEBAR_HTML = WaffleSwitch(f'{WAFFLE_NAMESPACE}.enable_about_sidebar_html')
"""
- return LegacyWaffleSwitchNamespace(name=WAFFLE_NAMESPACE, log_prefix=u'Course Experience: ')
+ return LegacyWaffleSwitchNamespace(name=WAFFLE_NAMESPACE, log_prefix='Course Experience: ')