idea70-narrativeweave-real-.../tests/test_audit.py

43 lines
1.8 KiB
Python

import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from idea70_narrativeweave_real_time.adapters import build_block_from_events, news_adapter_event, transcript_adapter_event
from idea70_narrativeweave_real_time.narrative import diff_narrative_blocks, render_narrative_block
def test_redacted_rendering_keeps_structure():
events = [
{"ts": "2024-01-01T00:00:00Z", "type": "news", "payload": news_adapter_event("Shares rise", "https://example.com/story", 0.7)},
{"ts": "2024-01-01T00:00:01Z", "type": "transcript", "payload": transcript_adapter_event("CFO", "Revenue improved year over year.", "2024-01-01T00:00:01Z")},
]
block = build_block_from_events(events)
clear = render_narrative_block(block)
redacted = render_narrative_block(block, redacted=True)
assert block.id in clear
assert "[redacted]" in redacted
assert "https://example.com/story" not in redacted
assert "## Claims" in redacted
def test_diff_is_deterministic_and_claim_aware():
left_events = [
{"ts": "2024-01-01T00:00:00Z", "type": "news", "payload": news_adapter_event("Shares rise", "https://example.com/story", 0.7)},
]
right_events = [
{"ts": "2024-01-01T00:00:00Z", "type": "news", "payload": news_adapter_event("Shares fall", "https://example.com/story", 0.7)},
{"ts": "2024-01-01T00:00:02Z", "type": "transcript", "payload": transcript_adapter_event("CFO", "Margins compressed.", "2024-01-01T00:00:02Z")},
]
left = build_block_from_events(left_events)
right = build_block_from_events(right_events)
diff = diff_narrative_blocks(left, right)
assert diff.left_block_id == left.id
assert diff.right_block_id == right.id
assert diff.changed_fields
assert diff.added_claims or diff.modified_claims