build: version release metadata filename

This commit is contained in:
chengma
2026-07-13 17:36:46 +08:00
parent e79ec00bf6
commit 4927da5e1c
6 changed files with 53 additions and 14 deletions
+36 -1
View File
@@ -95,7 +95,23 @@ class PackagingTests(unittest.TestCase):
self.assertIn('Assert-NoExcludedData -Root $releaseDir', script)
self.assertIn('-m app.release_manifest manifest', script)
self.assertIn('-m app.release_manifest metadata', script)
self.assertIn('release-metadata.json', script)
self.assertIn(
'$releaseMetadata = Join-Path $releaseRoot "release-metadata${appVersion}.json"',
script,
)
self.assertIn(
'$legacyReleaseMetadata = Join-Path $releaseRoot "release-metadata.json"',
script,
)
self.assertIn(
'@($releaseDir, $portableZip, $releaseMetadata, $legacyReleaseMetadata)',
script,
)
self.assertNotIn(
'$releaseMetadata = Join-Path $releaseRoot "release-metadata.json"',
script,
)
self.assertNotIn('release-metadata*.json', script)
self.assertIn('cmshopee-updater.spec', script)
self.assertIn('cmshopee-updater.exe', script)
@@ -158,6 +174,25 @@ class PackagingTests(unittest.TestCase):
)
self.assertEqual("cmshopee-portable-v1", release["package_format"])
def test_release_metadata_can_be_written_to_versioned_filename(self):
with tempfile.TemporaryDirectory() as temp_dir:
zip_path = Path(temp_dir) / "蝦皮圈優化助手1.2.3.zip"
zip_path.write_bytes(b"portable-zip")
output = Path(temp_dir) / "release-metadata1.2.3.json"
written = release_manifest.write_release_metadata(zip_path, "1.2.3", output)
metadata = json.loads(written.read_text(encoding="utf-8"))
self.assertEqual(output, written)
self.assertEqual("release-metadata1.2.3.json", written.name)
self.assertEqual("1.2.3", metadata["release"]["version"])
self.assertEqual(zip_path.name, metadata["release"]["download_filename"])
self.assertEqual(zip_path.stat().st_size, metadata["release"]["size_bytes"])
self.assertEqual(
hashlib.sha256(b"portable-zip").hexdigest(),
metadata["release"]["sha256"],
)
if __name__ == "__main__":
unittest.main()