Files
jhonny-editor/code/engine/testes/test_executar_scanner.py
T
João Henrique 4c04365934 feat: criada a guia Trilhas com processamento em lote e progresso
- criada a guia Trilhas com processamento em lote e progresso por música
- simplificada a guia Trilhas para ocultar a configuração interna dos modelos

Resumo:
- 12 arquivos alterados
- 1 novos
- 11 modificados
- 0 removidos

 11 files changed, 173 insertions(+), 41 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/cep-plugin/styles.css
  - code/engine/analisar_trilhas.py
  - code/engine/carregar_plano_de_edicao.py
  - code/engine/executar_scanner.py
  - code/engine/persistencia/__init__.py
  - code/engine/persistencia/repositorio_de_trilhas.py
  - code/engine/testes/test_carregar_plano_de_edicao.py
  - code/engine/testes/test_executar_scanner.py
  - code/engine/testes/test_repositorio_de_trilhas.py
2026-09-10 13:59:25 -04:00

66 lines
2.4 KiB
Python

"""Testes do ponto de entrada usado pelo painel CEP para o Scanner."""
import subprocess
import sys
from pathlib import Path
import unittest
from engine.dominio import Clipe, IntervaloDeTempo
from engine.executar_scanner import serializar_clipe_para_relatorio
class TesteDoPontoDeEntradaDoScanner(unittest.TestCase):
"""Garante que o Scanner possa ser iniciado pelo caminho usado no painel."""
def test_ponto_de_entrada_direto_carrega_o_pacote_engine(self):
"""Executa o arquivo diretamente sem falhar ao importar ``engine``."""
caminho_do_script = Path(__file__).resolve().parents[1] / "executar_scanner.py"
resultado = subprocess.run(
[sys.executable, str(caminho_do_script), "--help"],
cwd=caminho_do_script.parent.parent,
capture_output=True,
text=True,
check=False,
)
self.assertEqual(resultado.returncode, 0, resultado.stderr)
self.assertIn("usage:", resultado.stdout)
self.assertNotIn("No module named 'engine'", resultado.stderr)
def test_ponto_de_entrada_disponibiliza_extracao_de_audio_para_complementos(self):
"""Garante que o complemento de locutores encontre o extrator de áudio."""
caminho_do_script = Path(__file__).resolve().parents[1] / "executar_scanner.py"
resultado = subprocess.run(
[
sys.executable,
"-c",
"import executar_scanner; assert executar_scanner.ExtracaoDeAudio",
],
cwd=caminho_do_script.parent,
capture_output=True,
text=True,
check=False,
)
self.assertEqual(resultado.returncode, 0, resultado.stderr)
def test_relatorio_de_audio_preserva_caminho_e_intervalo_da_origem(self):
"""Mantém no artefato os dados necessários para aplicar o plano depois."""
clipe = Clipe(
identificador="clipe-1",
nome="0E6A8829.MP4",
intervalo_na_timeline=IntervaloDeTempo(0.0, 100.0),
intervalo_na_origem=IntervaloDeTempo(20.0, 120.0),
arquivo="/Volumes/Midia/0E6A8829.MP4",
)
dados = serializar_clipe_para_relatorio(clipe)
self.assertEqual(dados["sourceFile"], "/Volumes/Midia/0E6A8829.MP4")
self.assertEqual(dados["inPoint"], 20.0)
self.assertEqual(dados["outPoint"], 120.0)
if __name__ == "__main__":
unittest.main()