Misc Opts
This commit is contained in:
86
tests/unit/test_screen_support.py
Normal file
86
tests/unit/test_screen_support.py
Normal file
@@ -0,0 +1,86 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
|
||||
SRC_ROOT = Path(__file__).resolve().parents[2] / "src"
|
||||
|
||||
if str(SRC_ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(SRC_ROOT))
|
||||
|
||||
|
||||
from ffx import screen_support # noqa: E402
|
||||
|
||||
|
||||
class StaticConfig:
|
||||
def __init__(self, data):
|
||||
self._data = data
|
||||
|
||||
def getData(self):
|
||||
return self._data
|
||||
|
||||
|
||||
class ScreenSupportTests(unittest.TestCase):
|
||||
def make_context(self):
|
||||
return {
|
||||
"config": StaticConfig(
|
||||
{
|
||||
"metadata": {
|
||||
"signature": {"RECODED_WITH": "FFX"},
|
||||
"remove": ["VERSION-eng"],
|
||||
"ignore": ["ENCODER"],
|
||||
"streams": {
|
||||
"remove": ["BPS"],
|
||||
"ignore": ["language"],
|
||||
},
|
||||
}
|
||||
}
|
||||
),
|
||||
"database": {"session": object()},
|
||||
}
|
||||
|
||||
def test_build_screen_bootstrap_extracts_metadata_filters(self):
|
||||
context = self.make_context()
|
||||
|
||||
bootstrap = screen_support.build_screen_bootstrap(context)
|
||||
|
||||
self.assertIs(context, bootstrap.context)
|
||||
self.assertEqual({"RECODED_WITH": "FFX"}, bootstrap.signature_tags)
|
||||
self.assertEqual(["VERSION-eng"], bootstrap.remove_global_keys)
|
||||
self.assertEqual(["ENCODER"], bootstrap.ignore_global_keys)
|
||||
self.assertEqual(["BPS"], bootstrap.remove_track_keys)
|
||||
self.assertEqual(["language"], bootstrap.ignore_track_keys)
|
||||
|
||||
def test_build_screen_controllers_only_creates_requested_instances(self):
|
||||
context = self.make_context()
|
||||
|
||||
with (
|
||||
patch.object(screen_support, "PatternController", side_effect=lambda context: ("pattern", context)),
|
||||
patch.object(screen_support, "ShowController", side_effect=lambda context: ("show", context)),
|
||||
patch.object(screen_support, "TmdbController", side_effect=lambda: "tmdb"),
|
||||
patch.object(screen_support, "ShiftedSeasonController", side_effect=lambda context: ("shifted", context)),
|
||||
):
|
||||
controllers = screen_support.build_screen_controllers(
|
||||
context,
|
||||
pattern=True,
|
||||
show=True,
|
||||
tmdb=True,
|
||||
shifted_season=True,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
{
|
||||
"pattern": ("pattern", context),
|
||||
"show": ("show", context),
|
||||
"tmdb": "tmdb",
|
||||
"shifted_season": ("shifted", context),
|
||||
},
|
||||
controllers,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user