Adapt unmux command to changes in convert command
This commit is contained in:
94
tests/unit/test_cli_unmux_output_directory.py
Normal file
94
tests/unit/test_cli_unmux_output_directory.py
Normal file
@@ -0,0 +1,94 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
import click
|
||||
|
||||
|
||||
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 cli # noqa: E402
|
||||
|
||||
|
||||
class StaticConfig:
|
||||
def __init__(self, subtitles_directory: str = ""):
|
||||
self._subtitles_directory = subtitles_directory
|
||||
|
||||
def getSubtitlesDirectoryPath(self):
|
||||
return self._subtitles_directory
|
||||
|
||||
|
||||
class UnmuxOutputDirectoryTests(unittest.TestCase):
|
||||
def test_subtitles_only_with_label_uses_configured_subtitles_base_directory(self):
|
||||
with tempfile.TemporaryDirectory() as tempdir:
|
||||
context = {
|
||||
"config": StaticConfig(str(Path(tempdir) / "subtitles")),
|
||||
}
|
||||
|
||||
resolved_output_directory, should_create = cli.resolveUnmuxOutputDirectory(
|
||||
context,
|
||||
"",
|
||||
True,
|
||||
"dball",
|
||||
)
|
||||
|
||||
self.assertEqual(str(Path(tempdir) / "subtitles" / "dball"), resolved_output_directory)
|
||||
self.assertTrue(should_create)
|
||||
|
||||
def test_explicit_output_directory_keeps_existing_behavior(self):
|
||||
with tempfile.TemporaryDirectory() as tempdir:
|
||||
context = {
|
||||
"config": StaticConfig(str(Path(tempdir) / "subtitles")),
|
||||
}
|
||||
explicit_output_directory = str(Path(tempdir) / "manual")
|
||||
|
||||
resolved_output_directory, should_create = cli.resolveUnmuxOutputDirectory(
|
||||
context,
|
||||
explicit_output_directory,
|
||||
True,
|
||||
"dball",
|
||||
)
|
||||
|
||||
self.assertEqual(explicit_output_directory, resolved_output_directory)
|
||||
self.assertFalse(should_create)
|
||||
|
||||
def test_subtitles_only_without_label_keeps_existing_behavior(self):
|
||||
context = {
|
||||
"config": StaticConfig("/tmp/subtitles"),
|
||||
}
|
||||
|
||||
resolved_output_directory, should_create = cli.resolveUnmuxOutputDirectory(
|
||||
context,
|
||||
"",
|
||||
True,
|
||||
"",
|
||||
)
|
||||
|
||||
self.assertEqual("", resolved_output_directory)
|
||||
self.assertFalse(should_create)
|
||||
|
||||
def test_subtitles_only_with_label_requires_configured_default_when_output_directory_is_missing(self):
|
||||
context = {
|
||||
"config": StaticConfig(""),
|
||||
}
|
||||
|
||||
with self.assertRaises(click.ClickException) as caught:
|
||||
cli.resolveUnmuxOutputDirectory(
|
||||
context,
|
||||
"",
|
||||
True,
|
||||
"dball",
|
||||
)
|
||||
|
||||
self.assertIn("subtitlesDirectory default", str(caught.exception))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user