"""Smoke: the wired package imports, deprecated stays unwired, and the cleaned CLI surface is what we expect.""" import subprocess import sys import unittest from tests import REPO_ROOT, subprocess_env class TestImports(unittest.TestCase): def test_core_modules_import(self): import meetus # noqa: F401 import meetus.workflow # noqa: F401 (frame_extractor → cv2 stub) import meetus.frame_extractor # noqa: F401 import meetus.transcript_merger # noqa: F401 import meetus.output_manager # noqa: F401 import meetus.cache_manager # noqa: F401 def test_deprecated_importable_for_reference(self): import meetus.deprecated.ocr_processor # noqa: F401 import meetus.deprecated.vision_processor # noqa: F401 def test_workflow_does_not_import_deprecated(self): src = (REPO_ROOT / "meetus" / "workflow.py").read_text() self.assertNotIn("from .deprecated", src) self.assertNotIn("import deprecated", src) class TestCliHelp(unittest.TestCase): def _help(self, rel): return subprocess.run( [sys.executable, str(REPO_ROOT / rel), "--help"], cwd=REPO_ROOT, env=subprocess_env(), capture_output=True, text=True, ) def test_process_meeting_help_is_clean(self): r = self._help("process_meeting.py") self.assertEqual(r.returncode, 0, r.stderr) out = r.stdout for kept in ("--embed-images", "--diarize", "--transcript-formats", "--scene-detection", "--skip-cache-frames", "--extract-only"): self.assertIn(kept, out, f"{kept} should still be offered") for gone in ("--use-vision", "--use-hybrid", "--ocr-engine", "--hybrid-llm", "--vision-model", "--vision-context", "--no-deduplicate", "--skip-cache-analysis"): self.assertNotIn(gone, out, f"{gone} should be removed from the CLI") def test_summarizers_offer_output_dir(self): for rel in ("ctrl/summarize/summarize_simple.py", "ctrl/summarize/compile_meeting.py"): r = self._help(rel) self.assertEqual(r.returncode, 0, r.stderr) self.assertIn("--output-dir", r.stdout, rel) if __name__ == "__main__": unittest.main()