fix(update): accept cmhub release metadata contract
This commit is contained in:
@@ -92,6 +92,34 @@ class UpdateCheckTests(unittest.TestCase):
|
||||
self.assertEqual("abc", result.sha256)
|
||||
self.assertEqual("新版说明", result.message)
|
||||
|
||||
def test_check_for_update_accepts_cmhub_release_contract(self):
|
||||
def fetcher(_url, _timeout):
|
||||
return {
|
||||
"platform": "windows",
|
||||
"release": {
|
||||
"version": "0.1.6",
|
||||
"download_url": "http://185.216.248.75:24521/down/release.zip",
|
||||
"sha256": "a" * 64,
|
||||
"release_notes": "启动时联网获取更新信息",
|
||||
"force_update": True,
|
||||
"size_bytes": 53318076,
|
||||
"published_at": "2026-07-13T17:10:59.660653+08:00",
|
||||
},
|
||||
}
|
||||
|
||||
result = update_check.check_for_update(
|
||||
current_version="0.1.5",
|
||||
url="https://cm.example.test/api/v1/client/releases/latest?platform=windows",
|
||||
fetcher=fetcher,
|
||||
)
|
||||
|
||||
self.assertTrue(result.forced)
|
||||
self.assertFalse(result.can_enter)
|
||||
self.assertEqual("0.1.6", result.latest_version)
|
||||
self.assertEqual(53318076, result.size_bytes)
|
||||
self.assertEqual("", result.package_format)
|
||||
self.assertEqual(0, result.updater_protocol)
|
||||
|
||||
def test_network_failure_allows_entry(self):
|
||||
def fetcher(_url, _timeout):
|
||||
raise socket.timeout("timeout")
|
||||
|
||||
Reference in New Issue
Block a user