buzz/tests/widgets/shortcuts_editor_widget_test.py
2024-03-15 17:38:35 +00:00

46 lines
1.8 KiB
Python

from PyQt6.QtWidgets import QPushButton, QLabel
from pytestqt.qtbot import QtBot
from buzz.widgets.preferences_dialog.shortcuts_editor_preferences_widget import (
ShortcutsEditorPreferencesWidget,
)
from buzz.widgets.sequence_edit import SequenceEdit
class TestShortcutsEditorWidget:
def test_should_update_shortcuts(self, qtbot: QtBot, shortcuts):
widget = ShortcutsEditorPreferencesWidget(shortcuts=shortcuts)
qtbot.add_widget(widget)
sequence_edit = widget.findChild(SequenceEdit)
assert sequence_edit.keySequence().toString() == "Ctrl+R"
with qtbot.wait_signal(widget.shortcuts_changed, timeout=1000):
sequence_edit.setKeySequence("Ctrl+Shift+R")
def test_should_reset_to_defaults(self, qtbot, shortcuts):
widget = ShortcutsEditorPreferencesWidget(shortcuts=shortcuts)
qtbot.add_widget(widget)
reset_button = widget.findChild(QPushButton)
assert isinstance(reset_button, QPushButton)
reset_button.click()
labels = widget.findChildren(QLabel)
sequence_edits = widget.findChildren(SequenceEdit)
expected = (
("Open Record Window", "Ctrl+R"),
("Import File", "Ctrl+O"),
("Import URL", "Ctrl+U"),
("Open Preferences Window", "Ctrl+,"),
("View Transcript Text", "Ctrl+E"),
("View Transcript Timestamps", "Ctrl+T"),
("Clear History", "Ctrl+S"),
("Cancel Transcription", "Ctrl+X"),
)
for i, (label, sequence_edit) in enumerate(zip(labels, sequence_edits)):
assert isinstance(label, QLabel)
assert isinstance(sequence_edit, SequenceEdit)
assert label.text() == expected[i][0]
assert sequence_edit.keySequence().toString() == expected[i][1]