refactor(subtitles): RuleScope.level → RuleScopeLevel enum
Six niveaux possibles (global, release_group, movie, show, season, episode) étaient passés en str libre, le commentaire docstring servant de seule documentation. Introduit RuleScopeLevel(str, Enum) — toujours sérialisable en YAML, mais le set fixe est désormais imposé par le typage. to_dict() sort explicitement .value pour rester safe côté écrivains YAML.
This commit is contained in:
@@ -28,6 +28,7 @@ from alfred.domain.subtitles.entities import MediaSubtitleMetadata, SubtitleCand
|
||||
from alfred.domain.subtitles.services.utils import available_subtitles
|
||||
from alfred.domain.subtitles.value_objects import (
|
||||
RuleScope,
|
||||
RuleScopeLevel,
|
||||
SubtitleFormat,
|
||||
SubtitleLanguage,
|
||||
SubtitleMatchingRules,
|
||||
@@ -257,7 +258,7 @@ class TestSubtitleRuleSet:
|
||||
def test_override_partial_keeps_parent_for_unset_fields(self):
|
||||
parent = SubtitleRuleSet.global_default()
|
||||
child = SubtitleRuleSet(
|
||||
scope=RuleScope(level="show", identifier="tt1"),
|
||||
scope=RuleScope(level=RuleScopeLevel.SHOW, identifier="tt1"),
|
||||
parent=parent,
|
||||
)
|
||||
child.override(languages=["jpn"])
|
||||
@@ -267,14 +268,14 @@ class TestSubtitleRuleSet:
|
||||
assert rules.min_confidence == parent.resolve(_DEFAULT_RULES).min_confidence
|
||||
|
||||
def test_to_dict_only_emits_set_deltas(self):
|
||||
rs = SubtitleRuleSet(scope=RuleScope(level="show", identifier="tt1"))
|
||||
rs = SubtitleRuleSet(scope=RuleScope(level=RuleScopeLevel.SHOW, identifier="tt1"))
|
||||
rs.override(languages=["fra"])
|
||||
out = rs.to_dict()
|
||||
assert out["scope"] == {"level": "show", "identifier": "tt1"}
|
||||
assert out["override"] == {"languages": ["fra"]}
|
||||
|
||||
def test_to_dict_full_override(self):
|
||||
rs = SubtitleRuleSet(scope=RuleScope(level="global"))
|
||||
rs = SubtitleRuleSet(scope=RuleScope(level=RuleScopeLevel.GLOBAL))
|
||||
rs.override(
|
||||
languages=["fra"],
|
||||
formats=["srt"],
|
||||
|
||||
Reference in New Issue
Block a user