Adds a layer to translate between differing formats of socket based Redis URLs

This commit is contained in:
Trenton H
2022-12-02 09:34:59 -08:00
parent ff7f5d6124
commit 3a6345f607
2 changed files with 68 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ from unittest import mock
from unittest import TestCase
from paperless.settings import _parse_ignore_dates
from paperless.settings import _parse_redis_url
from paperless.settings import default_threads_per_worker
@@ -82,3 +83,35 @@ class TestIgnoreDateParsing(TestCase):
self.assertGreaterEqual(default_threads, 1)
self.assertLessEqual(default_workers * default_threads, i)
def test_redis_socket_parsing(self):
"""
GIVEN:
- Various Redis connection URI formats
WHEN:
- The URI is parsed
THEN:
- Socket based URIs are translated
- Non-socket URIs are unchanged
- None provided uses default
"""
for input, expected in [
(None, ("redis://localhost:6379", "redis://localhost:6379")),
(
"redis+socket:///run/redis/redis.sock",
(
"redis+socket:///run/redis/redis.sock",
"unix:///run/redis/redis.sock",
),
),
(
"unix:///run/redis/redis.sock",
(
"redis+socket:///run/redis/redis.sock",
"unix:///run/redis/redis.sock",
),
),
]:
result = _parse_redis_url(input)
self.assertTupleEqual(expected, result)