906804140c
Renames image_record.wd14_* -> tagger_* (we're on Camie now, not WD14). Adds tag_allowlist (auto-apply opt-in, per-tag confidence), tag_suggestion_rejection (per-image dismissals), tag_alias (composite (string, category) -> canonical tag, resolved at read time), tag_reference_embedding (per-tag SigLIP centroids), and the ml_settings singleton (per-category + centroid thresholds, model version pins). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
"""Smoke test for migration 0003: model classes import, schema shape correct."""
|
|
|
|
from backend.app.models import (
|
|
Base,
|
|
ImageRecord,
|
|
MLSettings,
|
|
TagAlias,
|
|
TagAllowlist,
|
|
TagReferenceEmbedding,
|
|
TagSuggestionRejection,
|
|
)
|
|
|
|
|
|
def test_new_tables_registered():
|
|
expected = {
|
|
"tag_allowlist",
|
|
"tag_suggestion_rejection",
|
|
"tag_alias",
|
|
"tag_reference_embedding",
|
|
"ml_settings",
|
|
}
|
|
assert expected.issubset(Base.metadata.tables.keys())
|
|
|
|
|
|
def test_image_record_columns_renamed():
|
|
cols = {c.name for c in ImageRecord.__table__.columns}
|
|
assert "tagger_predictions" in cols
|
|
assert "tagger_model_version" in cols
|
|
assert "wd14_predictions" not in cols
|
|
assert "wd14_model_version" 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_reference_embedding_has_vector():
|
|
cols = {c.name for c in TagReferenceEmbedding.__table__.columns}
|
|
assert "embedding" in cols
|
|
assert "reference_count" in cols
|
|
|
|
|
|
def test_tag_allowlist_confidence_check():
|
|
names = {c.name for c in TagAllowlist.__table__.constraints}
|
|
assert "ck_tag_allowlist_confidence_range" 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"}
|