# Cachalot: Database read cache.
def _parse_cachalot_settings():
- global INSTALLED_APPS
ttl = __get_int("PAPERLESS_READ_CACHE_TTL", 3600)
ttl = min(ttl, 31536000) if ttl > 0 else 3600
_, redis_url = _parse_redis_url(
"CACHALOT_REDIS_URL": redis_url,
"CACHALOT_TIMEOUT": ttl,
}
- if result["CACHALOT_ENABLED"]:
- INSTALLED_APPS.append("cachalot")
return result
-_cachalot_settings = _parse_cachalot_settings()
-CACHALOT_ENABLED = _cachalot_settings["CACHALOT_ENABLED"]
-CACHALOT_CACHE = _cachalot_settings["CACHALOT_CACHE"]
-CACHALOT_TIMEOUT = _cachalot_settings["CACHALOT_TIMEOUT"]
-CACHALOT_QUERY_KEYGEN = _cachalot_settings["CACHALOT_QUERY_KEYGEN"]
-CACHALOT_TABLE_KEYGEN = _cachalot_settings["CACHALOT_TABLE_KEYGEN"]
-CACHALOT_FINAL_SQL_CHECK = _cachalot_settings["CACHALOT_FINAL_SQL_CHECK"]
+cachalot_settings = _parse_cachalot_settings()
+CACHALOT_ENABLED = cachalot_settings["CACHALOT_ENABLED"]
+if CACHALOT_ENABLED: # pragma: no cover
+ INSTALLED_APPS.append("cachalot")
+CACHALOT_CACHE = cachalot_settings["CACHALOT_CACHE"]
+CACHALOT_TIMEOUT = cachalot_settings["CACHALOT_TIMEOUT"]
+CACHALOT_QUERY_KEYGEN = cachalot_settings["CACHALOT_QUERY_KEYGEN"]
+CACHALOT_TABLE_KEYGEN = cachalot_settings["CACHALOT_TABLE_KEYGEN"]
+CACHALOT_FINAL_SQL_CHECK = cachalot_settings["CACHALOT_FINAL_SQL_CHECK"]
# Django default & Cachalot cache configuration
},
"read-cache": {
"BACKEND": _CACHE_BACKEND,
- "LOCATION": _parse_cachalot_settings()["CACHALOT_REDIS_URL"],
+ "LOCATION": cachalot_settings["CACHALOT_REDIS_URL"],
"KEY_PREFIX": _REDIS_KEY_PREFIX,
},
}
CACHES = _parse_caches()
-del _cachalot_settings
-
-
def default_threads_per_worker(task_workers) -> int:
# always leave one core open
available_cores = max(multiprocessing.cpu_count(), 1)
},
)
def test_cachalot_custom_settings(self):
- cachalot_settings = _parse_cachalot_settings()
- assert "cachalot" in settings.INSTALLED_APPS
- caches = _parse_caches()
+ settings = _parse_cachalot_settings()
- # Modifiable settings
- assert cachalot_settings["CACHALOT_ENABLED"]
- assert cachalot_settings["CACHALOT_TIMEOUT"] == 7200
- assert caches["read-cache"]["LOCATION"] == "redis://localhost:6380/7"
-
- # Fixed settings
- assert cachalot_settings["CACHALOT_CACHE"] == "read-cache"
+ assert settings["CACHALOT_ENABLED"]
+ assert settings["CACHALOT_TIMEOUT"] == 7200
+ assert settings["CACHALOT_CACHE"] == "read-cache"
assert (
- cachalot_settings["CACHALOT_QUERY_KEYGEN"]
+ settings["CACHALOT_QUERY_KEYGEN"]
== "paperless.db_cache.custom_get_query_cache_key"
)
assert (
- cachalot_settings["CACHALOT_TABLE_KEYGEN"]
+ settings["CACHALOT_TABLE_KEYGEN"]
== "paperless.db_cache.custom_get_table_cache_key"
)
- assert cachalot_settings["CACHALOT_FINAL_SQL_CHECK"] is True
+ assert settings["CACHALOT_FINAL_SQL_CHECK"] is True
@pytest.mark.parametrize(
("env_var_ttl", "expected_cachalot_timeout"),