aboutsummaryrefslogtreecommitdiff
path: root/tests/managers/thl/test_user_manager/test_redis.py
diff options
context:
space:
mode:
authorMax Nanis2026-03-06 16:49:46 -0500
committerMax Nanis2026-03-06 16:49:46 -0500
commit91d040211a4ed6e4157896256a762d3854777b5e (patch)
treecd95922ea4257dc8d3f4e4cbe8534474709a20dc /tests/managers/thl/test_user_manager/test_redis.py
downloadgeneralresearch-91d040211a4ed6e4157896256a762d3854777b5e.tar.gz
generalresearch-91d040211a4ed6e4157896256a762d3854777b5e.zip
Initial commitv3.3.4
Diffstat (limited to 'tests/managers/thl/test_user_manager/test_redis.py')
-rw-r--r--tests/managers/thl/test_user_manager/test_redis.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/managers/thl/test_user_manager/test_redis.py b/tests/managers/thl/test_user_manager/test_redis.py
new file mode 100644
index 0000000..a69519e
--- /dev/null
+++ b/tests/managers/thl/test_user_manager/test_redis.py
@@ -0,0 +1,80 @@
+import pytest
+
+from generalresearch.managers.base import Permission
+
+
+class TestUserManagerRedis:
+
+ def test_get_notset(self, user_manager, user):
+ user_manager.clear_user_inmemory_cache(user=user)
+ assert user_manager.redis_user_manager.get_user(user_id=user.user_id) is None
+
+ def test_get_user_id(self, user_manager, user):
+ user_manager.redis_user_manager.set_user(user=user)
+
+ assert user_manager.redis_user_manager.get_user(user_id=user.user_id) == user
+
+ def test_get_uuid(self, user_manager, user):
+ user_manager.redis_user_manager.set_user(user=user)
+
+ assert user_manager.redis_user_manager.get_user(user_uuid=user.uuid) == user
+
+ def test_get_ubp(self, user_manager, user):
+ user_manager.redis_user_manager.set_user(user=user)
+
+ assert (
+ user_manager.redis_user_manager.get_user(
+ product_id=user.product_id, product_user_id=user.product_user_id
+ )
+ == user
+ )
+
+ @pytest.mark.skip(reason="TODO")
+ def test_set(self):
+ # I mean, the sets are implicitly tested by the get tests above. no point
+ pass
+
+ def test_get_with_cache_prefix(self, settings, user, thl_web_rw, thl_web_rr):
+ """
+ Confirm the prefix functionality is working; we do this so it
+ is easier to migrate between any potentially breaking versions
+ if we don't want any broken keys; not as important after
+ pydantic usage...
+ """
+ from generalresearch.managers.thl.user_manager.user_manager import (
+ UserManager,
+ )
+
+ um1 = UserManager(
+ pg_config=thl_web_rw,
+ pg_config_rr=thl_web_rr,
+ sql_permissions=[Permission.UPDATE, Permission.CREATE],
+ redis=settings.redis,
+ redis_timeout=settings.redis_timeout,
+ )
+
+ um2 = UserManager(
+ pg_config=thl_web_rw,
+ pg_config_rr=thl_web_rr,
+ sql_permissions=[Permission.UPDATE, Permission.CREATE],
+ redis=settings.redis,
+ redis_timeout=settings.redis_timeout,
+ cache_prefix="user-lookup-v2",
+ )
+
+ um1.get_or_create_user(
+ product_id=user.product_id, product_user_id=user.product_user_id
+ )
+ um2.get_or_create_user(
+ product_id=user.product_id, product_user_id=user.product_user_id
+ )
+
+ res1 = um1.redis_user_manager.client.get(f"user-lookup:user_id:{user.user_id}")
+ assert res1 is not None
+
+ res2 = um2.redis_user_manager.client.get(
+ f"user-lookup-v2:user_id:{user.user_id}"
+ )
+ assert res2 is not None
+
+ assert res1 == res2