From c762c1f6950a95037168d94cbc255b806fc10603 Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Tue, 21 Jan 2025 11:13:11 -0500 Subject: [PATCH] perf: update edx-when to 2.5.1 for performance fix This addresses an issue where get_schedule_for_user was making an excessive number of calls to the database. --- lms/djangoapps/courseware/tests/test_views.py | 2 +- .../grades/tests/test_course_grade_factory.py | 18 +++++++++--------- .../schedules/tests/test_resolvers.py | 2 +- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/doc.txt | 2 +- requirements/edx/testing.txt | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index cdc59e48c0..2bedcd0d8e 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -341,7 +341,7 @@ class IndexQueryTestCase(ModuleStoreTestCase): self.client.login(username=self.user.username, password=self.user_password) CourseEnrollment.enroll(self.user, course.id) - with self.assertNumQueries(177, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST): + with self.assertNumQueries(154, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST): with check_mongo_calls(3): url = reverse( 'courseware_section', diff --git a/lms/djangoapps/grades/tests/test_course_grade_factory.py b/lms/djangoapps/grades/tests/test_course_grade_factory.py index c47e80a3da..606c935e40 100644 --- a/lms/djangoapps/grades/tests/test_course_grade_factory.py +++ b/lms/djangoapps/grades/tests/test_course_grade_factory.py @@ -68,35 +68,35 @@ class TestCourseGradeFactory(GradeTestBase): self.sequence2.display_name ] - with self.assertNumQueries(5), mock_get_score(1, 2): + with self.assertNumQueries(3), mock_get_score(1, 2): _assert_read(expected_pass=False, expected_percent=0) # start off with grade of 0 - num_queries = 43 + num_queries = 42 with self.assertNumQueries(num_queries), mock_get_score(1, 2): grade_factory.update(self.request.user, self.course, force_update_subsections=True) - with self.assertNumQueries(4): + with self.assertNumQueries(3): _assert_read(expected_pass=True, expected_percent=0.5) # updated to grade of .5 - num_queries = 7 + num_queries = 6 with self.assertNumQueries(num_queries), mock_get_score(1, 4): grade_factory.update(self.request.user, self.course, force_update_subsections=False) - with self.assertNumQueries(4): + with self.assertNumQueries(3): _assert_read(expected_pass=True, expected_percent=0.5) # NOT updated to grade of .25 - num_queries = 19 + num_queries = 18 with self.assertNumQueries(num_queries), mock_get_score(2, 2): grade_factory.update(self.request.user, self.course, force_update_subsections=True) - with self.assertNumQueries(4): + with self.assertNumQueries(3): _assert_read(expected_pass=True, expected_percent=1.0) # updated to grade of 1.0 - num_queries = 29 + num_queries = 28 with self.assertNumQueries(num_queries), mock_get_score(0, 0): # the subsection now is worth zero grade_factory.update(self.request.user, self.course, force_update_subsections=True) - with self.assertNumQueries(4): + with self.assertNumQueries(3): _assert_read(expected_pass=False, expected_percent=0.0) # updated to grade of 0.0 @ddt.data((True, False)) diff --git a/openedx/core/djangoapps/schedules/tests/test_resolvers.py b/openedx/core/djangoapps/schedules/tests/test_resolvers.py index 5c2b592b8e..a23c9dbb21 100644 --- a/openedx/core/djangoapps/schedules/tests/test_resolvers.py +++ b/openedx/core/djangoapps/schedules/tests/test_resolvers.py @@ -274,7 +274,7 @@ class TestCourseNextSectionUpdateResolver(SchedulesResolverTestMixin, ModuleStor def test_schedule_context(self): resolver = self.create_resolver() # using this to make sure the select_related stays intact - with self.assertNumQueries(30): + with self.assertNumQueries(26): sc = resolver.get_schedules() schedules = list(sc) apple_logo_url = 'http://email-media.s3.amazonaws.com/edX/2021/store_apple_229x78.jpg' diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 265941c230..929dd9d5ac 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -540,7 +540,7 @@ edx-toggles==5.2.0 # ora2 edx-token-utils==0.2.1 # via -r requirements/edx/kernel.in -edx-when==2.5.0 +edx-when==2.5.1 # via # -r requirements/edx/kernel.in # edx-proctoring diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index fdb65b5626..becf51d58f 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -849,7 +849,7 @@ edx-token-utils==0.2.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt -edx-when==2.5.0 +edx-when==2.5.1 # via # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index 19481db227..9b68c87945 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -631,7 +631,7 @@ edx-toggles==5.2.0 # ora2 edx-token-utils==0.2.1 # via -r requirements/edx/base.txt -edx-when==2.5.0 +edx-when==2.5.1 # via # -r requirements/edx/base.txt # edx-proctoring diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index ddb080dfaa..4277698675 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -654,7 +654,7 @@ edx-toggles==5.2.0 # ora2 edx-token-utils==0.2.1 # via -r requirements/edx/base.txt -edx-when==2.5.0 +edx-when==2.5.1 # via # -r requirements/edx/base.txt # edx-proctoring