From b893879ff4a050dee9b8cae7bee478811d842c0c Mon Sep 17 00:00:00 2001 From: Nicolas Simonds Date: Thu, 14 Aug 2025 05:11:10 +0300 Subject: [PATCH] fix: make `dogpile.cache.memory` preserve its init parameters Make the `MemoryBackend` behave like the others, and stop removing keys from the initialization dict. Fixes: Issue #273 Closes: #274 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/274 Pull-request-sha: 759dc77265470c1f7ffa6b4aebc97812b5f3b4ac Change-Id: Ifd3f0d88b18a73a0ce287e1a514a6268daf157c4 --- dogpile/cache/backends/memory.py | 2 +- tests/cache/test_memory_backend.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dogpile/cache/backends/memory.py b/dogpile/cache/backends/memory.py index f62c9d4..0ace10b 100644 --- a/dogpile/cache/backends/memory.py +++ b/dogpile/cache/backends/memory.py @@ -50,7 +50,7 @@ class MemoryBackend(CacheBackend): """ def __init__(self, arguments): - self._cache = arguments.pop("cache_dict", {}) + self._cache = arguments.get("cache_dict", {}) def get(self, key): return self._cache.get(key, NO_VALUE) diff --git a/tests/cache/test_memory_backend.py b/tests/cache/test_memory_backend.py index 48a316f..fda2739 100644 --- a/tests/cache/test_memory_backend.py +++ b/tests/cache/test_memory_backend.py @@ -4,6 +4,10 @@ class MemoryBackendTest(_GenericBackendTestSuite): backend = "dogpile.cache.memory" + config_args = {"arguments": {"cache_dict": {}}} + + def test_config_args_does_not_mutate(self): + assert "cache_dict" in self.config_args["arguments"] class MemoryBackendSerializerTest( @@ -12,5 +16,5 @@ class MemoryBackendSerializerTest( pass -class MemoryPickleBackendTest(_GenericBackendTestSuite): +class MemoryPickleBackendTest(MemoryBackendTest): backend = "dogpile.cache.memory_pickle"