mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-31 10:37:12 -04:00 
			
		
		
		
	Fix: prevent duplicate cachalot app in Django settings (#10300)
--------- Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									f3b6e15321
								
							
						
					
					
						commit
						733a9674d6
					
				| @ -918,7 +918,6 @@ CELERY_BEAT_SCHEDULE_FILENAME = str(DATA_DIR / "celerybeat-schedule.db") | ||||
| 
 | ||||
| # 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( | ||||
| @ -936,18 +935,18 @@ def _parse_cachalot_settings(): | ||||
|         "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 | ||||
| @ -968,7 +967,7 @@ def _parse_caches(): | ||||
|         }, | ||||
|         "read-cache": { | ||||
|             "BACKEND": _CACHE_BACKEND, | ||||
|             "LOCATION": _parse_cachalot_settings()["CACHALOT_REDIS_URL"], | ||||
|             "LOCATION": cachalot_settings["CACHALOT_REDIS_URL"], | ||||
|             "KEY_PREFIX": _REDIS_KEY_PREFIX, | ||||
|         }, | ||||
|     } | ||||
| @ -977,9 +976,6 @@ def _parse_caches(): | ||||
| 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) | ||||
|  | ||||
| @ -63,26 +63,20 @@ class TestDbCacheSettings: | ||||
|         }, | ||||
|     ) | ||||
|     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"), | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user