Files
OpenJarvis/tests/server/conftest.py
T

35 lines
1.2 KiB
Python

"""Shared fixtures for server route tests.
Server tests build apps via ``create_app``, which (with traces enabled by
default) wires a ``TraceStore`` at the real ``~/.openjarvis/traces.db``. Now
that the chat endpoints actually *write* traces, an unguarded run would
pollute the developer's real trace DB and make tests non-hermetic. This
autouse fixture redirects the traces DB to a per-test temp path.
"""
from __future__ import annotations
import pytest
@pytest.fixture(autouse=True)
def _isolate_traces_db(tmp_path, monkeypatch):
"""Point ``config.traces.db_path`` at a temp file for every server test.
``load_config`` returns a fresh ``JarvisConfig`` per call (no caching), so
wrapping it to rewrite ``traces.db_path`` only affects calls made during
the test — there is no global leak.
"""
from openjarvis.core import config as _config
real_load_config = _config.load_config
db_path = str(tmp_path / "traces.db")
def _patched_load_config(*args, **kwargs):
cfg = real_load_config(*args, **kwargs)
cfg.traces.db_path = db_path
return cfg
monkeypatch.setattr(_config, "load_config", _patched_load_config)
return db_path