diff --git a/lms/djangoapps/ccx/tests/test_field_override_performance.py b/lms/djangoapps/ccx/tests/test_field_override_performance.py index 2496d7cb84..46d5d11aa7 100644 --- a/lms/djangoapps/ccx/tests/test_field_override_performance.py +++ b/lms/djangoapps/ccx/tests/test_field_override_performance.py @@ -239,23 +239,25 @@ class TestFieldOverrideMongoPerformance(FieldOverridePerformanceTestCase): MODULESTORE = TEST_DATA_MONGO_MODULESTORE __test__ = True + # TODO: decrease query count as part of REVO-28 + QUERY_COUNT = 33 TEST_DATA = { # (providers, course_width, enable_ccx, view_as_ccx): ( # # of sql queries to default, # # of mongo queries, # ) - ('no_overrides', 1, True, False): (31, 1), - ('no_overrides', 2, True, False): (31, 1), - ('no_overrides', 3, True, False): (31, 1), - ('ccx', 1, True, False): (31, 1), - ('ccx', 2, True, False): (31, 1), - ('ccx', 3, True, False): (31, 1), - ('no_overrides', 1, False, False): (31, 1), - ('no_overrides', 2, False, False): (31, 1), - ('no_overrides', 3, False, False): (31, 1), - ('ccx', 1, False, False): (31, 1), - ('ccx', 2, False, False): (31, 1), - ('ccx', 3, False, False): (31, 1), + ('no_overrides', 1, True, False): (QUERY_COUNT, 1), + ('no_overrides', 2, True, False): (QUERY_COUNT, 1), + ('no_overrides', 3, True, False): (QUERY_COUNT, 1), + ('ccx', 1, True, False): (QUERY_COUNT, 1), + ('ccx', 2, True, False): (QUERY_COUNT, 1), + ('ccx', 3, True, False): (QUERY_COUNT, 1), + ('no_overrides', 1, False, False): (QUERY_COUNT, 1), + ('no_overrides', 2, False, False): (QUERY_COUNT, 1), + ('no_overrides', 3, False, False): (QUERY_COUNT, 1), + ('ccx', 1, False, False): (QUERY_COUNT, 1), + ('ccx', 2, False, False): (QUERY_COUNT, 1), + ('ccx', 3, False, False): (QUERY_COUNT, 1), } @@ -266,20 +268,22 @@ class TestFieldOverrideSplitPerformance(FieldOverridePerformanceTestCase): MODULESTORE = TEST_DATA_SPLIT_MODULESTORE __test__ = True + # TODO: decrease query count as part of REVO-28 + QUERY_COUNT = 33 TEST_DATA = { - ('no_overrides', 1, True, False): (31, 3), - ('no_overrides', 2, True, False): (31, 3), - ('no_overrides', 3, True, False): (31, 3), - ('ccx', 1, True, False): (31, 3), - ('ccx', 2, True, False): (31, 3), - ('ccx', 3, True, False): (31, 3), - ('ccx', 1, True, True): (32, 3), - ('ccx', 2, True, True): (32, 3), - ('ccx', 3, True, True): (32, 3), - ('no_overrides', 1, False, False): (31, 3), - ('no_overrides', 2, False, False): (31, 3), - ('no_overrides', 3, False, False): (31, 3), - ('ccx', 1, False, False): (31, 3), - ('ccx', 2, False, False): (31, 3), - ('ccx', 3, False, False): (31, 3), + ('no_overrides', 1, True, False): (QUERY_COUNT, 3), + ('no_overrides', 2, True, False): (QUERY_COUNT, 3), + ('no_overrides', 3, True, False): (QUERY_COUNT, 3), + ('ccx', 1, True, False): (QUERY_COUNT, 3), + ('ccx', 2, True, False): (QUERY_COUNT, 3), + ('ccx', 3, True, False): (QUERY_COUNT, 3), + ('ccx', 1, True, True): (34, 3), + ('ccx', 2, True, True): (34, 3), + ('ccx', 3, True, True): (34, 3), + ('no_overrides', 1, False, False): (QUERY_COUNT, 3), + ('no_overrides', 2, False, False): (QUERY_COUNT, 3), + ('no_overrides', 3, False, False): (QUERY_COUNT, 3), + ('ccx', 1, False, False): (QUERY_COUNT, 3), + ('ccx', 2, False, False): (QUERY_COUNT, 3), + ('ccx', 3, False, False): (QUERY_COUNT, 3), } diff --git a/lms/djangoapps/courseware/tests/test_course_info.py b/lms/djangoapps/courseware/tests/test_course_info.py index accedcfd24..d6c1b68991 100644 --- a/lms/djangoapps/courseware/tests/test_course_info.py +++ b/lms/djangoapps/courseware/tests/test_course_info.py @@ -435,7 +435,9 @@ class SelfPacedCourseInfoTestCase(LoginEnrollmentTestCase, SharedModuleStoreTest self.assertEqual(resp.status_code, 200) def test_num_queries_instructor_paced(self): - self.fetch_course_info_with_queries(self.instructor_paced_course, 38, 3) + # TODO: decrease query count as part of REVO-28 + self.fetch_course_info_with_queries(self.instructor_paced_course, 40, 3) def test_num_queries_self_paced(self): - self.fetch_course_info_with_queries(self.self_paced_course, 38, 3) + # TODO: decrease query count as part of REVO-28 + self.fetch_course_info_with_queries(self.self_paced_course, 40, 3) diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index dde8df74e4..ac5a19e5d2 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -213,11 +213,12 @@ class IndexQueryTestCase(ModuleStoreTestCase): NUM_PROBLEMS = 20 @ddt.data( - (ModuleStoreEnum.Type.mongo, 10, 169), - (ModuleStoreEnum.Type.split, 4, 165), + (ModuleStoreEnum.Type.mongo, 10, 171), + (ModuleStoreEnum.Type.split, 4, 167), ) @ddt.unpack def test_index_query_counts(self, store_type, expected_mongo_query_count, expected_mysql_query_count): + # TODO: decrease query count as part of REVO-28 ContentTypeGatingConfig.objects.create(enabled=True, enabled_as_of=datetime(2018, 1, 1)) with self.store.default_store(store_type): course = CourseFactory.create() @@ -1439,12 +1440,13 @@ class ProgressPageTests(ProgressPageBaseTests): self.assertContains(resp, u"Download Your Certificate") @ddt.data( - (True, 51), - (False, 50) + (True, 53), + (False, 52) ) @ddt.unpack def test_progress_queries_paced_courses(self, self_paced, query_count): """Test that query counts remain the same for self-paced and instructor-paced courses.""" + # TODO: decrease query count as part of REVO-28 ContentTypeGatingConfig.objects.create(enabled=True, enabled_as_of=datetime(2018, 1, 1)) self.setup_course(self_paced=self_paced) with self.assertNumQueries(query_count, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST), check_mongo_calls(1): @@ -1452,8 +1454,8 @@ class ProgressPageTests(ProgressPageBaseTests): @patch.dict(settings.FEATURES, {'ASSUME_ZERO_GRADE_IF_ABSENT_FOR_ALL_TESTS': False}) @ddt.data( - (False, 58, 38), - (True, 50, 34) + (False, 60, 40), + (True, 52, 36) ) @ddt.unpack def test_progress_queries(self, enable_waffle, initial, subsequent): diff --git a/lms/djangoapps/experiments/utils.py b/lms/djangoapps/experiments/utils.py index 743566eca1..5cea8628df 100644 --- a/lms/djangoapps/experiments/utils.py +++ b/lms/djangoapps/experiments/utils.py @@ -50,7 +50,15 @@ def get_experiment_user_metadata_context(course, user): enrollment_mode = None enrollment_time = None enrollment = None + # TODO: clean up as part of REVO-28 (START) + has_non_audit_enrollments = None + # TODO: clean up as part of REVO-28 (END) try: + # TODO: clean up as part of REVO-28 (START) + user_enrollments = CourseEnrollment.objects.select_related('course').filter(user_id=user.id) + audit_enrollments = user_enrollments.filter(mode='audit') + has_non_audit_enrollments = (len(audit_enrollments) != len(user_enrollments)) + # TODO: clean up as part of REVO-28 (END) enrollment = CourseEnrollment.objects.select_related( 'course' ).get(user_id=user.id, course_id=course.id) @@ -83,4 +91,7 @@ def get_experiment_user_metadata_context(course, user): 'has_staff_access': has_staff_access, 'forum_roles': forum_roles, 'partition_groups': user_partitions, + # TODO: clean up as part of REVO-28 (START) + 'has_non_audit_enrollments': has_non_audit_enrollments, + # TODO: clean up as part of REVO-28 (END) } diff --git a/lms/templates/user_metadata.html b/lms/templates/user_metadata.html index cf2a354c6e..b55fb313c5 100644 --- a/lms/templates/user_metadata.html +++ b/lms/templates/user_metadata.html @@ -18,6 +18,9 @@ user_metadata = { 'has_staff_access', 'forum_roles', 'partition_groups', + # TODO: clean up as part of REVO-28 (START) + 'has_non_audit_enrollments', + # TODO: clean up as part of REtest_VO-28 (END) ) } diff --git a/openedx/features/course_experience/tests/views/test_course_home.py b/openedx/features/course_experience/tests/views/test_course_home.py index 1b34ddc746..ce99fa7733 100644 --- a/openedx/features/course_experience/tests/views/test_course_home.py +++ b/openedx/features/course_experience/tests/views/test_course_home.py @@ -194,7 +194,8 @@ class TestCourseHomePage(CourseHomePageTestCase): course_home_url(self.course) # Fetch the view and verify the query counts - with self.assertNumQueries(76, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST): + # TODO: decrease query count as part of REVO-28 + with self.assertNumQueries(78, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST): with check_mongo_calls(4): url = course_home_url(self.course) self.client.get(url) diff --git a/openedx/features/course_experience/tests/views/test_course_updates.py b/openedx/features/course_experience/tests/views/test_course_updates.py index ab504262f8..809640d55e 100644 --- a/openedx/features/course_experience/tests/views/test_course_updates.py +++ b/openedx/features/course_experience/tests/views/test_course_updates.py @@ -129,7 +129,8 @@ class TestCourseUpdatesPage(SharedModuleStoreTestCase): course_updates_url(self.course) # Fetch the view and verify that the query counts haven't changed - with self.assertNumQueries(50, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST): + # TODO: decrease query count as part of REVO-28 + with self.assertNumQueries(52, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST): with check_mongo_calls(4): url = course_updates_url(self.course) self.client.get(url)