Initial commit: InternalAuditInterprise
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""数据零出域红线测试: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()
|
||||
Reference in New Issue
Block a user