import tempfile import unittest from pathlib import Path from unittest.mock import patch from engine.integracoes.midia import ExtracaoDeAudio class TesteExtracaoDeAudio(unittest.TestCase): def test_rejeita_arquivo_inexistente(self): with self.assertRaises(FileNotFoundError): ExtracaoDeAudio().extrair("/arquivo/inexistente.mp4", "/tmp/audio") @patch("engine.integracoes.midia.extracao_de_audio.subprocess.run") def test_prepara_audio_mono_16khz_e_divide_em_partes(self, executar): executar.side_effect = [type("R", (), {"stdout": "12.0\n"})(), None, None] with tempfile.TemporaryDirectory() as pasta: video = Path(pasta) / "video.mp4" video.write_bytes(b"video") partes = ExtracaoDeAudio(duracao_da_parte=10).extrair(video, Path(pasta) / "audio") self.assertEqual([(p.inicio, p.fim) for p in partes], [(0.0, 10.0), (10.0, 12.0)]) comando = executar.call_args_list[1].args[0] self.assertIn("-ac", comando) self.assertIn("1", comando) self.assertIn("-ar", comando) self.assertIn("16000", comando)