import json import os import subprocess import sys import tempfile import unittest from pathlib import Path SCRIPT = 'inspect_self.py' TOOLS = Path(__file__).resolve().parents[1] class Tests(unittest.TestCase): def setUp(self): self.directory = tempfile.TemporaryDirectory() self.addCleanup(self.directory.cleanup) self.root = Path(self.directory.name) def run_tool(self, *args): return subprocess.run([sys.executable, str(TOOLS / SCRIPT), *map(str, args)], capture_output=True, encoding="utf-8", timeout=10, env={**os.environ, "PYTHONIOENCODING": "ascii"}) def fixture(self): import struct data = bytearray(0x500) struct.pack_into("