f17a6ccbac
- Make AI routing rules DB-driven (read from system_configs, removed from config.py) - Add translation quota tracking to LLM translation (OpenAIProvider) - Add Alibaba MT ECS RAM role support (STS token, no AccessKey needed) - Fix admin sidebar link for AI模型配置 page - Fix Quota.vue API path (quotas → translation-quotas) - Fix login auto-redirect to dashboard - Add provider dropdown selects to AI routing config UI - Clean up stale ai_provider_* system_configs records - Remove OpencodeGo, Spark providers (code + DB) - Update deploy config: nginx port 8000, systemd cwd
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
import pytest
|
|
from app.config import settings
|
|
|
|
|
|
class TestConfig:
|
|
def test_app_name(self):
|
|
assert settings.APP_NAME == "TradeMate"
|
|
|
|
def test_jwt_algorithm(self):
|
|
assert settings.JWT_ALGORITHM == "HS256"
|
|
|
|
def test_token_expiration(self):
|
|
assert settings.ACCESS_TOKEN_EXPIRE_MINUTES == 60
|
|
assert settings.REFRESH_TOKEN_EXPIRE_DAYS == 30
|
|
|
|
def test_ai_routing_config(self):
|
|
from app.ai.router import DEFAULT_ROUTING
|
|
assert "translate" in DEFAULT_ROUTING
|
|
assert "reply" in DEFAULT_ROUTING
|
|
assert "marketing" in DEFAULT_ROUTING
|
|
assert "extract" in DEFAULT_ROUTING
|
|
assert "primary" in DEFAULT_ROUTING["translate"]
|
|
|
|
def test_free_tier_limits(self):
|
|
assert settings.FREE_DAILY_TRANSLATE_CHARS == 5000
|
|
assert settings.FREE_DAILY_REPLIES == 20
|
|
assert settings.FREE_DAILY_MARKETING == 5
|
|
assert settings.FREE_MAX_CUSTOMERS == 5
|
|
assert settings.FREE_MAX_PRODUCTS == 1
|
|
assert settings.FREE_DAILY_QUOTATIONS == 3
|
|
|
|
def test_pro_tier_limits(self):
|
|
assert settings.PRO_DAILY_TRANSLATE_CHARS == 50000
|
|
assert settings.PRO_DAILY_REPLIES == 200
|
|
assert settings.PRO_MAX_CUSTOMERS == 100
|
|
assert settings.PRO_MAX_PRODUCTS == 20
|
|
|
|
def test_database_url_configured(self):
|
|
assert settings.DATABASE_URL is not None
|
|
# Production database is 'tradmate', test database is 'foreign_trade_test'
|
|
assert "tradmate" in settings.DATABASE_URL or "foreign_trade" in settings.DATABASE_URL
|
|
|
|
def test_redis_url_configured(self):
|
|
assert settings.REDIS_URL is not None |