"""ingest_transcript_sync 将 lineage_json 传入 create_source。""" from __future__ import annotations from types import SimpleNamespace from app.features.memory.service import ingest_transcript_sync def test_ingest_transcript_sync_passes_lineage(monkeypatch) -> None: captured: dict = {} class FakeSession: commit_calls = 0 def commit(self) -> None: self.commit_calls += 1 def flush(self) -> None: pass def begin_nested(self): from contextlib import nullcontext return nullcontext() def fake_create_source(session, **kwargs): captured.update(kwargs) return SimpleNamespace(id="src-1") monkeypatch.setattr( "app.core.dependencies.get_embedding_provider", lambda: None ) monkeypatch.setattr( "app.features.memory.repo.create_source_sync", fake_create_source, ) monkeypatch.setattr( "app.features.memory.repo.create_chunk_sync", lambda *a, **k: SimpleNamespace(id=f"ch-{k.get('chunk_index')}"), ) monkeypatch.setattr("app.core.config.settings.memory_enrichment_enabled", False) lineage = { "schema_version": 1, "conversation_id": "c9", "turns": [ {"user_message_id": "um-1", "assistant_message_id": "as-1"}, ], "primary_user_message_id": "um-1", } fake_session = FakeSession() sid = ingest_transcript_sync( fake_session, "u1", "c9", "hello there", lineage_json=lineage, ) assert sid == "src-1" assert captured.get("lineage_json") == lineage assert captured.get("primary_user_message_id") == "um-1"