refactor review-plan safety and validation

This commit is contained in:
windyboy
2026-04-07 11:00:47 +08:00
parent fb128c70d6
commit 0a6bddcc7e
19 changed files with 1246 additions and 628 deletions
+19 -1
View File
@@ -4,7 +4,7 @@ import pytest
from pathlib import Path
from vlm.models import MovieIdentity
from vlm.duplicate_resolve import choose_keep_index
from vlm.duplicate_resolve import DuplicateResolutionError, choose_keep_index
def _mi(title: str = "Test", year: int | None = 2020) -> MovieIdentity:
@@ -218,3 +218,21 @@ class TestOtherStrategies:
]
idx = choose_keep_index(items, "by_reputation_quality_time", quality_comparison=qc)
assert idx == 1
def test_by_quality_requires_aligned_quality_data():
items = [(Path("/a.mkv"), _mi()), (Path("/b.mkv"), _mi())]
with pytest.raises(
DuplicateResolutionError,
match="requires quality data aligned with duplicate items",
):
choose_keep_index(items, "by_quality", quality_comparison=[{"path": "/a.mkv"}])
def test_unknown_strategy_raises_duplicate_resolution_error():
items = [(Path("/a.mkv"), _mi()), (Path("/b.mkv"), _mi())]
with pytest.raises(DuplicateResolutionError, match="Unsupported duplicate strategy"):
choose_keep_index(items, "unexpected")