feat(settings): use radio buttons for gateway

This commit is contained in:
chengma
2026-07-21 09:07:04 +08:00
parent 4217f855ac
commit 415efe91a8
6 changed files with 396 additions and 12 deletions
+18
View File
@@ -42,6 +42,7 @@ from PySide6.QtWidgets import (
QPlainTextEdit,
QProgressBar,
QPushButton,
QRadioButton,
QTableView,
)
@@ -3055,11 +3056,22 @@ class GuiTests(TempDirMixin, unittest.TestCase):
)
self.addCleanup(tab.close)
self.assertIsInstance(tab.gateway_default_button, QRadioButton)
self.assertIsInstance(tab.gateway_custom_button, QRadioButton)
self.assertEqual(0, tab.gateway_selector.layout().spacing())
self.assertEqual(2, tab.gateway_selector.layout().count())
self.assertTrue(tab.gateway_default_button.isChecked())
self.assertFalse(tab.gateway_custom_button.isChecked())
self.assertFalse(tab.cmhub_panel.isHidden())
self.assertTrue(tab.model_picker_panel.isHidden())
tab.show()
self.app.processEvents()
tab.gateway_default_button.setFocus()
QTest.keyClick(tab.gateway_default_button, Qt.Key_Right)
self.assertTrue(tab.gateway_custom_button.isChecked())
self.assertFalse(tab.gateway_default_button.isChecked())
tab.gateway_custom_button.setChecked(True)
self.assertTrue(tab.gateway_custom_button.isChecked())
self.assertFalse(tab.gateway_default_button.isChecked())
@@ -3074,6 +3086,12 @@ class GuiTests(TempDirMixin, unittest.TestCase):
self.assertEqual("direct", appconfig.load_config(cfg["config_path"])["ai"]["backend"])
tab.gateway_default_button.setChecked(True)
self.assertTrue(tab.is_dirty())
self.assertTrue(tab.discard_unsaved_changes())
self.assertFalse(tab.gateway_default_button.isChecked())
self.assertTrue(tab.gateway_custom_button.isChecked())
self.assert_removed(temp_dir)
def test_settings_tab_cmhub_alias_refresh_filters_unpriced_and_keeps_saved(self):