From dce462d6b7191c6eb10edebae9d15f948ae25ecf Mon Sep 17 00:00:00 2001 From: Cristhian Garcia Date: Fri, 11 Oct 2024 08:47:10 -0500 Subject: [PATCH 1/4] perf: add lru cache for users and courses perf: add lru to get_anonymous_user_id instead of get_user --- event_routing_backends/helpers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/event_routing_backends/helpers.py b/event_routing_backends/helpers.py index 281640fa..c2093d3f 100644 --- a/event_routing_backends/helpers.py +++ b/event_routing_backends/helpers.py @@ -6,6 +6,7 @@ import uuid from urllib.parse import parse_qs, urlparse +from functools import lru_cache from dateutil.parser import parse from django.conf import settings from django.contrib.auth import get_user_model @@ -51,7 +52,7 @@ def get_uuid5(namespace_key, name): base_namespace = uuid.uuid5(base_uuid, namespace_key) return uuid.uuid5(base_namespace, name) - +@lru_cache def get_anonymous_user_id(username_or_id, external_type): """ Generate anonymous user id. @@ -95,7 +96,6 @@ def get_anonymous_user_id(username_or_id, external_type): return anonymous_id - def get_user(username_or_id): """ Get user by username or user id. @@ -149,7 +149,7 @@ def get_user_email(username_or_id): return user_email - +@lru_cache def get_course_from_id(course_id): """ Get Course object using the `course_id`. From a8f8e98bfd8f7814f62d6e4dc091ff5a53fa7800 Mon Sep 17 00:00:00 2001 From: Cristhian Garcia Date: Tue, 15 Oct 2024 07:15:58 -0500 Subject: [PATCH 2/4] test: use a different username for a flaky test --- event_routing_backends/tests/test_helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/event_routing_backends/tests/test_helpers.py b/event_routing_backends/tests/test_helpers.py index 4e7f560e..9fdac254 100644 --- a/event_routing_backends/tests/test_helpers.py +++ b/event_routing_backends/tests/test_helpers.py @@ -53,7 +53,7 @@ def test_get_anonymous_user_id_with_error(self, mocked_external_id): mocked_external_id.add_new_user_id.return_value = (None, False) # Test that a failure to add an external id raises an error with self.assertRaises(ValueError): - get_anonymous_user_id('edx', 'XAPI') + get_anonymous_user_id('edx2', 'XAPI') # Test that an unknown user raises this error with self.assertRaises(ValueError): From 30e5c66a7af8c13bd752b11940c2a2b29402ca1d Mon Sep 17 00:00:00 2001 From: Cristhian Garcia Date: Tue, 15 Oct 2024 07:19:56 -0500 Subject: [PATCH 3/4] chore: reformat files --- event_routing_backends/helpers.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/event_routing_backends/helpers.py b/event_routing_backends/helpers.py index c2093d3f..bb533faa 100644 --- a/event_routing_backends/helpers.py +++ b/event_routing_backends/helpers.py @@ -52,6 +52,7 @@ def get_uuid5(namespace_key, name): base_namespace = uuid.uuid5(base_uuid, namespace_key) return uuid.uuid5(base_namespace, name) + @lru_cache def get_anonymous_user_id(username_or_id, external_type): """ @@ -96,6 +97,7 @@ def get_anonymous_user_id(username_or_id, external_type): return anonymous_id + def get_user(username_or_id): """ Get user by username or user id. @@ -149,6 +151,7 @@ def get_user_email(username_or_id): return user_email + @lru_cache def get_course_from_id(course_id): """ From bfedbbcf5e9f6452959df23e491fa1359e03f8b4 Mon Sep 17 00:00:00 2001 From: Cristhian Garcia Date: Tue, 15 Oct 2024 07:21:58 -0500 Subject: [PATCH 4/4] chore: reformat files --- event_routing_backends/helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/event_routing_backends/helpers.py b/event_routing_backends/helpers.py index bb533faa..2fe357cc 100644 --- a/event_routing_backends/helpers.py +++ b/event_routing_backends/helpers.py @@ -4,9 +4,9 @@ import datetime import logging import uuid +from functools import lru_cache from urllib.parse import parse_qs, urlparse -from functools import lru_cache from dateutil.parser import parse from django.conf import settings from django.contrib.auth import get_user_model