"""T3.9 AI 产品竞争力诊断测试。""" import pytest from fastapi.testclient import TestClient class TestProductDiagnosticsList: """产品诊断列表接口测试。""" def test_list_empty(self, client: TestClient, auth_headers: dict): """无诊断时应返回空列表。""" resp = client.get("/api/v1/product-diagnostics", headers=auth_headers) assert resp.status_code == 200 assert isinstance(resp.json()["data"], list) def test_list_with_company_filter(self, client: TestClient, auth_headers: dict, company_id: str): """指定企业 ID 过滤。""" resp = client.get(f"/api/v1/product-diagnostics?company_id={company_id}", headers=auth_headers) assert resp.status_code == 200 def test_list_no_auth(self, client: TestClient): """未认证应返回 401。""" resp = client.get("/api/v1/product-diagnostics") assert resp.status_code == 401 class TestProductDiagnose: """AI 产品竞争力诊断接口测试。""" def test_diagnose_success(self, client: TestClient, auth_headers: dict): """AI 诊断产品竞争力。""" resp = client.post( "/api/v1/product-diagnostics/diagnose", json={ "product_info": "AI 教育产品,面向 K12,主打个性化学习", "competitor_info": "竞品 A:学而思;竞品 B:猿辅导", }, headers=auth_headers, ) assert resp.status_code == 200 assert isinstance(resp.json()["data"], dict) def test_diagnose_no_auth(self, client: TestClient): """未认证应返回 401。""" resp = client.post("/api/v1/product-diagnostics/diagnose", json={}) assert resp.status_code == 401 def test_diagnose_empty(self, client: TestClient, auth_headers: dict): """空输入应正常返回。""" resp = client.post( "/api/v1/product-diagnostics/diagnose", json={"product_info": "", "competitor_info": ""}, headers=auth_headers, ) assert resp.status_code == 200