Files
InternalAuditInterprise/backend/tests/test_egress_policy.py
T
2026-06-16 00:38:57 +08:00

43 lines
1.3 KiB
Python

"""数据零出域红线测试:prod 环境必须禁用公网 LLM Provider。"""
import pytest
from app.config import AppEnv, LLMProviderName, Settings
from app.llm.factory import EgressPolicyError, get_llm_provider
def _settings(env: AppEnv, provider: LLMProviderName) -> Settings:
return Settings(aiaudit_env=env, llm_provider=provider, dashscope_api_key="x")
def test_prod_blocks_public_dashscope():
s = _settings(AppEnv.prod, LLMProviderName.dashscope)
with pytest.raises(EgressPolicyError):
get_llm_provider(s)
def test_prod_allows_local_vllm():
s = _settings(AppEnv.prod, LLMProviderName.vllm)
provider = get_llm_provider(s)
assert provider.name == "vllm"
assert provider.egress is False
def test_dev_allows_dashscope():
s = _settings(AppEnv.dev, LLMProviderName.dashscope)
provider = get_llm_provider(s)
assert provider.name == "dashscope"
assert provider.egress is True
def test_validate_egress_policy_raises_in_prod():
s = _settings(AppEnv.prod, LLMProviderName.dashscope)
with pytest.raises(RuntimeError):
s.validate_egress_policy()
def test_validate_egress_policy_ok_in_dev():
s = _settings(AppEnv.dev, LLMProviderName.dashscope)
# dev 下不应抛出
s.validate_egress_policy()