Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions common/djangoapps/student/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
from openedx.core.djangoapps.programs.tests.mixins import ProgramsApiConfigMixin
from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase, skip_unless_lms
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase # lint-amnesty, pylint: disable=wrong-import-order
from xmodule.modulestore.tests.factories import CourseFactory, check_mongo_calls # lint-amnesty, pylint: disable=wrong-import-order
from xmodule.data import CertificatesDisplayBehaviors # lint-amnesty, pylint: disable=wrong-import-order
Expand Down Expand Up @@ -907,15 +908,15 @@ def _enroll_through_view(self, course):
)
return response

@ddt.data(
(True, 'courseware'),
(False, None),
)
@ddt.unpack
def test_enrollment_url(self, waffle_flag_enabled, returned_view):
with override_waffle_switch(REDIRECT_TO_COURSEWARE_AFTER_ENROLLMENT, waffle_flag_enabled):
def test_enrollment_url_without_redirect(self):
with override_waffle_switch(REDIRECT_TO_COURSEWARE_AFTER_ENROLLMENT, False):
response = self._enroll_through_view(self.course)
assert response.content.decode('utf8') == ''

def test_enrollment_with_redirect(self):
with override_waffle_switch(REDIRECT_TO_COURSEWARE_AFTER_ENROLLMENT, True):
response = self._enroll_through_view(self.course)
data = reverse(returned_view, args=[str(self.course.id)]) if returned_view else ''
data = make_learning_mfe_courseware_url(self.course.id)
assert response.content.decode('utf8') == data

def test_enroll_as_default(self):
Expand Down
5 changes: 3 additions & 2 deletions common/djangoapps/student/views/management.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
)
from openedx.core.djangolib.markup import HTML, Text
from openedx.core.lib.api.authentication import BearerAuthenticationAllowInactiveUser
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url
from openedx.features.discounts.applicability import FIRST_PURCHASE_DISCOUNT_OVERRIDE_FLAG
from openedx.features.enterprise_support.utils import is_enterprise_learner
from common.djangoapps.student.email_helpers import generate_activation_email_context
Expand Down Expand Up @@ -408,7 +409,7 @@ def change_enrollment(request, check_access=True):
return HttpResponse(redirect_url)

if CourseEntitlement.check_for_existing_entitlement_and_enroll(user=user, course_run_key=course_id):
return HttpResponse(reverse('courseware', args=[str(course_id)]))
return HttpResponse(make_learning_mfe_courseware_url(course_id))

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

if should_redirect_to_courseware_after_enrollment():
return HttpResponse(reverse('courseware', args=[str(course_id)]))
return HttpResponse(make_learning_mfe_courseware_url(course_id))
else:
return HttpResponse()
elif action == "unenroll":
Expand Down
4 changes: 2 additions & 2 deletions lms/djangoapps/commerce/api/v0/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import logging
from urllib.parse import urljoin

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

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

Expand Down
7 changes: 4 additions & 3 deletions lms/djangoapps/course_wiki/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from django.urls import reverse

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

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

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

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

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

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

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

resp = self.client.get(course_wiki_page, follow=True, HTTP_REFERER=referer)
assert resp.status_code == 200
Expand Down
5 changes: 3 additions & 2 deletions lms/djangoapps/courseware/tests/test_navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from common.djangoapps.student.tests.factories import GlobalStaffFactory
from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase, set_preview_mode
from openedx.features.course_experience import DISABLE_COURSE_OUTLINE_PAGE_FLAG
from openedx.features.course_experience.url_helpers import make_learning_mfe_courseware_url


@set_preview_mode(True)
Expand Down Expand Up @@ -111,7 +112,7 @@ def test_chrome_settings(self):
assert ('course-navigation' in response.content.decode('utf-8')) == accordion

self.assertTabInactive('progress', response)
self.assertTabActive('courseware', response)
self.assertTabActive(make_learning_mfe_courseware_url(self.course.id), response)

response = self.client.get(reverse('courseware_section', kwargs={
'course_id': str(self.course.id),
Expand All @@ -120,7 +121,7 @@ def test_chrome_settings(self):
}))

self.assertTabActive('progress', response)
self.assertTabInactive('courseware', response)
self.assertTabInactive(make_learning_mfe_courseware_url(self.course.id), response)

@override_settings(SESSION_INACTIVITY_TIMEOUT_IN_SECONDS=1)
def test_inactive_session_timeout(self):
Expand Down
9 changes: 6 additions & 3 deletions openedx/core/djangoapps/user_api/tests/test_middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,18 @@
from django.http import HttpResponse
from django.test import TestCase
from django.test.client import RequestFactory
from django.urls import reverse

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

from ..middleware import UserTagsEventContextMiddleware
from ..tests.factories import UserCourseTagFactory


# This middleware only gets installed in the LMS so no need to test
# it in the CMS context.
@skip_unless_lms
class TagsMiddlewareTest(TestCase):
"""
Test the UserTagsEventContextMiddleware
Expand All @@ -25,9 +30,7 @@ def setUp(self):
self.course_id = 'mock/course/id'
self.request_factory = RequestFactory()

# TODO: Make it so we can use reverse. Appears to fail depending on the order in which tests are run
#self.request = RequestFactory().get(reverse('courseware', kwargs={'course_id': self.course_id}))
self.request = RequestFactory().get(f'/courses/{self.course_id}/courseware')
self.request = RequestFactory().get(reverse('progress', kwargs={'course_id': self.course_id}))
self.request.user = self.user

self.response = Mock(spec=HttpResponse)
Expand Down
4 changes: 3 additions & 1 deletion openedx/features/course_experience/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ def default_course_url(course_key):
from .url_helpers import get_learning_mfe_home_url

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

return get_learning_mfe_home_url(course_key, url_fragment='home')

Expand Down
Loading