diff --git a/tests/unit/test_api_settings.py b/tests/unit/test_api_settings.py index f7689fd31..1b4c776f0 100755 --- a/tests/unit/test_api_settings.py +++ b/tests/unit/test_api_settings.py @@ -12,11 +12,23 @@ from packages.config.base import SharedSettings, get_cached_settings, reload_set def _reset_cache(): """每个测试前清空配置缓存,避免单例污染.""" reload_settings_cache() + # 保存关键环境变量(避免其他测试模块的全局污染) + _saved_env = {} + for key in ["JWT_SECRET_KEY", "DATABASE_URL", "USE_IN_MEMORY_DB", "APP_ENV"]: + _saved_env[key] = os.environ.get(key) # 设置必要的环境变量,避免 JWT 校验失败 os.environ["JWT_SECRET_KEY"] = "test-secret-key-for-unit-tests-only-12345" + # 清除可能被其他模块污染的变量,确保默认值测试准确 + for key in ["DATABASE_URL", "APP_ENV"]: + os.environ.pop(key, None) yield reload_settings_cache() - os.environ.pop("JWT_SECRET_KEY", None) + # 恢复所有保存的环境变量,避免污染其他测试模块 + for key, val in _saved_env.items(): + if val is None: + os.environ.pop(key, None) + else: + os.environ[key] = val class TestSharedSettingsDefaults: