From 364b4f70d1cddd965c95ddb56b8fec78f09b9bca Mon Sep 17 00:00:00 2001 From: "Gan, Jimmy" Date: Sun, 5 Apr 2026 01:40:58 +0800 Subject: [PATCH] fix: convert AUTH_FILE to getter and disable rate limiting in test suite to fix CI failures --- dashboard/backend/auth_service.py | 12 +++++++----- dashboard/backend/tests/conftest.py | 2 ++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/dashboard/backend/auth_service.py b/dashboard/backend/auth_service.py index edc1b04..11f7e0f 100644 --- a/dashboard/backend/auth_service.py +++ b/dashboard/backend/auth_service.py @@ -100,7 +100,8 @@ async def get_current_user_ws(token: str): return user_from_access_token(token, include_auth_header=False) # TOTP Persistence -AUTH_FILE = config.VOLUME_ROOT + "/docker/nas-dashboard/auth.json" +def get_auth_file(): + return config.VOLUME_ROOT + "/docker/nas-dashboard/auth.json" import json, os import base64 import hashlib @@ -127,7 +128,7 @@ def _update_auth_data(mutator): with _auth_lock: data = _load_auth_data() result = mutator(data) - _atomic_json_write(AUTH_FILE, data) + _atomic_json_write(get_auth_file(), data) return result def _get_fernet(): @@ -162,15 +163,16 @@ def _decrypt(ciphertext: str) -> str: def _load_auth_data(): with _auth_lock: try: - if os.path.exists(AUTH_FILE): - with open(AUTH_FILE, "r") as f: + auth_path = get_auth_file() + if os.path.exists(auth_path): + with open(auth_path, "r") as f: return json.load(f) except Exception: pass return {} def _save_auth_data(data): - _atomic_json_write(AUTH_FILE, data) + _atomic_json_write(get_auth_file(), data) def load_totp_secret(): encrypted = _load_auth_data().get("totp_secret", "") diff --git a/dashboard/backend/tests/conftest.py b/dashboard/backend/tests/conftest.py index 58a4ca2..06a0698 100644 --- a/dashboard/backend/tests/conftest.py +++ b/dashboard/backend/tests/conftest.py @@ -148,6 +148,8 @@ def test_app(mock_config, temp_auth_file, temp_rbac_file, mock_docker_client): # Patch Docker client before importing main with patch("docker.DockerClient", return_value=mock_docker_client): from main import app + # Disable rate limiting during tests to avoid 429 errors + app.state.limiter.enabled = False client = TestClient(app) yield client