Something went wrong. Try again.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384from pathlib import Pathimport tempfileimport unittest
from macos_trust import HELPER_SHA, PATCHED_SHA, SOURCE_SHA, digest, patch
class MacosTrustPatchTest(unittest.TestCase): def setUp(self): self.temporary = tempfile.TemporaryDirectory(prefix="zig-trust-patch-") self.addCleanup(self.temporary.cleanup) self.lib = Path(self.temporary.name) self.source = self.lib / "std/crypto/Certificate/Bundle/macos.zig" self.source.parent.mkdir(parents=True) self.original = Path(__file__).with_name("fixtures").joinpath("zig-0.17.0-macos.zig").read_bytes() self.assertEqual(digest(self.original), SOURCE_SHA) self.source.write_bytes(self.original) self.source.chmod(0o644) self.helper = self.source.with_name("emudhra.zig") self.backup = self.source.with_name("macos.zig.before-emudhra-2026-10-21")
def test_dry_run_leaves_only_original_file(self): result = patch(self.lib, "0.17.0") self.assertEqual(result["mode"], "dry-run") self.assertEqual(result["after_sha256"], PATCHED_SHA) self.assertEqual(list(self.source.parent.iterdir()), [self.source]) self.assertEqual(self.source.read_bytes(), self.original)
def test_apply_and_restore_are_exact_and_idempotent(self): patch(self.lib, "0.17.0", apply=True) self.assertEqual(digest(self.source.read_bytes()), PATCHED_SHA) self.assertEqual(digest(self.helper.read_bytes()), HELPER_SHA) self.assertEqual(self.backup.read_bytes(), self.original) self.assertEqual(self.source.stat().st_mode & 0o777, 0o644) self.assertFalse(patch(self.lib, "0.17.0", apply=True)["changed"]) patch(self.lib, "0.17.0", restore=True) self.assertEqual(digest(self.source.read_bytes()), PATCHED_SHA) patch(self.lib, "0.17.0", apply=True, restore=True) self.assertEqual(self.source.read_bytes(), self.original) self.assertFalse(self.helper.exists()) self.assertFalse(patch(self.lib, "0.17.0", apply=True, restore=True)["changed"]) patch(self.lib, "0.17.0", apply=True) self.assertEqual(digest(self.source.read_bytes()), PATCHED_SHA)
def test_wrong_version_and_changed_source_are_refused(self): with self.assertRaisesRegex(ValueError, "requires Zig"): patch(self.lib, "0.17.1", apply=True) self.source.write_bytes(self.original + b"\n") with self.assertRaisesRegex(ValueError, "unknown source"): patch(self.lib, "0.17.0", apply=True) self.assertFalse(self.backup.exists()) self.assertFalse(self.helper.exists()) self.assertEqual(self.source.read_bytes(), self.original + b"\n")
def test_foreign_helper_and_corrupt_backup_are_refused(self): self.helper.write_bytes(b"unrelated existing file") with self.assertRaisesRegex(ValueError, "existing emudhra"): patch(self.lib, "0.17.0", apply=True) self.assertEqual(self.helper.read_bytes(), b"unrelated existing file") self.helper.unlink() self.backup.write_bytes(b"not the original") with self.assertRaisesRegex(ValueError, "backup checksum"): patch(self.lib, "0.17.0", apply=True) self.assertEqual(self.source.read_bytes(), self.original)
def test_restore_refuses_drift_without_overwriting_it(self): patch(self.lib, "0.17.0", apply=True) self.helper.write_bytes(b"subsequent operator change") with self.assertRaisesRegex(ValueError, "existing emudhra"): patch(self.lib, "0.17.0", apply=True, restore=True) self.assertEqual(digest(self.source.read_bytes()), PATCHED_SHA) self.assertEqual(self.helper.read_bytes(), b"subsequent operator change")
def test_incomplete_patch_is_refused(self): patch(self.lib, "0.17.0", apply=True) self.backup.unlink() with self.assertRaisesRegex(ValueError, "missing its backup"): patch(self.lib, "0.17.0", apply=True) self.assertEqual(digest(self.source.read_bytes()), PATCHED_SHA)
if __name__ == "__main__": unittest.main()