Skip to content

Commit d423775

Browse files
committed
test: Replace calls to reverse('courseware')
We want to remove this page and URL endpoint so we're removing all the references in the code that might point to this page. It was replaced by the sequences page in the Learning MFE years ago but the old pages were never cleaned up. We are replacing the calls with the URL for the courseware in the learning MFE. See #35803 for more details.
1 parent 502a0d7 commit d423775

6 files changed

Lines changed: 25 additions & 16 deletions

File tree

common/djangoapps/student/tests/tests.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
from openedx.core.djangoapps.programs.tests.mixins import ProgramsApiConfigMixin
4848
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
4949
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase, skip_unless_lms
50+
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
5051
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase # lint-amnesty, pylint: disable=wrong-import-order
5152
from xmodule.modulestore.tests.factories import CourseFactory, check_mongo_calls # lint-amnesty, pylint: disable=wrong-import-order
5253
from xmodule.data import CertificatesDisplayBehaviors # lint-amnesty, pylint: disable=wrong-import-order
@@ -907,15 +908,15 @@ def _enroll_through_view(self, course):
907908
)
908909
return response
909910

910-
@ddt.data(
911-
(True, 'courseware'),
912-
(False, None),
913-
)
914-
@ddt.unpack
915-
def test_enrollment_url(self, waffle_flag_enabled, returned_view):
916-
with override_waffle_switch(REDIRECT_TO_COURSEWARE_AFTER_ENROLLMENT, waffle_flag_enabled):
911+
def test_enrollment_url_without_redirect(self):
912+
with override_waffle_switch(REDIRECT_TO_COURSEWARE_AFTER_ENROLLMENT, False):
913+
response = self._enroll_through_view(self.course)
914+
assert response.content.decode('utf8') == ''
915+
916+
def test_enrollment_with_redirect(self):
917+
with override_waffle_switch(REDIRECT_TO_COURSEWARE_AFTER_ENROLLMENT, True):
917918
response = self._enroll_through_view(self.course)
918-
data = reverse(returned_view, args=[str(self.course.id)]) if returned_view else ''
919+
data = make_learning_mfe_courseware_url(self.course.id)
919920
assert response.content.decode('utf8') == data
920921

921922
def test_enroll_as_default(self):

common/djangoapps/student/views/management.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
)
6363
from openedx.core.djangolib.markup import HTML, Text
6464
from openedx.core.lib.api.authentication import BearerAuthenticationAllowInactiveUser
65+
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
6566
from openedx.features.discounts.applicability import FIRST_PURCHASE_DISCOUNT_OVERRIDE_FLAG
6667
from openedx.features.enterprise_support.utils import is_enterprise_learner
6768
from common.djangoapps.student.email_helpers import generate_activation_email_context
@@ -408,7 +409,7 @@ def change_enrollment(request, check_access=True):
408409
return HttpResponse(redirect_url)
409410

410411
if CourseEntitlement.check_for_existing_entitlement_and_enroll(user=user, course_run_key=course_id):
411-
return HttpResponse(reverse('courseware', args=[str(course_id)]))
412+
return HttpResponse(make_learning_mfe_courseware_url(course_id))
412413

413414
# Check that auto enrollment is allowed for this course
414415
# (= the course is NOT behind a paywall)
@@ -438,7 +439,7 @@ def change_enrollment(request, check_access=True):
438439
)
439440

440441
if should_redirect_to_courseware_after_enrollment():
441-
return HttpResponse(reverse('courseware', args=[str(course_id)]))
442+
return HttpResponse(make_learning_mfe_courseware_url(course_id))
442443
else:
443444
return HttpResponse()
444445
elif action == "unenroll":

lms/djangoapps/commerce/api/v0/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import logging
55
from urllib.parse import urljoin
66

7-
from django.urls import reverse
87
from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication
98
from opaque_keys import InvalidKeyError
109
from opaque_keys.edx.keys import CourseKey
@@ -24,6 +23,7 @@
2423
from openedx.core.djangoapps.enrollments.views import EnrollmentCrossDomainSessionAuth
2524
from openedx.core.djangoapps.user_api.preferences.api import update_email_opt_in
2625
from openedx.core.lib.api.authentication import BearerAuthenticationAllowInactiveUser
26+
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
2727

