feat(settings): support gateway source switching
This commit is contained in:
+42
-9
@@ -2970,6 +2970,39 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_settings_gateway_selector_switches_panels_and_persists_only_on_save(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
cfg["ai"] = appconfig.default_config()["ai"]
|
||||
cfg["ai"]["backend"] = "cmhub"
|
||||
tab = SettingsTab(
|
||||
config=cfg,
|
||||
config_path=cfg["config_path"],
|
||||
ai_models_path=cfg["ai_models_path"],
|
||||
)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
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.gateway_custom_button.setChecked(True)
|
||||
self.assertTrue(tab.gateway_custom_button.isChecked())
|
||||
self.assertFalse(tab.gateway_default_button.isChecked())
|
||||
self.assertTrue(tab.cmhub_panel.isHidden())
|
||||
self.assertFalse(tab.model_picker_panel.isHidden())
|
||||
self.assertFalse(tab.direct_role_panel.isHidden())
|
||||
self.assertTrue(tab.is_dirty())
|
||||
self.assertEqual("cmhub", appconfig.load_config(cfg["config_path"])["ai"]["backend"])
|
||||
|
||||
with mock.patch("app.gui.QMessageBox.information"):
|
||||
self.assertTrue(tab.save_app_settings())
|
||||
|
||||
self.assertEqual("direct", appconfig.load_config(cfg["config_path"])["ai"]["backend"])
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_settings_tab_cmhub_alias_refresh_filters_unpriced_and_keeps_saved(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
cfg = self.make_config(temp_dir)
|
||||
@@ -3103,8 +3136,8 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"points_balance": 66,
|
||||
}
|
||||
)
|
||||
self.assertIn("cmhub 账号「主账号」连接成功", tab.cmhub_result_label.text())
|
||||
self.assertNotIn("cmhub 账号「cmhub_user」", tab.cmhub_result_label.text())
|
||||
self.assertIn("账号「主账号」连接默认网关成功", tab.cmhub_result_label.text())
|
||||
self.assertNotIn("账号「cmhub_user」连接默认网关成功", tab.cmhub_result_label.text())
|
||||
self.assertIn("余额 66", tab.cmhub_result_label.text())
|
||||
self.assertEqual(tab.cmhub_result_label.text(), statuses[-1])
|
||||
|
||||
@@ -3116,7 +3149,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"points_balance": 67,
|
||||
}
|
||||
)
|
||||
self.assertIn("cmhub 账号「备用账号」连接成功", tab.cmhub_result_label.text())
|
||||
self.assertIn("账号「备用账号」连接默认网关成功", tab.cmhub_result_label.text())
|
||||
|
||||
tab._on_cmhub_finished(
|
||||
{
|
||||
@@ -3126,12 +3159,12 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"points_balance": 77,
|
||||
}
|
||||
)
|
||||
self.assertIn("cmhub 账号「o***r@example.com」连接成功", tab.cmhub_result_label.text())
|
||||
self.assertIn("账号「o***r@example.com」连接默认网关成功", tab.cmhub_result_label.text())
|
||||
self.assertNotIn("owner@example.com", tab.cmhub_result_label.text())
|
||||
|
||||
tab._on_cmhub_finished({"ok": True, "models": models, "points_balance": 88})
|
||||
self.assertIn("cmhub 连接成功", tab.cmhub_result_label.text())
|
||||
self.assertNotIn("cmhub 账号", tab.cmhub_result_label.text())
|
||||
self.assertIn("默认网关连接成功", tab.cmhub_result_label.text())
|
||||
self.assertNotIn("账号「", tab.cmhub_result_label.text())
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
def test_settings_tab_tracks_dirty_state_and_programmatic_cmhub_refresh_is_clean(self):
|
||||
@@ -3381,7 +3414,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertEqual("生图用时 0 秒", tab.cover_elapsed_label.text())
|
||||
self.assertEqual(tab.title_elapsed_label.width(), tab.cover_elapsed_label.width())
|
||||
self.assertEqual("generateCmhubBalanceLabel", tab.cmhub_balance_label.objectName())
|
||||
self.assertEqual("cmhub余额:未获取", tab.cmhub_balance_label.text())
|
||||
self.assertEqual("默认网关余额:未获取", tab.cmhub_balance_label.text())
|
||||
self.assertTrue(tab.cmhub_balance_label.isHidden())
|
||||
self.assertEqual(0, tab.title_progress_bar.value())
|
||||
self.assertEqual(0, tab.cover_progress_bar.value())
|
||||
@@ -3993,7 +4026,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
self.assertTrue(tab.cmhub_balance_label.isHidden())
|
||||
self.assertEqual("cmhub余额:未获取", tab.cmhub_balance_label.text())
|
||||
self.assertEqual("默认网关余额:未获取", tab.cmhub_balance_label.text())
|
||||
|
||||
tab._on_generate_progress(
|
||||
{
|
||||
@@ -4006,7 +4039,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"points_balance": 88,
|
||||
}
|
||||
)
|
||||
self.assertEqual("cmhub余额:88", tab.cmhub_balance_label.text())
|
||||
self.assertEqual("默认网关余额:88", tab.cmhub_balance_label.text())
|
||||
self.assertTrue(tab.cmhub_balance_label.isHidden())
|
||||
|
||||
with mock.patch("app.gui.QMessageBox.warning") as warning:
|
||||
|
||||
Reference in New Issue
Block a user