Files
ImpTune/tests/conftest.py
T
2026-04-15 17:57:12 +02:00

37 lines
947 B
Python

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")
cfg.ICONS_DIR = str(data_dir / "icons")
yield data_dir
# Close the test-thread's DB connection so the next test gets a fresh one
# pointing to its own tmp DB (Peewee connections are thread-local).
from imptune.db.database import db
if not db.is_closed():
db.close()