From dbe31e3c482f8de1c0772775719c071adfb3d8c6 Mon Sep 17 00:00:00 2001 From: Carla Duarte Date: Mon, 15 Mar 2021 16:05:09 -0400 Subject: [PATCH] AA-212: add masquerade test for progress tab --- .../progress/v1/tests/test_views.py | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py b/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py index c4c5fc04ea..edebe86879 100644 --- a/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py +++ b/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py @@ -79,17 +79,21 @@ class ProgressTabTestViews(BaseCourseHomeTests): response = self.client.get(self.url) assert response.status_code == 404 - # TODO: (AA-212) implement masquerade - # def test_masquerade(self): - # user = UserFactory() - # set_user_preference(user, 'time_zone', 'Asia/Tokyo') - # CourseEnrollment.enroll(user, self.course.id) - # - # self.switch_to_staff() # needed for masquerade - # - # # Sanity check on our normal user - # assert self.client.get(self.url).data['user_timezone'] is None - # - # # Now switch users and confirm we get a different result - # self.update_masquerade(username=user.username) - # assert self.client.get(self.url).data['user_timezone'] == 'Asia/Tokyo' + @override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True) + @override_waffle_flag(COURSE_HOME_MICROFRONTEND_PROGRESS_TAB, active=True) + def test_masquerade(self): + # Enroll a verified user + verified_user = UserFactory(is_staff=False) + CourseEnrollment.enroll(verified_user, self.course.id, CourseMode.VERIFIED) + + # Enroll self in course + CourseEnrollment.enroll(self.user, self.course.id) + response = self.client.get(self.url) + assert response.status_code == 200 + + self.switch_to_staff() # needed for masquerade + assert self.client.get(self.url).data.get('enrollment_mode') is None + + # Masquerade as verified user + self.update_masquerade(username=verified_user.username) + assert self.client.get(self.url).data.get('enrollment_mode') == 'verified'