- 新增8个测试文件(bot_bridge/kpi_causality/cash/predict/reports/tax_compliance/expenses/probe_cost) - 增强 budget/auth/users + conftest账套模式适配 - 测试驱动修复: bot_bridge导入batch_id→source_batch; cash_forecast extra空dict - 全量: 451 passed, 1 xfailed; 报告 docs/cma-test-coverage-report.md
39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
"""探针:cost 分析端点行为"""
|
|
from fastapi.testclient import TestClient
|
|
from sqlalchemy.orm import Session
|
|
from tests.conftest import create_test_user, get_token_for_user, auth_header
|
|
|
|
|
|
class TestProbeCost:
|
|
BASE = "/api/cma/cost"
|
|
|
|
def test_probe_overview(self, client: TestClient, db: Session):
|
|
create_test_user(db)
|
|
token = get_token_for_user(client)
|
|
r = client.get(f"{self.BASE}/overview?period=2026-06", headers=auth_header(token))
|
|
print("OVERVIEW", r.status_code, r.text[:150])
|
|
|
|
def test_probe_variance(self, client: TestClient, db: Session):
|
|
create_test_user(db)
|
|
token = get_token_for_user(client)
|
|
r = client.get(f"{self.BASE}/variance?product_code=PROD_A&period=2026-06", headers=auth_header(token))
|
|
print("VARIANCE", r.status_code, r.text[:200])
|
|
|
|
def test_probe_breakdown(self, client: TestClient, db: Session):
|
|
create_test_user(db)
|
|
token = get_token_for_user(client)
|
|
r = client.get(f"{self.BASE}/breakdown?product_code=PROD_A&period=2026-06", headers=auth_header(token))
|
|
print("BREAKDOWN", r.status_code, r.text[:200])
|
|
|
|
def test_probe_comparison(self, client: TestClient, db: Session):
|
|
create_test_user(db)
|
|
token = get_token_for_user(client)
|
|
r = client.get(f"{self.BASE}/comparison?entity=hanke", headers=auth_header(token))
|
|
print("COMPARISON", r.status_code, r.text[:120])
|
|
|
|
def test_probe_dashboard(self, client: TestClient, db: Session):
|
|
create_test_user(db)
|
|
token = get_token_for_user(client)
|
|
r = client.get(f"{self.BASE}/dashboard?period=2026-06", headers=auth_header(token))
|
|
print("DASHBOARD", r.status_code, r.text[:300])
|