Files
meetus/tests/test_makefile.py
Mariano Gabriel 8606520ef2 doocus improvemnts
2026-07-05 20:35:44 -03:00

65 lines
2.4 KiB
Python

"""Smoke for the Makefile wrapper: OUT defaults to IN, the baked-in FLAGS, and
the AUDIO_LANG knob (named to avoid the LANG locale env var)."""
import os
import shutil
import subprocess
import tempfile
import unittest
from pathlib import Path
from tests import REPO_ROOT
def make(target, **vars):
args = ["make", target] + [f"{k}={v}" for k, v in vars.items()]
return subprocess.run(args, cwd=REPO_ROOT, capture_output=True, text=True,
env=dict(os.environ))
@unittest.skipUnless(shutil.which("make"), "make not installed")
class TestMakefile(unittest.TestCase):
def test_dry_out_defaults_to_in(self):
with tempfile.TemporaryDirectory() as tmp:
ind = Path(tmp) / "in"
ind.mkdir()
(ind / "x.mp4").touch()
r = make("dry", IN=str(ind))
self.assertEqual(r.returncode, 0, r.stderr)
self.assertIn(f"Output: {ind}", r.stdout)
self.assertIn("Found 1 video", r.stdout)
def test_batch_baked_in_flags(self):
with tempfile.TemporaryDirectory() as tmp:
ind = Path(tmp) / "in"
ind.mkdir()
(ind / "x.mp4").touch()
r = make("batch", IN=str(ind), PYTHON="echo")
self.assertEqual(r.returncode, 0, r.stderr)
line = next(l for l in r.stdout.splitlines() if "process_meeting.py" in l)
self.assertIn("--scene-threshold 10", line)
self.assertIn("--transcript-formats srt", line)
self.assertIn("--embed-images", line)
self.assertIn("--language en", line) # AUDIO_LANG defaults to en
def test_audio_lang_appends_language(self):
with tempfile.TemporaryDirectory() as tmp:
ind = Path(tmp) / "in"
ind.mkdir()
(ind / "x.mp4").touch()
r = make("batch", IN=str(ind), PYTHON="echo", AUDIO_LANG="es")
self.assertEqual(r.returncode, 0, r.stderr)
self.assertIn("--language es", r.stdout)
def test_out_format_forwarded(self):
with tempfile.TemporaryDirectory() as tmp:
ind = Path(tmp) / "in"
ind.mkdir()
(ind / "x.mp4").touch()
r = make("batch", IN=str(ind), PYTHON="echo", OUT_FORMAT="{name}.meetus")
self.assertEqual(r.returncode, 0, r.stderr)
self.assertIn("--out-format {name}.meetus", r.stdout)
if __name__ == "__main__":
unittest.main()