bc6d43d3f2
Hygiene follow-up to the Camie retirement (#1189) — these were left inert to bound that change; nothing reads them now. Migration 0068 drops: - ml_settings: tagger_store_floor, tagger_model_version, suggestion_threshold_ character/general (already dead pre-retirement — scoring uses per-head thresholds), video_min_tag_frames (only the deleted video-prediction aggregator used it). - image_record: tagger_model_version (no writer), centroid_scores (dead JSON cache, no reader). Also: ml_admin _EDITABLE/GET/_validate pruned (dropped the store-floor invariant + video_min_tag_frames check); MLThresholdSliders trimmed to a video-embedding card (interval + max frames only); importer no longer resets the dropped cols; download_models drops the Camie fetch; stale CASCADE comments in cleanup_service no longer name the removed tables. Tests updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ttrj5P7upUTueSfoJcxEqa
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""Smoke test for migration 0003: model classes import, schema shape correct."""
|
|
|
|
from backend.app.models import (
|
|
Base,
|
|
ImageRecord,
|
|
MLSettings,
|
|
TagAlias,
|
|
TagSuggestionRejection,
|
|
)
|
|
|
|
|
|
def test_new_tables_registered():
|
|
expected = {
|
|
"tag_suggestion_rejection",
|
|
"tag_alias",
|
|
"ml_settings",
|
|
}
|
|
assert expected.issubset(Base.metadata.tables.keys())
|
|
|
|
|
|
def test_image_record_columns_renamed():
|
|
cols = {c.name for c in ImageRecord.__table__.columns}
|
|
# Legacy tagger columns are all gone: tagger_predictions/wd14_* dropped in
|
|
# 0046, tagger_model_version + centroid_scores dropped in 0068 (#1199, Camie
|
|
# retirement). The SigLIP embedding columns are the live ML fields.
|
|
assert "siglip_embedding" in cols
|
|
assert "siglip_model_version" in cols
|
|
assert "tagger_model_version" not in cols
|
|
assert "centroid_scores" not in cols
|
|
assert "tagger_predictions" not in cols
|
|
assert "wd14_predictions" not in cols
|
|
|
|
|
|
def test_tag_alias_composite_pk():
|
|
pk_cols = {c.name for c in TagAlias.__table__.primary_key.columns}
|
|
assert pk_cols == {"alias_string", "alias_category"}
|
|
|
|
|
|
def test_ml_settings_singleton_constraint():
|
|
names = {c.name for c in MLSettings.__table__.constraints}
|
|
assert "ck_ml_settings_singleton" in names
|
|
|
|
|
|
def test_tag_suggestion_rejection_pk():
|
|
pk_cols = {c.name for c in TagSuggestionRejection.__table__.primary_key.columns}
|
|
assert pk_cols == {"image_record_id", "tag_id"}
|