chore: apply pre-commit auto-fixes (trim trailing whitespace, EOF)

This commit is contained in:
2026-05-17 23:41:54 +02:00
parent e07c9ec77b
commit 891ba502a2
26 changed files with 238 additions and 168 deletions
+20 -10
View File
@@ -20,8 +20,9 @@ from alfred.domain.shared.media import AudioTrack, MediaInfo, SubtitleTrack, Vid
class TestTracks:
def test_audio_track_defaults(self):
t = AudioTrack(index=0, codec="aac", channels=2, channel_layout="stereo",
language="eng")
t = AudioTrack(
index=0, codec="aac", channels=2, channel_layout="stereo", language="eng"
)
assert t.is_default is False
def test_subtitle_track_defaults(self):
@@ -36,7 +37,9 @@ class TestTracks:
class TestVideoTrackResolution:
def test_no_dimensions(self):
assert VideoTrack(index=0, codec=None, width=None, height=None).resolution is None
assert (
VideoTrack(index=0, codec=None, width=None, height=None).resolution is None
)
@pytest.mark.parametrize(
"w,expected",
@@ -50,11 +53,16 @@ class TestVideoTrackResolution:
],
)
def test_width_priority(self, w, expected):
assert VideoTrack(index=0, codec=None, width=w, height=1080).resolution == expected
assert (
VideoTrack(index=0, codec=None, width=w, height=1080).resolution == expected
)
def test_widescreen_scope_crop(self):
# 1920x960 (scope crop) → still 1080p because width-priority
assert VideoTrack(index=0, codec=None, width=1920, height=960).resolution == "1080p"
assert (
VideoTrack(index=0, codec=None, width=1920, height=960).resolution
== "1080p"
)
@pytest.mark.parametrize(
"h,expected",
@@ -67,11 +75,15 @@ class TestVideoTrackResolution:
],
)
def test_height_fallback_when_width_missing(self, h, expected):
assert VideoTrack(index=0, codec=None, width=None, height=h).resolution == expected
assert (
VideoTrack(index=0, codec=None, width=None, height=h).resolution == expected
)
def test_width_below_buckets_falls_to_height(self):
# width=320 falls below every bucket; falls back to f"{h}p"
assert VideoTrack(index=0, codec=None, width=320, height=240).resolution == "240p"
assert (
VideoTrack(index=0, codec=None, width=320, height=240).resolution == "240p"
)
def test_width_only_below_buckets(self):
# width=200, no height → f"{w}w" sentinel
@@ -127,9 +139,7 @@ class TestAudioLanguages:
assert m.audio_languages == []
def test_is_multi_audio_false_single_lang(self):
m = MediaInfo(
audio_tracks=[AudioTrack(0, "aac", 2, "stereo", "eng")]
)
m = MediaInfo(audio_tracks=[AudioTrack(0, "aac", 2, "stereo", "eng")])
assert m.is_multi_audio is False
def test_is_multi_audio_true(self):
+6 -5
View File
@@ -49,8 +49,11 @@ def identifier(kb):
return SubtitleIdentifier(kb)
def _pattern(strategy: ScanStrategy, root_folder: str | None = None,
detection: TypeDetectionMethod = TypeDetectionMethod.TOKEN_IN_NAME) -> SubtitlePattern:
def _pattern(
strategy: ScanStrategy,
root_folder: str | None = None,
detection: TypeDetectionMethod = TypeDetectionMethod.TOKEN_IN_NAME,
) -> SubtitlePattern:
return SubtitlePattern(
id=f"test-{strategy.value}",
description="",
@@ -70,9 +73,7 @@ class TestTokenize:
assert _tokenize("Show.S01E01.French") == ["show", "s01e01", "french"]
def test_mixed_separators(self):
assert _tokenize("Show_S01-E01 French") == [
"show", "s01", "e01", "french"
]
assert _tokenize("Show_S01-E01 French") == ["show", "s01", "e01", "french"]
def test_strips_parenthesized(self):
assert _tokenize("episode (Brazil).French") == ["episode", "french"]
+6 -18
View File
@@ -77,9 +77,7 @@ class TestUnresolved:
def test_threshold_exact_passes(self, matcher):
t = _track(confidence=0.7)
rules = SubtitleMatchingRules(
min_confidence=0.7, preferred_languages=["fra"]
)
rules = SubtitleMatchingRules(min_confidence=0.7, preferred_languages=["fra"])
matched, unresolved = matcher.match([t], rules)
assert matched == [t]
@@ -92,17 +90,13 @@ class TestUnresolved:
class TestLanguageFilter:
def test_preferred_languages_filters_out(self, matcher):
t_eng = _track(lang=ENG)
rules = SubtitleMatchingRules(
preferred_languages=["fra"], min_confidence=0.0
)
rules = SubtitleMatchingRules(preferred_languages=["fra"], min_confidence=0.0)
matched, _ = matcher.match([t_eng], rules)
assert matched == []
def test_preferred_language_match_passes(self, matcher):
t_fra = _track(lang=FRA)
rules = SubtitleMatchingRules(
preferred_languages=["fra"], min_confidence=0.0
)
rules = SubtitleMatchingRules(preferred_languages=["fra"], min_confidence=0.0)
matched, _ = matcher.match([t_fra], rules)
assert matched == [t_fra]
@@ -118,17 +112,13 @@ class TestLanguageFilter:
class TestFormatFilter:
def test_format_outside_preferred_filtered(self, matcher):
t = _track(fmt=ASS)
rules = SubtitleMatchingRules(
preferred_formats=["srt"], min_confidence=0.0
)
rules = SubtitleMatchingRules(preferred_formats=["srt"], min_confidence=0.0)
matched, _ = matcher.match([t], rules)
assert matched == []
def test_no_format_attribute_filtered_when_pref_set(self, matcher):
t = _track(fmt=None)
rules = SubtitleMatchingRules(
preferred_formats=["srt"], min_confidence=0.0
)
rules = SubtitleMatchingRules(preferred_formats=["srt"], min_confidence=0.0)
matched, _ = matcher.match([t], rules)
assert matched == []
@@ -144,9 +134,7 @@ class TestTypeFilter:
def test_allowed_type_passes(self, matcher):
t = _track(stype=SubtitleType.STANDARD)
rules = SubtitleMatchingRules(
allowed_types=["standard"], min_confidence=0.0
)
rules = SubtitleMatchingRules(allowed_types=["standard"], min_confidence=0.0)
matched, _ = matcher.match([t], rules)
assert matched == [t]
+22 -10
View File
@@ -83,11 +83,15 @@ class TestSubtitleCandidateDestName:
assert t.destination_name == "fra.sdh.srt"
def test_forced(self):
t = SubtitleCandidate(language=FRA, format=SRT, subtitle_type=SubtitleType.FORCED)
t = SubtitleCandidate(
language=FRA, format=SRT, subtitle_type=SubtitleType.FORCED
)
assert t.destination_name == "fra.forced.srt"
def test_unknown_treated_as_standard(self):
t = SubtitleCandidate(language=FRA, format=SRT, subtitle_type=SubtitleType.UNKNOWN)
t = SubtitleCandidate(
language=FRA, format=SRT, subtitle_type=SubtitleType.UNKNOWN
)
# UNKNOWN doesn't add a suffix → same as standard.
assert t.destination_name == "fra.srt"
@@ -110,7 +114,9 @@ class TestSubtitleCandidateDestName:
class TestSubtitleCandidateRepr:
def test_embedded_repr(self):
t = SubtitleCandidate(language=FRA, format=None, is_embedded=True, confidence=1.0)
t = SubtitleCandidate(
language=FRA, format=None, is_embedded=True, confidence=1.0
)
r = repr(t)
assert "fra" in r
assert "embedded" in r
@@ -118,9 +124,7 @@ class TestSubtitleCandidateRepr:
def test_external_repr_uses_filename(self, tmp_path):
f = tmp_path / "fr.srt"
f.write_text("")
t = SubtitleCandidate(
language=FRA, format=SRT, file_path=f, confidence=0.85
)
t = SubtitleCandidate(language=FRA, format=SRT, file_path=f, confidence=0.85)
r = repr(t)
assert "fra" in r
assert "fr.srt" in r
@@ -159,7 +163,9 @@ class TestMediaSubtitleMetadata:
def test_unresolved_tracks_only_external_with_none_lang(self):
# An embedded with None language must NOT appear in unresolved_tracks
# (the property only iterates external_tracks).
embedded_unknown = SubtitleCandidate(language=None, format=None, is_embedded=True)
embedded_unknown = SubtitleCandidate(
language=None, format=None, is_embedded=True
)
external_known = SubtitleCandidate(
language=FRA, format=SRT, file_path=Path("/a.srt")
)
@@ -184,10 +190,16 @@ class TestAvailableSubtitles:
def test_dedup_by_lang_and_type(self):
ENG = SubtitleLanguage(code="eng", tokens=["en"])
tracks = [
SubtitleCandidate(language=FRA, format=SRT, subtitle_type=SubtitleType.STANDARD),
SubtitleCandidate(language=FRA, format=SRT, subtitle_type=SubtitleType.STANDARD),
SubtitleCandidate(
language=FRA, format=SRT, subtitle_type=SubtitleType.STANDARD
),
SubtitleCandidate(
language=FRA, format=SRT, subtitle_type=SubtitleType.STANDARD
),
SubtitleCandidate(language=FRA, format=SRT, subtitle_type=SubtitleType.SDH),
SubtitleCandidate(language=ENG, format=SRT, subtitle_type=SubtitleType.STANDARD),
SubtitleCandidate(
language=ENG, format=SRT, subtitle_type=SubtitleType.STANDARD
),
]
result = available_subtitles(tracks)
keys = [(t.language.code, t.subtitle_type) for t in result]
+7 -7
View File
@@ -182,11 +182,13 @@ class TestEpisode:
assert e.has_audio_in("ger") is False
def test_has_audio_in_with_language(self):
lang = Language(iso="fre", english_name="French", native_name="Français",
aliases=("fr", "fra", "french"))
e = self._ep(
audio_tracks=[AudioTrack(0, "ac3", 6, "5.1", "fr")]
lang = Language(
iso="fre",
english_name="French",
native_name="Français",
aliases=("fr", "fra", "french"),
)
e = self._ep(audio_tracks=[AudioTrack(0, "ac3", 6, "5.1", "fr")])
# str query "fre" wouldn't match "fr" directly — but Language does cross-format
assert e.has_audio_in(lang) is True
assert e.has_audio_in("fre") is False # direct compare misses
@@ -205,9 +207,7 @@ class TestEpisode:
# ── Subtitle helpers ───────────────────────────────────────────────
def test_has_subtitles_in(self):
e = self._ep(
subtitle_tracks=[SubtitleTrack(0, "subrip", "fre")]
)
e = self._ep(subtitle_tracks=[SubtitleTrack(0, "subrip", "fre")])
assert e.has_subtitles_in("fre") is True
assert e.has_subtitles_in("eng") is False