import os import pytest from fastapi.testclient import TestClient @pytest.fixture def client(tmp_data_dir): from imptune.main import app with TestClient(app) as c: yield c @pytest.fixture def tmp_data_dir(tmp_path, monkeypatch): """Set DATA_DIR to a temp directory so tests don't write to /data.""" data_dir = tmp_path / "data" data_dir.mkdir() monkeypatch.setenv("DATA_DIR", str(data_dir)) # Patch config module so the app uses the temp dir import imptune.config as cfg cfg.DATA_DIR = str(data_dir) cfg.DB_PATH = str(data_dir / "imptune.db") cfg.DRIVERS_DIR = str(data_dir / "drivers") return data_dir