diff --git a/apps/entities/call.py b/apps/entities/call.py index 6e0d995e1..16ffc0580 100644 --- a/apps/entities/call.py +++ b/apps/entities/call.py @@ -342,6 +342,7 @@ def update_entity( relationship["description"] = description relationship["updated_at"] = now_ms() save_facet_relationship(facet, entity_id, relationship) + clear_entity_loading_cache() log_call_action( facet=facet, action="entity_update", diff --git a/apps/entities/tests/conftest.py b/apps/entities/tests/conftest.py index cdd74429b..1dff1f96f 100644 --- a/apps/entities/tests/conftest.py +++ b/apps/entities/tests/conftest.py @@ -15,7 +15,16 @@ ROOT = Path(__file__).resolve().parents[3] if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT)) +for name, module in list(sys.modules.items()): + if name.split(".", 1)[0] not in {"apps", "convey", "think"}: + continue + module_file = getattr(module, "__file__", None) + if module_file and not Path(module_file).resolve().is_relative_to(ROOT): + sys.modules.pop(name, None) + from apps.speakers.tests.conftest import speakers_env as _speakers_env +from convey import create_app +from tests._baseline_harness import copytree_tracked from think.entities.journal import clear_journal_entity_cache from think.entities.loading import clear_entity_loading_cache from think.entities.observations import ( @@ -27,6 +36,34 @@ from think.entities.relationships import clear_relationship_caches from think.entities.saving import save_entities +@pytest.fixture(autouse=True) +def _skip_supervisor_check(monkeypatch): + monkeypatch.setenv("SOL_SKIP_SUPERVISOR_CHECK", "1") + + +@pytest.fixture +def journal_copy(tmp_path, monkeypatch): + src = Path(__file__).resolve().parents[3] / "tests" / "fixtures" / "journal" + dst = tmp_path / "journal" + copytree_tracked(src, dst) + monkeypatch.setenv("_SOLSTONE_JOURNAL_OVERRIDE", str(dst.resolve())) + clear_journal_entity_cache() + clear_entity_loading_cache() + clear_relationship_caches() + clear_observation_cache() + import think.utils + + think.utils._journal_path_cache = None + return dst + + +@pytest.fixture +def client(journal_copy, monkeypatch): + monkeypatch.setenv("_SOLSTONE_JOURNAL_OVERRIDE", str(journal_copy)) + app = create_app(str(journal_copy)) + return app.test_client() + + @pytest.fixture def speakers_env(tmp_path, monkeypatch): yield from _speakers_env.__wrapped__(tmp_path, monkeypatch) diff --git a/apps/transcripts/tests/conftest.py b/apps/transcripts/tests/conftest.py index 5b79a1f02..e001002f1 100644 --- a/apps/transcripts/tests/conftest.py +++ b/apps/transcripts/tests/conftest.py @@ -9,12 +9,18 @@ from pathlib import Path import pytest -from convey import create_app - ROOT = Path(__file__).resolve().parents[3] if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT)) +for name, module in list(sys.modules.items()): + if name.split(".", 1)[0] not in {"apps", "convey", "think"}: + continue + module_file = getattr(module, "__file__", None) + if module_file and not Path(module_file).resolve().is_relative_to(ROOT): + sys.modules.pop(name, None) + +from convey import create_app from tests._baseline_harness import copytree_tracked