Add movie-keyed pool index with multi-version movies, ČSFD title bridge, subtitles and miniDLNA library scoping

This commit is contained in:
2026-09-13 17:16:48 +02:00
parent c0ad1c1553
commit c399a6aed3
26 changed files with 4635 additions and 221 deletions
+39
View File
@@ -2,9 +2,11 @@
import pytest
from src.core.naming import (
THREE_D_FORMATS,
canonical_pool_stem,
is_canonical_pool_stem,
is_valid_year,
parse_3d_format,
parse_pool_stem,
parse_tmdb_id,
year_from_filename,
@@ -79,6 +81,43 @@ def test_is_canonical_pool_stem():
assert not is_canonical_pool_stem("Matrix")
def test_canonical_pool_stem_with_3d_format():
assert canonical_pool_stem("Avatar", 2009, 19995, "hsbs") == \
"Avatar (2009) [tmdbid-19995].3D.HSBS"
# upper-cased regardless of input case
assert canonical_pool_stem("Avatar", 2009, None, "fsbs") == "Avatar (2009).3D.FSBS"
# empty/None → no tag at all
assert canonical_pool_stem("Avatar", 2009, None, None) == "Avatar (2009)"
assert canonical_pool_stem("Avatar", 2009, None, "") == "Avatar (2009)"
def test_canonical_pool_stem_rejects_bad_3d_format():
with pytest.raises(ValueError):
canonical_pool_stem("Avatar", 2009, None, "bogus")
@pytest.mark.parametrize("fmt", THREE_D_FORMATS)
def test_parse_3d_format_roundtrip(fmt):
stem = canonical_pool_stem("Avatar", 2009, 19995, fmt)
assert parse_3d_format(stem) == fmt
assert parse_pool_stem(stem) == ("Avatar", 2009)
assert parse_tmdb_id(stem) == 19995
def test_parse_3d_format_case_insensitive_on_read():
assert parse_3d_format("Avatar (2009).3D.hsbs") == "HSBS"
def test_parse_3d_format_absent_is_none():
assert parse_3d_format("Avatar (2009) [tmdbid-19995]") is None
assert parse_3d_format("Avatar (2009)") is None
def test_canonical_pool_stem_3d_without_tmdb_id():
assert canonical_pool_stem("Avatar", 2009, None, "MVC") == "Avatar (2009).3D.MVC"
assert parse_3d_format("Avatar (2009).3D.MVC") == "MVC"
@pytest.mark.parametrize("name,year", [
("Matrix.1999.1080p.BluRay.mkv", "1999"),
("Šíleně smutná princezna (1968).mkv", "1968"),