feat: Learner Home experimental rollout (#31642)
* feat: add experimental redirect for Learner Home As a request by Data, this system repeatably groups users into experiment groups. Based on end of user ID, users that fall beneath a threshold (LEARNER_HOME_MFE_REDIRECT_PERCENTAGE) will be redirected to the Learner Home experience, if enabled. Otherwise, learners will see the legacy dashboard. * feat: add learner home redirect percentage setting Adds LEARNER_HOME_MFE_REDIRECT_PERCENTAGE to common settings to avoid a failed lookup. Can be overridden through config. * refactor: change test to not leak implementation
This commit is contained in:
@@ -235,13 +235,14 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin,
|
||||
response = self.client.get(self.path)
|
||||
self.assertRedirects(response, reverse('account_settings'))
|
||||
|
||||
def test_redirect_to_learner_home(self):
|
||||
@patch('common.djangoapps.student.views.dashboard.should_redirect_to_learner_home_mfe')
|
||||
def test_redirect_to_learner_home(self, mock_should_redirect_to_learner_home_mfe):
|
||||
"""
|
||||
if learner home mfe is enabled, redirect to learner home mfe
|
||||
"""
|
||||
with patch('lms.djangoapps.learner_home.waffle.ENABLE_LEARNER_HOME_MFE.is_enabled', return_value=True):
|
||||
response = self.client.get(self.path)
|
||||
self.assertRedirects(response, settings.LEARNER_HOME_MICROFRONTEND_URL, fetch_redirect_response=False)
|
||||
mock_should_redirect_to_learner_home_mfe.return_value = True
|
||||
response = self.client.get(self.path)
|
||||
self.assertRedirects(response, settings.LEARNER_HOME_MICROFRONTEND_URL, fetch_redirect_response=False)
|
||||
|
||||
def test_course_cert_available_message_after_course_end(self):
|
||||
course_key = CourseKey.from_string('course-v1:edX+DemoX+Demo_Course')
|
||||
|
||||
@@ -521,7 +521,7 @@ def student_dashboard(request): # lint-amnesty, pylint: disable=too-many-statem
|
||||
if not UserProfile.objects.filter(user=user).exists():
|
||||
return redirect(reverse('account_settings'))
|
||||
|
||||
if should_redirect_to_learner_home_mfe():
|
||||
if should_redirect_to_learner_home_mfe(user):
|
||||
return redirect(settings.LEARNER_HOME_MICROFRONTEND_URL)
|
||||
|
||||
platform_name = configuration_helpers.get_value("platform_name", settings.PLATFORM_NAME)
|
||||
|
||||
Reference in New Issue
Block a user