"""Synthetic malformed PAK tests; no engine, extracted assets or native-build claims.""" from dataclasses import replace import hashlib import io import json import os from pathlib import Path import struct import sys import tempfile import unittest import zlib from contextlib import redirect_stdout from unittest.mock import patch ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT/'tools')) import pak_inventory as p def chunk(tag, data): return tag+struct.pack('>I', len(data))+data def entry(name=b'file.txt', offset=56, stored=3, expanded=3, flags=b'\0\0', reserved=b'\0'*6, kind=1): return bytes([kind, len(name)])+name+struct.pack('I',len(body))+body class PakTests(unittest.TestCase): def setUp(self): self.temp=tempfile.TemporaryDirectory(prefix='erri-pak-test-') self.addCleanup(self.temp.cleanup) self.home=Path(self.temp.name);self.path=self.home/'synthetic.pak' def inspect(self, data, limits=p.Limits()): self.path.write_bytes(data) return p.inventory(self.path, limits) def refused(self, data, limits=p.Limits()): with self.assertRaises((p.PakError,OSError)): self.inspect(data,limits) def test_raw_and_compressed_nested_hashes_without_extraction(self): text=b'synthetic text '*200 compressed=zlib.compress(text) tree=b'\0\0'+struct.pack('