fix(update): accept cmhub release metadata contract

This commit is contained in:
chengma
2026-07-13 17:17:25 +08:00
parent 74b98cd123
commit 0d7a4c1b56
8 changed files with 99 additions and 15 deletions
+15
View File
@@ -6,6 +6,7 @@ import unittest
import urllib.request
import zipfile
from pathlib import Path
from types import SimpleNamespace
from app import release_manifest, update_installer
@@ -71,6 +72,20 @@ class UpdateInstallerTests(unittest.TestCase):
values.update(changes)
return update_installer.UpdatePackageMetadata(**values)
def test_online_release_uses_internal_package_contract_defaults(self):
info = SimpleNamespace(
latest_version="0.1.6",
download_url="http://downloads.external.test/cmshopee.zip",
sha256="a" * 64,
size_bytes=53318076,
)
metadata = update_installer.metadata_from_update_info(info)
self.assertEqual(release_manifest.PACKAGE_FORMAT, metadata.package_format)
self.assertEqual(release_manifest.UPDATER_PROTOCOL, metadata.updater_protocol)
self.assertEqual(release_manifest.UPDATER_PROTOCOL, metadata.min_updater_protocol)
def test_prepare_update_verifies_and_reuses_pending(self):
with tempfile.TemporaryDirectory() as temp_dir:
payload = self.make_zip(temp_dir)