buzz/tests/widgets/preferences_dialog/general_preferences_widget_test.py
2024-03-14 22:05:42 +00:00

56 lines
1.8 KiB
Python

from PyQt6.QtWidgets import QPushButton, QMessageBox, QLineEdit
from buzz.widgets.preferences_dialog.general_preferences_widget import (
GeneralPreferencesWidget,
)
class TestGeneralPreferencesWidget:
def test_should_disable_test_button_if_no_api_key(self, qtbot, mocker):
mocker.patch(
"buzz.widgets.preferences_dialog.general_preferences_widget.get_password",
return_value="",
)
widget = GeneralPreferencesWidget()
qtbot.add_widget(widget)
test_button = widget.findChild(QPushButton)
assert isinstance(test_button, QPushButton)
assert test_button.text() == "Test"
assert not test_button.isEnabled()
line_edit = widget.findChild(QLineEdit)
assert isinstance(line_edit, QLineEdit)
line_edit.setText("123")
assert test_button.isEnabled()
def test_should_test_openai_api_key(self, qtbot, mocker):
mocker.patch(
"buzz.widgets.preferences_dialog.general_preferences_widget.get_password",
return_value="wrong-api-key",
)
widget = GeneralPreferencesWidget()
qtbot.add_widget(widget)
test_button = widget.findChild(QPushButton)
assert isinstance(test_button, QPushButton)
test_button.click()
message_box_warning_mock = mocker.Mock()
QMessageBox.warning = message_box_warning_mock
def mock_called():
message_box_warning_mock.assert_called()
assert message_box_warning_mock.call_args[0][1] == "OpenAI API Key Test"
assert (
message_box_warning_mock.call_args[0][2]
== "Incorrect API key provided: wrong-ap*-key. You can find your "
"API key at https://platform.openai.com/account/api-keys."
)
qtbot.waitUntil(mock_called)