import json import tempfile import unittest from pathlib import Path from unittest.mock import patch from engine.integracoes.apple_speech import ProviderDeTranscricaoApple class TesteProviderDeTranscricaoApple(unittest.TestCase): @patch("engine.integracoes.apple_speech.provider_de_transcricao_apple.subprocess.run") def test_transcreve_em_pt_br_no_dispositivo_e_preserva_timestamps(self, executar): executar.return_value = type("Resultado", (), { "stdout": json.dumps({"segmentos": [ {"inicio": 1.25, "fim": 2.75, "texto": " Olá mundo ", "confianca": 0.93}, ]}), })() with tempfile.TemporaryDirectory() as pasta: arquivo = Path(pasta) / "video.mp4" arquivo.write_bytes(b"video") clipe = type("Clipe", (), {"arquivo": str(arquivo)})() resultado = ProviderDeTranscricaoApple(executavel="transcritor").transcrever(clipe) self.assertEqual(resultado[0].texto, "Olá mundo") self.assertEqual((resultado[0].inicio, resultado[0].fim), (1.25, 2.75)) comando = executar.call_args.args[0] self.assertEqual(comando, ["transcritor", str(arquivo), "pt-BR", "true"]) if __name__ == "__main__": unittest.main()