mirror of
https://github.com/chidiwilliams/buzz.git
synced 2026-03-16 15:45:49 +01:00
70 lines
2.4 KiB
Python
70 lines
2.4 KiB
Python
import uuid
|
|
|
|
import pytest
|
|
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.transcription_segments_editor_widget import (
|
|
TranscriptionSegmentsEditorWidget,
|
|
)
|
|
from buzz.widgets.transcription_viewer.transcription_viewer_widget import (
|
|
TranscriptionViewerWidget,
|
|
)
|
|
from tests.audio import test_audio_path
|
|
|
|
|
|
class TestTranscriptionViewerWidget:
|
|
@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.SMALL.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_display_segments(
|
|
self, qtbot: QtBot, transcription, transcription_service, shortcuts
|
|
):
|
|
widget = TranscriptionViewerWidget(
|
|
transcription, transcription_service, shortcuts
|
|
)
|
|
qtbot.add_widget(widget)
|
|
|
|
assert widget.windowTitle() == "whisper-french.mp3"
|
|
|
|
editor = widget.findChild(TranscriptionSegmentsEditorWidget)
|
|
assert isinstance(editor, TranscriptionSegmentsEditorWidget)
|
|
|
|
assert editor.model().index(0, 1).data() == 299
|
|
assert editor.model().index(0, 2).data() == 40
|
|
assert editor.model().index(0, 3).data() == "Bien"
|
|
|
|
def test_should_update_segment_text(
|
|
self, qtbot, transcription, transcription_service, shortcuts
|
|
):
|
|
widget = TranscriptionViewerWidget(
|
|
transcription, transcription_service, shortcuts
|
|
)
|
|
qtbot.add_widget(widget)
|
|
|
|
editor = widget.findChild(TranscriptionSegmentsEditorWidget)
|
|
assert isinstance(editor, TranscriptionSegmentsEditorWidget)
|
|
|
|
editor.model().setData(editor.model().index(0, 3), "Biens")
|