test: 修复 13 个腐化用例,套件恢复全绿且顺序无关
按「测试腐化(a)/ 源码缺陷(b)/ 测试污染(c)」逐项定性,仅改 tests/: - 外机绝对路径(4): 迁移文件路径改为相对仓库根解析(沿用 test_regressions._read 约定),断言内容保持不变。 - cutoff 用例(4+1): mock 未生效的真因是 _agent_provider 被换成同步 lambda,await 抛 TypeError 被生产代码吞掉后 IndexError;改为 async mock 并按 run_specialists/load_match_header/_agent_provider 的真实契约 打补丁。degraded 用例再加 _upsert_prediction 顶层 kwargs(model)采集。 - 陈旧断言(3): agent 键按现契约断言中文映射;h2h mock 改 async; Match.stats 按设计为 lazy="select",从 MATCH_RELATIONS 移出并单独 固化该设计决定。 - P0-3 守卫(1): seg 越界扫到下游 stats 管线导致误报,改为按缩进收口; 合法形状含经 raw 派生变量中转的写法,并补元测试确保守卫仍能抓到回归。 - 交叉污染(6): test_multi_agent_cutoff 用 patch.object 精确还原,消除 裸赋值泄漏的同步 mock;现已验证顺序无关。
This commit is contained in:
@@ -7,12 +7,18 @@
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from src.db.models import Prediction
|
||||
|
||||
# 仓库根目录下的 alembic 迁移目录 —— 相对本测试文件解析,
|
||||
# 避免硬编码某台机器/CI 上的绝对路径(见 tests/test_regressions.py 的 _read 约定)。
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
MIGRATION_PATH = REPO_ROOT / "alembic" / "versions" / "0014_predictions_agent_weights.py"
|
||||
|
||||
|
||||
class TestAgentWeightsColumn:
|
||||
"""验证 predictions 表有 agent_weights 列。"""
|
||||
@@ -38,14 +44,10 @@ class TestMigration:
|
||||
"""验证迁移文件存在且内容正确。"""
|
||||
|
||||
def test_migration_exists(self):
|
||||
import os
|
||||
|
||||
path = "/.octop/workspaces/CA7PFH/Profeto/alembic/versions/0014_predictions_agent_weights.py"
|
||||
assert os.path.exists(path)
|
||||
assert MIGRATION_PATH.is_file(), f"迁移文件不存在: {MIGRATION_PATH}"
|
||||
|
||||
def test_migration_content(self):
|
||||
path = "/.octop/workspaces/CA7PFH/Profeto/alembic/versions/0014_predictions_agent_weights.py"
|
||||
content = open(path).read()
|
||||
content = MIGRATION_PATH.read_text(encoding="utf-8")
|
||||
|
||||
assert "agent_weights" in content
|
||||
assert "upgrade" in content
|
||||
|
||||
Reference in New Issue
Block a user