From 2e9cdf15ab96dcd58f279b795e1c886c0e4f4660 Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Mon, 28 Nov 2022 11:33:28 +0000 Subject: [PATCH 1/2] Autostart a redis instance in nix shell. As a part of test environment, an unprivileged redis server is started on localhost:6379. Redis connection pool detects when it is run in a development nix shell and uses this port instead of a production unix socket. This way, redis tests pass even on computers without redis installed. --- selfprivacy_api/utils/redis_pool.py | 17 +++++++++++++---- shell.nix | 5 +++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/selfprivacy_api/utils/redis_pool.py b/selfprivacy_api/utils/redis_pool.py index a87049c..2f2cf21 100644 --- a/selfprivacy_api/utils/redis_pool.py +++ b/selfprivacy_api/utils/redis_pool.py @@ -3,6 +3,7 @@ Redis pool module for selfprivacy_api """ import redis from selfprivacy_api.utils.singleton_metaclass import SingletonMetaclass +from os import environ REDIS_SOCKET = "/run/redis-sp-api/redis.sock" @@ -13,10 +14,18 @@ class RedisPool(metaclass=SingletonMetaclass): """ def __init__(self): - self._pool = redis.ConnectionPool.from_url( - f"unix://{REDIS_SOCKET}", - decode_responses=True, - ) + if "USE_REDIS_PORT" in environ.keys(): + self._pool = redis.ConnectionPool( + host="127.0.0.1", + port=int(environ["USE_REDIS_PORT"]), + decode_responses=True, + ) + + else: + self._pool = redis.ConnectionPool.from_url( + f"unix://{REDIS_SOCKET}", + decode_responses=True, + ) self._pubsub_connection = self.get_connection() def get_connection(self): diff --git a/shell.nix b/shell.nix index b6d8e32..4589192 100644 --- a/shell.nix +++ b/shell.nix @@ -64,9 +64,14 @@ pkgs.mkShell { buildInputs = [ sp-python pkgs.black + pkgs.redis ]; shellHook = '' PYTHONPATH=${sp-python}/${sp-python.sitePackages} + # envs set with export and as attributes are treated differently. + # for example. printenv will not fetch the value of an attribute. + export USE_REDIS_PORT=6379 + redis-server --port $USE_REDIS_PORT >/dev/null & # maybe set more env-vars ''; } From 57794c95354cc70df1e7e3ce4aefe5f5f72b11bc Mon Sep 17 00:00:00 2001 From: Inex Code Date: Mon, 28 Nov 2022 15:49:48 +0300 Subject: [PATCH 2/2] style(graphql): Add missing comma \ --- selfprivacy_api/graphql/queries/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfprivacy_api/graphql/queries/system.py b/selfprivacy_api/graphql/queries/system.py index 112fa8c..cc30fd7 100644 --- a/selfprivacy_api/graphql/queries/system.py +++ b/selfprivacy_api/graphql/queries/system.py @@ -136,7 +136,7 @@ def get_system_provider_info() -> SystemProviderInfo: with ReadUserData() as user_data: return SystemProviderInfo( provider=user_data["server"]["provider"], - id="UNKNOWN" + id="UNKNOWN", )