fix: restart Dever releases at 0.0.1 with complete signed assets
This commit is contained in:
1 parent
5589b657db
commit
faf8b168a7
22 files changed
+582
-94
No files matched your search
@@ -12,6 +12,7 @@ import subprocess
|
||||
import tarfile
|
||||
import tempfile
|
||||
import unittest
|
||||
import zipfile
|
||||
from unittest import mock
|
||||
|
||||
from install_support import load_installer
|
||||
@@ -88,7 +89,7 @@ class InstallerTests(unittest.TestCase):
|
||||
self.platform, "1.2.3")
|
||||
|
||||
def create_assets(self, output):
|
||||
return assets.create(self.release, output, ZSTD)
|
||||
return assets.create(self.release, output, ZSTD, complete=False)
|
||||
|
||||
def release_record(self, directory, version="1.2.3"):
|
||||
return {
|
||||
@@ -173,6 +174,39 @@ class InstallerTests(unittest.TestCase):
|
||||
with self.assertRaisesRegex(ValueError, "base package"):
|
||||
self.create_assets(self.root / "host-target")
|
||||
|
||||
def test_complete_release_requires_all_extensions_and_matching_editor(self):
|
||||
manifest = json.loads((self.release / "manifest.json").read_text())
|
||||
with self.assertRaisesRegex(ValueError, "complete release is missing"):
|
||||
assets.create(self.release, self.root / "incomplete", ZSTD)
|
||||
self.assertFalse((self.root / "incomplete").exists())
|
||||
with self.assertRaisesRegex(ValueError, "complete release is missing"):
|
||||
assets.verify_complete(manifest, None)
|
||||
for target in ("linux-x86_64", "linux-aarch64"):
|
||||
for ecosystem in ("pip", "npm", "go"):
|
||||
manifest["extensions"].append({"kind": {"type": "runtime", "ecosystem": ecosystem},
|
||||
"target": target, "artifacts": []})
|
||||
for ecosystem in ("pip", "npm"):
|
||||
manifest["extensions"].append({"kind": {"type": "build", "ecosystem": ecosystem},
|
||||
"target": self.platform, "artifacts": []})
|
||||
manifest["extensions"].append({"kind": {"type": "target"}, "target": "linux-aarch64",
|
||||
"artifacts": []})
|
||||
with self.assertRaisesRegex(ValueError, "editor VSIX"):
|
||||
assets.verify_complete(manifest, None)
|
||||
editor = self.root / "editor.vsix"
|
||||
package = {"name": "dever-language", "publisher": "shemic", "version": manifest["version"]}
|
||||
with zipfile.ZipFile(editor, "w") as archive:
|
||||
archive.writestr("extension/package.json", json.dumps(package))
|
||||
assets.verify_complete(manifest, editor)
|
||||
for index in range(len(manifest["extensions"])):
|
||||
incomplete = {**manifest, "extensions": manifest["extensions"][:index] + manifest["extensions"][index + 1:]}
|
||||
with self.assertRaisesRegex(ValueError, "complete release is missing"):
|
||||
assets.verify_complete(incomplete, editor)
|
||||
package["version"] = "9.9.9"
|
||||
with zipfile.ZipFile(editor, "w") as archive:
|
||||
archive.writestr("extension/package.json", json.dumps(package))
|
||||
with self.assertRaisesRegex(ValueError, "identity/version"):
|
||||
assets.verify_complete(manifest, editor)
|
||||
|
||||
def test_signed_release_without_matching_skill_is_rejected(self):
|
||||
path = self.release / "manifest.json"
|
||||
manifest = json.loads(path.read_text())
|
||||
|
||||
Reference in new issue
Block a user