feat: 统一 Client 发布产物命名 (#102)

This commit is contained in:
chengma
2026-08-10 14:55:17 +08:00
parent 6fd25984d2
commit 240626f945
12 changed files with 119 additions and 25 deletions
+50 -4
View File
@@ -19,6 +19,7 @@ from src.settings_ui import SettingsPage
from src.update_service import (
DEFAULT_UPDATE_MANIFEST_URL,
DEFAULT_UPDATE_USERNAME,
LEGACY_DEFAULT_UPDATE_MANIFEST_URL,
UPDATE_MANIFEST_SETTING,
UPDATE_USERNAME_SETTING,
UpdateCheckResult,
@@ -46,7 +47,7 @@ class FakeCredentialStore:
class FakeUpdateService:
def __init__(self, result=None, delay=0.0, download_error=None):
self.result = result or UpdateCheckResult("0.2.1", "0.2.1", False)
self.result = result or UpdateCheckResult("0.2.2", "0.2.2", False)
self.delay = delay
self.download_error = download_error
self.check_count = 0
@@ -57,7 +58,7 @@ class FakeUpdateService:
def check(
self,
manifest_url,
current_version="0.2.1",
current_version="0.2.2",
is_cancelled=None,
credentials=None,
):
@@ -141,7 +142,7 @@ class UpdateUiEventTest(unittest.TestCase):
def test_update_card_uses_safe_defaults_and_password_input(self):
page = self._page(FakeUpdateService())
self.assertEqual(page.currentVersionLabel.text(), "0.2.1")
self.assertEqual(page.currentVersionLabel.text(), "0.2.2")
self.assertEqual(
page.updateManifestUrlInput.text(), DEFAULT_UPDATE_MANIFEST_URL
)
@@ -257,6 +258,51 @@ class UpdateUiEventTest(unittest.TestCase):
page.eventBinder.shutdown()
page.deleteLater()
def test_legacy_default_manifest_url_is_migrated_before_auto_check(self):
self.repository.set_many(
{
UPDATE_MANIFEST_SETTING: LEGACY_DEFAULT_UPDATE_MANIFEST_URL,
UPDATE_USERNAME_SETTING: TEST_USERNAME,
}
)
store = FakeCredentialStore((TEST_USERNAME, TEST_PASSWORD))
service = FakeUpdateService()
page = self._page(service, store)
self._wait_until(lambda: service.check_count == 1)
self._wait_until(
lambda: page.eventBinder.updateEventBinder._check_thread is None
)
self.assertEqual(
self.repository.get(UPDATE_MANIFEST_SETTING),
DEFAULT_UPDATE_MANIFEST_URL,
)
self.assertEqual(service.manifest_url, DEFAULT_UPDATE_MANIFEST_URL)
page.eventBinder.shutdown()
page.deleteLater()
def test_custom_manifest_url_is_not_migrated(self):
self.repository.set_many(
{
UPDATE_MANIFEST_SETTING: MANIFEST_URL,
UPDATE_USERNAME_SETTING: TEST_USERNAME,
}
)
store = FakeCredentialStore((TEST_USERNAME, TEST_PASSWORD))
service = FakeUpdateService()
page = self._page(service, store)
self._wait_until(lambda: service.check_count == 1)
self._wait_until(
lambda: page.eventBinder.updateEventBinder._check_thread is None
)
self.assertEqual(self.repository.get(UPDATE_MANIFEST_SETTING), MANIFEST_URL)
self.assertEqual(service.manifest_url, MANIFEST_URL)
page.eventBinder.shutdown()
page.deleteLater()
def test_confirmed_new_version_downloads_with_saved_credentials(self):
update = UpdateInfo(
version="0.3.0",
@@ -267,7 +313,7 @@ class UpdateUiEventTest(unittest.TestCase):
sha256="0" * 64,
)
service = FakeUpdateService(
UpdateCheckResult("0.2.1", "0.3.0", True, update)
UpdateCheckResult("0.2.2", "0.3.0", True, update)
)
page = self._page(service)
self._save_configuration(page)