mirror of
https://github.com/chidiwilliams/buzz.git
synced 2026-03-14 14:45:46 +01:00
73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
import pathlib
|
|
import uuid
|
|
|
|
import pytest
|
|
from PyQt6.QtCore import QObject, pyqtSignal
|
|
from pytestqt.qtbot import QtBot
|
|
|
|
from buzz.db.entity.transcription import Transcription
|
|
from buzz.db.entity.transcription_segment import TranscriptionSegment
|
|
from buzz.model_loader import ModelType, WhisperModelSize
|
|
from buzz.transcriber.transcriber import Task
|
|
from buzz.widgets.transcription_viewer.export_transcription_menu import (
|
|
ExportTranscriptionMenu,
|
|
)
|
|
from tests.audio import test_audio_path
|
|
|
|
|
|
class TranslationSignal(QObject):
|
|
translation = pyqtSignal(str, int)
|
|
|
|
|
|
class TestExportTranscriptionMenu:
|
|
@pytest.fixture()
|
|
def transcription(
|
|
self, transcription_dao, transcription_segment_dao
|
|
) -> Transcription:
|
|
id = uuid.uuid4()
|
|
transcription_dao.insert(
|
|
Transcription(
|
|
id=str(id),
|
|
status="completed",
|
|
file=test_audio_path,
|
|
task=Task.TRANSCRIBE.value,
|
|
model_type=ModelType.WHISPER.value,
|
|
whisper_model_size=WhisperModelSize.TINY.value,
|
|
)
|
|
)
|
|
transcription_segment_dao.insert(TranscriptionSegment(40, 299, "Bien", "", str(id)))
|
|
transcription_segment_dao.insert(
|
|
TranscriptionSegment(299, 329, "venue dans", "", str(id))
|
|
)
|
|
|
|
return transcription_dao.find_by_id(str(id))
|
|
|
|
def test_should_export_segments(
|
|
self,
|
|
tmp_path: pathlib.Path,
|
|
qtbot: QtBot,
|
|
transcription,
|
|
transcription_service,
|
|
shortcuts,
|
|
mocker,
|
|
):
|
|
output_file_path = tmp_path / "whisper.txt"
|
|
mocker.patch(
|
|
"PyQt6.QtWidgets.QFileDialog.getSaveFileName",
|
|
return_value=(str(output_file_path), ""),
|
|
)
|
|
|
|
translation_signal = TranslationSignal()
|
|
|
|
widget = ExportTranscriptionMenu(
|
|
transcription,
|
|
transcription_service,
|
|
False,
|
|
translation_signal.translation
|
|
)
|
|
qtbot.add_widget(widget)
|
|
|
|
widget.actions()[0].trigger()
|
|
|
|
with open(output_file_path, encoding="utf-8") as output_file:
|
|
assert "Bien venue dans" in output_file.read()
|