mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 14:07:55 +00:00
35 lines
1.2 KiB
Python
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
|