import os import shutil import sys import pytest ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, ROOT) sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) @pytest.fixture(autouse=True) def isolated_home(tmp_path, monkeypatch): """User data/config/cache go to a temp folder (never touch the real settings or stores).""" monkeypatch.setenv("ACKIT_HOME", str(tmp_path / "home")) yield @pytest.fixture(scope="session") def synth_template(tmp_path_factory): import synth d = tmp_path_factory.mktemp("synth_template") originals = synth.make_game(str(d)) return str(d), originals @pytest.fixture def synth_game(synth_template, tmp_path): """A fresh copy of the synthetic game folder for each test -> (root, originals).""" src, originals = synth_template dst = str(tmp_path / "game") shutil.copytree(src, dst) return dst, originals def _real_game(): from ackit.game import find_installs try: found = find_installs() except Exception: found = [] return found[0] if found else None @pytest.fixture(scope="session") def real_game_dir(): d = os.environ.get("ACKIT_TEST_GAME") or _real_game() if not d: pytest.skip("real game not installed") return d