From 59b4e1e10924e9668bc0bf35db550741efbd6687 Mon Sep 17 00:00:00 2001 From: Raivis Dejus Date: Sun, 22 Feb 2026 15:25:37 +0200 Subject: [PATCH] Adding tests --- buzz/widgets/recording_transcriber_widget.py | 2 +- .../widgets/advanced_settings_dialog_test.py | 84 +++++++++++++++++++ .../recording_transcriber_widget_test.py | 46 ++++++++++ 3 files changed, 131 insertions(+), 1 deletion(-) diff --git a/buzz/widgets/recording_transcriber_widget.py b/buzz/widgets/recording_transcriber_widget.py index 1d7e49dd..aa040273 100644 --- a/buzz/widgets/recording_transcriber_widget.py +++ b/buzz/widgets/recording_transcriber_widget.py @@ -245,7 +245,7 @@ class RecordingTranscriberWidget(QWidget): layout.addWidget(text_size_label) self.text_size_spinbox = QSpinBox(bar) - self.text_size_spinbox.setRange(12, 72) #12pt to 72pt + self.text_size_spinbox.setRange(10, 100) #10pt to 100pt saved_text_size = self.settings.value( Settings.Key.PRESENTATION_WINDOW_TEXT_SIZE, diff --git a/tests/widgets/advanced_settings_dialog_test.py b/tests/widgets/advanced_settings_dialog_test.py index 071391a8..0809b550 100644 --- a/tests/widgets/advanced_settings_dialog_test.py +++ b/tests/widgets/advanced_settings_dialog_test.py @@ -59,6 +59,90 @@ class TestAdvancedSettingsDialogSilenceThreshold: assert emitted[0].silence_threshold == pytest.approx(0.005) +class TestAdvancedSettingsDialogLineSeparator: + def test_line_separator_shown_when_recording_settings(self, qtbot: QtBot): + options = TranscriptionOptions() + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + assert hasattr(dialog, "line_separator_line_edit") + assert dialog.line_separator_line_edit is not None + + def test_line_separator_hidden_by_default(self, qtbot: QtBot): + options = TranscriptionOptions() + dialog = AdvancedSettingsDialog(transcription_options=options) + qtbot.add_widget(dialog) + assert not hasattr(dialog, "line_separator_line_edit") + + def test_line_separator_initial_value_displayed_as_escape(self, qtbot: QtBot): + options = TranscriptionOptions(line_separator="\n\n") + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + assert dialog.line_separator_line_edit.text() == r"\n\n" + + def test_line_separator_change_updates_options(self, qtbot: QtBot): + options = TranscriptionOptions(line_separator="\n\n") + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + dialog.line_separator_line_edit.setText(r"\n") + assert dialog.transcription_options.line_separator == "\n" + + def test_line_separator_change_emits_signal(self, qtbot: QtBot): + options = TranscriptionOptions(line_separator="\n\n") + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + emitted = [] + dialog.transcription_options_changed.connect(lambda o: emitted.append(o)) + dialog.line_separator_line_edit.setText(r"\n") + assert len(emitted) == 1 + assert emitted[0].line_separator == "\n" + + def test_line_separator_invalid_escape_does_not_crash(self, qtbot: QtBot): + options = TranscriptionOptions(line_separator="\n\n") + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + dialog.line_separator_line_edit.setText("\\") + # Options unchanged — previous valid value kept + assert dialog.transcription_options.line_separator == "\n\n" + + def test_line_separator_tab_character(self, qtbot: QtBot): + options = TranscriptionOptions() + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + dialog.line_separator_line_edit.setText(r"\t") + assert dialog.transcription_options.line_separator == "\t" + + def test_line_separator_plain_text(self, qtbot: QtBot): + options = TranscriptionOptions() + dialog = AdvancedSettingsDialog( + transcription_options=options, show_recording_settings=True + ) + qtbot.add_widget(dialog) + dialog.line_separator_line_edit.setText(" | ") + assert dialog.transcription_options.line_separator == " | " + + +class TestTranscriptionOptionsLineSeparator: + def test_default_line_separator(self): + options = TranscriptionOptions() + assert options.line_separator == "\n\n" + + def test_custom_line_separator(self): + options = TranscriptionOptions(line_separator="\n") + assert options.line_separator == "\n" + + class TestTranscriptionOptionsSilenceThreshold: def test_default_silence_threshold(self): options = TranscriptionOptions() diff --git a/tests/widgets/recording_transcriber_widget_test.py b/tests/widgets/recording_transcriber_widget_test.py index 6d080513..333c72ca 100644 --- a/tests/widgets/recording_transcriber_widget_test.py +++ b/tests/widgets/recording_transcriber_widget_test.py @@ -193,6 +193,52 @@ class TestRecordingTranscriberWidget: widget.close() +class TestRecordingTranscriberWidgetLineSeparator: + @pytest.mark.timeout(60) + def test_line_separator_loaded_from_settings(self, qtbot: QtBot): + settings = Settings() + settings.set_value(Settings.Key.RECORDING_TRANSCRIBER_LINE_SEPARATOR, "\n") + + with _widget_ctx(qtbot) as widget: + assert widget.transcription_options.line_separator == "\n" + + @pytest.mark.timeout(60) + def test_line_separator_saved_on_close(self, qtbot: QtBot): + settings = Settings() + + with _widget_ctx(qtbot) as widget: + widget.transcription_options.line_separator = " | " + + assert settings.value(Settings.Key.RECORDING_TRANSCRIBER_LINE_SEPARATOR, "") == " | " + + @pytest.mark.timeout(60) + def test_line_separator_used_in_append_below(self, qtbot: QtBot): + with _widget_ctx(qtbot) as widget: + widget.transcription_options.line_separator = " | " + widget.transcriber_mode = RecordingTranscriberMode.APPEND_BELOW + widget.on_next_transcription("first") + widget.on_next_transcription("second") + assert widget.transcription_text_box.toPlainText() == "first | second" + + @pytest.mark.timeout(60) + def test_line_separator_used_in_append_above(self, qtbot: QtBot): + with _widget_ctx(qtbot) as widget: + widget.transcription_options.line_separator = " | " + widget.transcriber_mode = RecordingTranscriberMode.APPEND_ABOVE + widget.on_next_transcription("first") + widget.on_next_transcription("second") + assert widget.transcription_text_box.toPlainText() == "second | first | " + + @pytest.mark.timeout(60) + def test_line_separator_used_in_translation_append_below(self, qtbot: QtBot): + with _widget_ctx(qtbot) as widget: + widget.transcription_options.line_separator = " | " + widget.transcriber_mode = RecordingTranscriberMode.APPEND_BELOW + widget.on_next_translation("hello") + widget.on_next_translation("world") + assert widget.translation_text_box.toPlainText() == "hello | world" + + class TestRecordingTranscriberWidgetSilenceThreshold: @pytest.mark.timeout(60) def test_silence_threshold_loaded_from_settings(self, qtbot: QtBot):