- Adicionado estrutura completa do projeto - Configurado MCP server para Premiere Pro - Adicionado documentação e skills - Configurado Gitignore para o projeto
28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
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)
|
|
|