buzz/tests/widgets/file_transcriber_widget_test.py

37 lines
1.2 KiB
Python

from unittest.mock import Mock
from PyQt6.QtCore import Qt
from pytestqt.qtbot import QtBot
from buzz.widgets.transcriber.file_transcriber_widget import FileTranscriberWidget
from tests.audio import test_audio_path
class TestFileTranscriberWidget:
def test_should_set_window_title(self, qtbot: QtBot):
widget = FileTranscriberWidget(
file_paths=[test_audio_path],
)
qtbot.add_widget(widget)
assert widget.windowTitle() == "whisper-french.mp3"
def test_should_emit_triggered_event(self, qtbot: QtBot):
widget = FileTranscriberWidget(
file_paths=[test_audio_path],
)
qtbot.add_widget(widget)
mock_triggered = Mock()
widget.triggered.connect(mock_triggered)
with qtbot.wait_signal(widget.triggered, timeout=30 * 1000):
qtbot.mouseClick(widget.run_button, Qt.MouseButton.LeftButton)
(
transcription_options,
file_transcription_options,
model_path,
) = mock_triggered.call_args[0][0]
assert transcription_options.language is None
assert file_transcription_options.file_paths == [test_audio_path]
assert len(model_path) > 0