添加 agentation 成功

This commit is contained in:
Your Name
2026-01-31 23:16:21 +08:00
parent c9e75030af
commit 52f540a097
44 changed files with 8034 additions and 4 deletions
+113
View File
@@ -464,3 +464,116 @@ def test_logs_list_items_contain_required_fields(client, auth_token, market_toke
assert "operatorName" in item
assert "operatedAt" in item
assert "summary" in item
# ---------- E2E:登录成功后 → 获取列表 → 创建项目 → 修改项目(完整流程)----------
def _login_and_get_token(client, username: str = "admin", password: str = "123456") -> str:
"""在用例内登录并返回 token,用于 E2E 流程。"""
r = client.post("/api/auth/login", json={"username": username, "password": password})
assert r.status_code == 200, f"登录失败: {r.status_code} {r.text}"
body = r.json()
assert "token" in body
return body["token"]
def test_e2e_login_then_get_project_list(client):
"""E2E:登录成功后获取项目列表,返回 200 且含 list、total、page、pageSize"""
token = _login_and_get_token(client, "admin", "123456")
r = client.post(
"/api/projects/list",
headers=_auth_header(token),
json={"page": 1, "pageSize": 20},
)
assert r.status_code == 200
body = r.json()
assert "list" in body and isinstance(body["list"], list)
assert "total" in body and isinstance(body["total"], int)
assert body.get("page") == 1
assert body.get("pageSize") == 20
def test_e2e_login_then_create_project_then_list_includes_it(client):
"""E2E:登录(市场部)→ 创建项目 → 获取列表,列表中包含新建项目"""
token = _login_and_get_token(client, "market", "123456")
project_name = "E2E流程新建项目"
contract_code = "HT-E2E-001"
create_r = client.post(
"/api/projects/create",
headers=_auth_header(token),
json={"contract": {"contractCode": contract_code, "projectName": project_name}},
)
assert create_r.status_code == 201
pid = create_r.json()["id"]
list_r = client.post(
"/api/projects/list",
headers=_auth_header(token),
json={"page": 1, "pageSize": 100},
)
assert list_r.status_code == 200
items = list_r.json().get("list", [])
ids = [p["id"] for p in items]
assert pid in ids
names = [p.get("projectName") for p in items if p.get("id") == pid]
assert project_name in names or len(names) >= 1
def test_e2e_login_then_create_then_detail_then_update_then_detail_reflects(client):
"""E2E:登录 → 创建项目 → 查详情 → 修改项目 → 再查详情,详情反映修改"""
market_token = _login_and_get_token(client, "market", "123456")
admin_token = _login_and_get_token(client, "admin", "123456")
create_r = client.post(
"/api/projects/create",
headers=_auth_header(market_token),
json={"contract": {"contractCode": "HT-E2E-002", "projectName": "E2E修改前"}},
)
assert create_r.status_code == 201
pid = create_r.json()["id"]
detail_r = client.post(
"/api/projects/detail",
headers=_auth_header(admin_token),
json={"id": pid},
)
assert detail_r.status_code == 200
assert detail_r.json().get("contract", {}).get("projectName") == "E2E修改前"
update_r = client.post(
"/api/projects/update",
headers=_auth_header(admin_token),
json={"id": pid, "contract": {"projectName": "E2E修改后"}},
)
assert update_r.status_code == 200
detail_r2 = client.post(
"/api/projects/detail",
headers=_auth_header(admin_token),
json={"id": pid},
)
assert detail_r2.status_code == 200
assert detail_r2.json().get("contract", {}).get("projectName") == "E2E修改后"
def test_e2e_login_then_create_and_update_then_logs_contain_record(client):
"""E2E:登录 → 创建项目 → 修改项目 → 获取操作日志,日志中含一条记录且含 summary"""
market_token = _login_and_get_token(client, "market", "123456")
admin_token = _login_and_get_token(client, "admin", "123456")
create_r = client.post(
"/api/projects/create",
headers=_auth_header(market_token),
json={"contract": {"contractCode": "HT-E2E-003", "projectName": "E2E日志测试"}},
)
assert create_r.status_code == 201
pid = create_r.json()["id"]
client.post(
"/api/projects/update",
headers=_auth_header(admin_token),
json={"id": pid, "contract": {"projectName": "E2E日志已更新"}},
)
logs_r = client.post(
"/api/projects/logs",
headers=_auth_header(admin_token),
json={"id": pid},
)
assert logs_r.status_code == 200
body = logs_r.json()
assert "list" in body and len(body["list"]) >= 1
assert "summary" in body["list"][0]