import ast import unittest from pathlib import Path APP_PATH = Path(__file__).parents[1] / "app.py" class ReferenceTranscriptWiringTests(unittest.TestCase): def test_audio_upload_writes_asr_text_to_reference_transcript(self): tree = ast.parse(APP_PATH.read_text(encoding="utf-8")) upload_calls = [ node for node in ast.walk(tree) if isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute) and node.func.attr == "upload" and isinstance(node.func.value, ast.Name) and node.func.value.id == "clone_prompt_audio" ] self.assertEqual(len(upload_calls), 1) upload_call = upload_calls[0] self.assertIsInstance(upload_call.args[0], ast.Name) self.assertEqual(upload_call.args[0].id, "transcribe_reference") keywords = {keyword.arg: keyword.value for keyword in upload_call.keywords} self.assertEqual( [item.id for item in keywords["inputs"].elts], ["clone_prompt_audio"], ) self.assertEqual( [item.id for item in keywords["outputs"].elts], ["clone_prompt_text"], ) if __name__ == "__main__": unittest.main()