refactor(gui): move membership summary to window title
This commit is contained in:
+44
-19
@@ -635,21 +635,9 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
self.assertEqual(gui.display_name(), window.windowTitle())
|
||||
self.assertIsNone(window.findChild(QLabel, "appHeaderTitle"))
|
||||
subscription_label = window.findChild(QLabel, "subscriptionStatusLabel")
|
||||
self.assertIsNotNone(subscription_label)
|
||||
header = window.centralWidget().layout().itemAt(0).widget()
|
||||
self.assertEqual("appHeader", header.objectName())
|
||||
self.assertEqual("会员状态栏", header.accessibleName())
|
||||
margins = header.layout().contentsMargins()
|
||||
self.assertEqual(
|
||||
(18, 4, 18, 2),
|
||||
(
|
||||
margins.left(),
|
||||
margins.top(),
|
||||
margins.right(),
|
||||
margins.bottom(),
|
||||
),
|
||||
)
|
||||
self.assertIsNone(window.findChild(QLabel, "subscriptionStatusLabel"))
|
||||
self.assertEqual(1, window.centralWidget().layout().count())
|
||||
self.assertIs(window.tabs, window.centralWidget().layout().itemAt(0).widget())
|
||||
self.assertEqual(6, window.tabs.count())
|
||||
self.assertEqual(
|
||||
[
|
||||
@@ -11185,11 +11173,44 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
window._apply_subscription_status(status)
|
||||
|
||||
self.assertIn("主账号 · 专业版 · 有效至2026-08-20", window._subscription_label.text())
|
||||
self.assertEqual(
|
||||
"%s | 主账号 · 专业版 · 有效至2026-08-20" % gui.display_name(),
|
||||
window.windowTitle(),
|
||||
)
|
||||
self.assertTrue(
|
||||
all(window.tabs.isTabEnabled(index) for index in range(window.tabs.count()))
|
||||
)
|
||||
|
||||
def test_main_window_membership_title_uses_grace_and_resets_for_invalid_status(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
window = MainWindow(config=self.make_config(temp_dir))
|
||||
self.addCleanup(window.close)
|
||||
grace = subscription.SubscriptionStatus(
|
||||
subscription.STATUS_GRACE,
|
||||
account_name="主账号",
|
||||
plan_name="测试",
|
||||
expires_at="2026-08-21T23:59:59+08:00",
|
||||
grace_expires_at="2026-08-23T23:59:59+08:00",
|
||||
manage_url="https://cm.example.com/subscription",
|
||||
notice_id="private-notice",
|
||||
)
|
||||
|
||||
window._apply_subscription_status(grace)
|
||||
|
||||
self.assertEqual(
|
||||
"%s | 主账号 · 测试 · 宽限至2026-08-23" % gui.display_name(),
|
||||
window.windowTitle(),
|
||||
)
|
||||
self.assertNotIn("cm.example.com", window.windowTitle())
|
||||
self.assertNotIn("private-notice", window.windowTitle())
|
||||
|
||||
window._apply_subscription_status(
|
||||
subscription.SubscriptionStatus(subscription.STATUS_UNAVAILABLE)
|
||||
)
|
||||
|
||||
self.assertEqual(gui.display_name(), window.windowTitle())
|
||||
self.assertIn("当前不影响使用", window.statusBar().currentMessage())
|
||||
|
||||
def test_main_window_restricts_tabs_when_subscription_is_invalid(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
window = MainWindow(config=self.make_config(temp_dir))
|
||||
@@ -11252,7 +11273,8 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
worker_factory.assert_called_once()
|
||||
self.assertTrue(thread.started)
|
||||
self.assertEqual("会员:正在验证", window._subscription_label.text())
|
||||
self.assertEqual(gui.display_name(), window.windowTitle())
|
||||
self.assertEqual("正在验证会员状态", window.statusBar().currentMessage())
|
||||
self.assertTrue(
|
||||
all(window.tabs.isTabEnabled(index) for index in range(window.tabs.count()))
|
||||
)
|
||||
@@ -11262,7 +11284,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
window._apply_subscription_status(expired)
|
||||
|
||||
notice.assert_not_called()
|
||||
self.assertIn("当前不影响使用", window._subscription_label.text())
|
||||
self.assertEqual(gui.display_name(), window.windowTitle())
|
||||
self.assertIn("当前不影响使用", window.statusBar().currentMessage())
|
||||
self.assertTrue(
|
||||
all(window.tabs.isTabEnabled(index) for index in range(window.tabs.count()))
|
||||
@@ -11285,7 +11307,10 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
window._apply_subscription_status(status)
|
||||
|
||||
notice.assert_not_called()
|
||||
self.assertIn("主账号 · 测试 · 有效至2026-08-21", window._subscription_label.text())
|
||||
self.assertEqual(
|
||||
"%s | 主账号 · 测试 · 有效至2026-08-21" % gui.display_name(),
|
||||
window.windowTitle(),
|
||||
)
|
||||
self.assertIn("观察模式", window.statusBar().currentMessage())
|
||||
|
||||
with mock.patch.object(window, "begin_subscription_check") as check:
|
||||
|
||||
Reference in New Issue
Block a user