Adding tests

This commit is contained in:
Raivis Dejus 2026-02-22 15:25:37 +02:00
commit 59b4e1e109
3 changed files with 131 additions and 1 deletions

View file

@ -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,

View file

@ -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()

View file

@ -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):