AgentEvalTool/tests/unit/test_campaign_period_comparisons_migration.py
sinohqb 1e55a21649 feat(comparison): v0.8 周期对比 — 计划指纹自动基线配对、机械指标 diff 与 LLM 演进叙述
正式线活动分析完成后自动链式生成对比;报告抽屉新增「周期对比」区块
(趋势徽章、指标 delta 表、问题演变、建议追踪,无自动基线时手动选择)。
版本号升至 0.8.0。
2026-08-03 13:32:48 +08:00

32 lines
1.3 KiB
Python

"""Verify the campaign_period_comparisons migration creates the table with a unique campaign_id."""
import importlib
import sqlalchemy as sa
from alembic.migration import MigrationContext
from alembic.operations import Operations
def test_period_comparisons_migration_creates_table(tmp_path, monkeypatch):
engine = sa.create_engine(f"sqlite:///{tmp_path / 'comparisons.db'}")
with engine.begin() as connection:
operations = Operations(MigrationContext.configure(connection))
migration = importlib.import_module(
"migrations.versions.f2a9b7c34d18_add_campaign_period_comparisons"
)
monkeypatch.setattr(migration, "op", operations)
migration.upgrade()
inspector = sa.inspect(connection)
assert "campaign_period_comparisons" in inspector.get_table_names()
columns = {c["name"] for c in inspector.get_columns("campaign_period_comparisons")}
assert {
"id", "campaign_id", "baseline_campaign_id", "status", "result",
"model_config_id", "error", "triggered_by", "created_at", "updated_at",
} <= columns
uniques = inspector.get_unique_constraints("campaign_period_comparisons")
assert any(uc["column_names"] == ["campaign_id"] for uc in uniques)