Initial commit
This commit is contained in:
50
tests/conftest.py
Normal file
50
tests/conftest.py
Normal file
@@ -0,0 +1,50 @@
|
||||
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
|
||||
Reference in New Issue
Block a user