Use relative dates flag for dates widget v2

Switch from a separate waffle flag for the dates widget v2 work
and just use the relative dates experiment flag instead.
This commit is contained in:
Michael Terry
2020-03-05 15:25:10 -05:00
parent 919dc5760a
commit 24aaebdfa5
8 changed files with 37 additions and 21 deletions

View File

@@ -4,6 +4,7 @@
from datetime import datetime, timedelta
import crum
import ddt
import waffle
from django.contrib.messages.middleware import MessageMiddleware
@@ -42,7 +43,7 @@ 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 (
DATE_WIDGET_V2_FLAG, UNIFIED_COURSE_TAB_FLAG, UPGRADE_DEADLINE_MESSAGE, CourseHomeMessages
RELATIVE_DATES_FLAG, UNIFIED_COURSE_TAB_FLAG, UPGRADE_DEADLINE_MESSAGE, CourseHomeMessages
)
from student.tests.factories import TEST_PASSWORD, CourseEnrollmentFactory, UserFactory
from xmodule.modulestore import ModuleStoreEnum
@@ -58,6 +59,13 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
super(CourseDateSummaryTest, self).setUp()
SelfPacedConfiguration.objects.create(enable_course_home_improvements=True)
def make_request(self, user):
request = RequestFactory().request()
request.user = user
self.addCleanup(crum.set_current_request, None)
crum.set_current_request(request)
return request
def test_course_info_feature_flag(self):
SelfPacedConfiguration(enable_course_home_improvements=False).save()
course = create_course_run()
@@ -135,7 +143,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
CourseEnrollmentFactory(course_id=course.id, user=user, mode=CourseMode.VERIFIED)
self.assert_block_types(course, user, expected_blocks)
@override_waffle_flag(DATE_WIDGET_V2_FLAG, active=True)
@RELATIVE_DATES_FLAG.override(active=True)
def test_enabled_block_types_with_assignments(self): # pylint: disable=too-many-statements
"""
Creates a course with multiple subsections to test all of the different
@@ -144,8 +152,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
"""
course = create_course_run(days_till_start=-100)
user = create_user()
request = RequestFactory().request()
request.user = user
request = self.make_request(user)
CourseEnrollmentFactory(course_id=course.id, user=user, mode=CourseMode.VERIFIED)
now = datetime.now(utc)
assignment_title_html = ['<a href=', '</a>']
@@ -295,10 +302,11 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
for html_tag in assignment_title_html:
self.assertIn(html_tag, assignment_title)
@override_waffle_flag(DATE_WIDGET_V2_FLAG, active=True)
@RELATIVE_DATES_FLAG.override(active=True)
def test_enabled_block_types_with_expired_course(self):
course = create_course_run(days_till_start=-100)
user = create_user()
self.make_request(user)
# These two lines are to trigger the course expired block to be rendered
CourseEnrollmentFactory(course_id=course.id, user=user, mode=CourseMode.AUDIT)
CourseDurationLimitConfig.objects.create(enabled=True, enabled_as_of=datetime(2018, 1, 1, tzinfo=utc))
@@ -470,7 +478,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
{'weeks_to_complete': 7}, # Weeks to complete > time til end (end date shown)
{'weeks_to_complete': 4}, # Weeks to complete < time til end (end date not shown)
)
@override_waffle_flag(DATE_WIDGET_V2_FLAG, active=True)
@RELATIVE_DATES_FLAG.override(active=True)
def test_course_end_date_self_paced(self, cr_details):
"""
In self-paced courses, the end date will now only show up if the learner
@@ -484,6 +492,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
course = CourseFactory.create(
start=now + timedelta(days=-7), end=now + timedelta(weeks=end_timedelta_number), self_paced=True)
user = create_user()
self.make_request(user)
with patch('lms.djangoapps.courseware.date_summary.get_course_run_details') as mock_get_cr_details:
mock_get_cr_details.return_value = cr_details
block = CourseEndDate(course, user)

View File

@@ -11,6 +11,7 @@ from datetime import datetime, timedelta
from pytz import utc
from uuid import uuid4
import crum
import ddt
import six
from completion.test_utils import CompletionWaffleTestMixin
@@ -79,7 +80,7 @@ from openedx.features.course_duration_limits.models import CourseDurationLimitCo
from openedx.features.course_experience import (
COURSE_ENABLE_UNENROLLED_ACCESS_FLAG,
COURSE_OUTLINE_PAGE_FLAG,
DATE_WIDGET_V2_FLAG,
RELATIVE_DATES_FLAG,
UNIFIED_COURSE_TAB_FLAG
)
from openedx.features.course_experience.tests.views.helpers import add_course_mode
@@ -3156,10 +3157,12 @@ class DatesTabTestCase(ModuleStoreTestCase):
""" Returns the HTML for the progress page """
return self.client.get(reverse('dates', args=[six.text_type(course.id)]))
@override_waffle_flag(DATE_WIDGET_V2_FLAG, active=True)
@RELATIVE_DATES_FLAG.override(active=True)
def test_defaults(self):
request = RequestFactory().request()
request.user = self.user
self.addCleanup(crum.set_current_request, None)
crum.set_current_request(request)
enrollment = CourseEnrollmentFactory(course_id=self.course.id, user=self.user, mode=CourseMode.VERIFIED)
now = datetime.now(utc)
with self.store.bulk_operations(self.course.id):