T-618 require release checksum metadata in admin

This commit is contained in:
QiuSW
2026-07-13 17:51:43 +08:00
parent b71564e2bf
commit 2887966625
9 changed files with 98 additions and 9 deletions
+35
View File
@@ -416,6 +416,41 @@ class PortalAccountFlowTests(TestCase):
self.assertFalse(old_release.is_current)
self.assertTrue(new_release.is_current)
def test_download_release_admin_requires_sha256_and_size_bytes(self):
form_class = admin.site._registry[DownloadRelease].form
base_data = {
"platform": DownloadRelease.Platform.WINDOWS,
"version": "1.2.3",
"external_url": "https://download.example.com/cmhub-1.2.3.zip",
"release_notes": "发布说明",
}
missing_sha256_form = form_class(data={**base_data, "size_bytes": "123456"})
missing_size_form = form_class(data={**base_data, "sha256": "a" * 64})
self.assertFalse(missing_sha256_form.is_valid())
self.assertIn("sha256", missing_sha256_form.errors)
self.assertFalse(missing_size_form.is_valid())
self.assertIn("size_bytes", missing_size_form.errors)
def test_download_release_admin_saves_valid_release_metadata(self):
form_class = admin.site._registry[DownloadRelease].form
form = form_class(
data={
"platform": DownloadRelease.Platform.WINDOWS,
"version": "1.2.3",
"external_url": "https://download.example.com/cmhub-1.2.3.zip",
"sha256": "b" * 64,
"size_bytes": "123456",
"release_notes": "发布说明",
}
)
self.assertTrue(form.is_valid(), form.errors)
release = form.save()
self.assertEqual(release.sha256, "b" * 64)
self.assertEqual(release.size_bytes, 123456)
def test_import_template_only_keeps_one_current(self):
old_template = self.create_import_template(
name="旧模板",