From cdbe2d157f4674dad33aa8b70e3e5d075c2ace6c Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Tue, 17 Jun 2025 19:02:54 -0700 Subject: [PATCH] flush_memcached: Respect DJANGO_SETTINGS_MODULE. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don’t need to flush anything for zproject.test_settings, which disables memcached. Signed-off-by: Anders Kaseorg --- scripts/setup/flush-memcached | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/scripts/setup/flush-memcached b/scripts/setup/flush-memcached index 903c7bb281..0c5cc059f2 100755 --- a/scripts/setup/flush-memcached +++ b/scripts/setup/flush-memcached @@ -4,19 +4,24 @@ import sys BASE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../..") sys.path.append(BASE_DIR) +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zproject.settings") from scripts.lib.setup_path import setup_path setup_path() import bmemcached - -from zproject import settings +from django.conf import settings cache = settings.CACHES["default"] -assert isinstance(cache, dict) # for mypy -client = bmemcached.Client((cache["LOCATION"],), **cache["OPTIONS"]) -try: - client.flush_all() -finally: - client.disconnect_all() +match cache["BACKEND"]: + case "django.core.cache.backends.locmem.LocMemCache": + pass + case "zerver.lib.singleton_bmemcached.SingletonBMemcached": + client = bmemcached.Client((cache["LOCATION"],), **cache["OPTIONS"]) + try: + client.flush_all() + finally: + client.disconnect_all() + case _: + raise ValueError(f"Unrecognized cache backend {cache['BACKEND']}")