FrameBridge 0.3.4 corresponding-source release
Snapshot assembled only from the signed corresponding-source archive. Source archive SHA-256: db91a270cdefc4be79056ed38a0b4a16747e1ab130592645eac40fa3809809df
This commit is contained in:
1 parent
b8c9b713d8
commit
cdd980e1eb
993 files changed
+255481
-1720
No files matched your search
@@ -1,10 +1,13 @@
|
||||
"""Candidate profile/ABI selection; tests use inert native-file fixtures."""
|
||||
import hashlib
|
||||
import contextlib
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
import stat
|
||||
import sys
|
||||
from types import SimpleNamespace
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
@@ -64,6 +67,43 @@ class LinuxCompatibilityTests(unittest.TestCase):
|
||||
self.assertFalse(self.check(distro, version, (3, 12))["ok"])
|
||||
self.assertIsNone(compat.profile_for({"ID": "other", "ID_LIKE": "ubuntu", "VERSION_ID": "24.04"}))
|
||||
|
||||
def test_public_builder_profiles_are_accepted_by_the_runtime_without_claiming_validation(self):
|
||||
# Use the real public builder's profile output, rather than duplicating
|
||||
# its validation_status value in a fixture. Archive/vendor verification
|
||||
# has separate tests; --check-vendor does not stage/install a package.
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "packaging"))
|
||||
import archive_sources
|
||||
import build_expanded
|
||||
targets = [("debian13-amd64-py313", "debian", "13", (3, 13)),
|
||||
("ubuntu24.04-amd64-py312", "ubuntu", "24.04", (3, 12)),
|
||||
("mint22-amd64-py312", "linuxmint", "22.3", (3, 12))]
|
||||
for profile_id, distro, version, python in targets:
|
||||
with self.subTest(profile=profile_id):
|
||||
self.artifact(profile_id)
|
||||
output = io.StringIO()
|
||||
globals_before = {name: getattr(build_expanded, name) for name in
|
||||
("VERSION", "PUBLIC_RELEASE", "SOURCE_ARCHIVE", "PUBLIC_FILENAME", "RELEASE", "STAGE", "PREFIX")}
|
||||
args = ["--target", profile_id, "--public-release", "--source-manifest", str(self.prefix / "source.json"), "--check-vendor"]
|
||||
if profile_id != "debian13-amd64-py313":
|
||||
args += ["--vendor-dir", str(self.prefix / "reviewed-cp312")]
|
||||
with patch.multiple(build_expanded, **globals_before), \
|
||||
patch.object(build_expanded.subprocess, "run"), \
|
||||
patch.object(build_expanded, "vendor_versions", return_value={}), \
|
||||
patch.object(build_expanded, "validate_vendor", return_value={"vendor_sha256": "a" * 64}), \
|
||||
patch.object(build_expanded, "release_source", return_value={"filename": "FrameBridge-0.3.4-source.tar.gz", "sha256": "b" * 64}), \
|
||||
patch.object(build_expanded, "legal_preflight"), \
|
||||
patch.object(archive_sources, "source_files", return_value={}), \
|
||||
contextlib.redirect_stdout(output):
|
||||
build_expanded.main(args)
|
||||
manifest = json.loads(output.getvalue())
|
||||
self.assertEqual(manifest["validation_status"], "release_build")
|
||||
(self.prefix / "release-profile.json").write_text(json.dumps(manifest))
|
||||
result = self.check(distro, version, python)
|
||||
self.assertTrue(result["ok"], result)
|
||||
self.assertEqual(result["validation_status"], manifest["validation_status"])
|
||||
self.assertIn("Release assembly does not establish a tested installation", result["warnings"][0])
|
||||
self.assertNotEqual(result["validation_status"], "validated")
|
||||
|
||||
def test_interpreter_artifact_and_cpu_must_all_match(self):
|
||||
self.artifact("ubuntu24.04-amd64-py312")
|
||||
self.assertFalse(self.check("ubuntu", "24.04", (3, 13))["ok"])
|
||||
|
||||
Reference in new issue
Block a user