2828
from ...constants import Messages
2929
from ...http import DetailResponse
@@ -122,7 +122,7 @@ def post(self, request, *args, **kwargs): # lint-amnesty, pylint: disable=unuse
122122
if CourseEntitlement.check_for_existing_entitlement_and_enroll(user=user, course_run_key=course_key):
123123
return JsonResponse(
124124
{
125-
'redirect_destination': reverse('courseware', args=[str(course_id)]),
125+
'redirect_destination': make_learning_mfe_courseware_url(course_id),
126126
},
127127
)
128128

lms/djangoapps/course_wiki/tests/tests.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from django.urls import reverse
88

99
from lms.djangoapps.courseware.tests.tests import LoginEnrollmentTestCase
10+
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
1011
from openedx.features.enterprise_support.tests.mixins.enterprise import EnterpriseTestConsentRequired
1112
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase # lint-amnesty, pylint: disable=wrong-import-order
1213
from xmodule.modulestore.tests.factories import CourseFactory # lint-amnesty, pylint: disable=wrong-import-order
@@ -121,7 +122,7 @@ def test_course_navigator(self):
121122
self.create_course_page(self.toy)
122123

123124
course_wiki_page = reverse('wiki:get', kwargs={'path': self.toy.wiki_slug + '/'})
124-
referer = reverse("courseware", kwargs={'course_id': str(self.toy.id)})
125+
referer = make_learning_mfe_courseware_url(self.toy.id)
125126

126127
resp = self.client.get(course_wiki_page, follow=True, HTTP_REFERER=referer)
127128

@@ -141,7 +142,7 @@ def test_wiki_not_accessible_when_not_enrolled(self):
141142

142143
self.login(self.student, self.password)
143144
course_wiki_page = reverse('wiki:get', kwargs={'path': self.toy.wiki_slug + '/'})
144-
referer = reverse("courseware", kwargs={'course_id': str(self.toy.id)})
145+
referer = make_learning_mfe_courseware_url(self.toy.id)
145146

146147
# When not enrolled, we should get a 302
147148
resp = self.client.get(course_wiki_page, follow=False, HTTP_REFERER=referer)
@@ -195,7 +196,7 @@ def test_create_wiki_with_long_course_id(self):
195196
self.create_course_page(course)
196197

197198
course_wiki_page = reverse('wiki:get', kwargs={'path': course.wiki_slug + '/'})
198-
referer = reverse("courseware", kwargs={'course_id': str(course.id)})
199+
referer = make_learning_mfe_courseware_url(self.toy.id)
199200

200201
resp = self.client.get(course_wiki_page, follow=True, HTTP_REFERER=referer)
201202
assert resp.status_code == 200

openedx/core/djangoapps/user_api/tests/test_middleware.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77
from django.test.client import RequestFactory
88

99
from common.djangoapps.student.tests.factories import AnonymousUserFactory, UserFactory
10+
from openedx.core.djangolib.testing.utils import skip_unless_lms
1011

1112
from ..middleware import UserTagsEventContextMiddleware
1213
from ..tests.factories import UserCourseTagFactory
1314

1415

16+
# This middleware only gets installed in the LMS so no need to test
17+
# it in the CMS context.
18+
@skip_unless_lms
1519
class TagsMiddlewareTest(TestCase):
1620
"""
1721
Test the UserTagsEventContextMiddleware

openedx/features/course_experience/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ def default_course_url(course_key):
104104
from .url_helpers import get_learning_mfe_home_url
105105

106106
if DISABLE_COURSE_OUTLINE_PAGE_FLAG.is_enabled(course_key):
107-
return reverse('courseware', args=[str(course_key)])
107+
# Prevent a circular dependency
108+
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
109+
return make_learning_mfe_courseware_url(course_key)
108110

109111
return get_learning_mfe_home_url(course_key, url_fragment='home')
110112

0 commit comments

Comments
 (0)