#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
AA-043-P2P tests: new deterministic RID scheme.
"""
import sqlite3
import sys
sys.path.insert(0, "/opt/struktur/obsidian-graphiti-import/aa043")
import aa043_bridge
from aa043_bridge import reconciliation_record_id as rid
HEX_A = "a" * 64
HEX_B = "b" * 64
def test_rid_deterministic():
assert rid("obsidian:Solutions/x.md", HEX_A) == rid("obsidian:Solutions/x.md", HEX_A)
print("PASS deterministic (same input -> same RID)")
def test_no_collision_with_legacy_queue_34():
"""Obsidian files.id=34 must NOT produce 'legacy-queue-34'."""
r = rid("obsidian:Solutions/SOL-005-content-briefing-modul.md", HEX_A)
assert not r.startswith("legacy-queue-"), r
assert r != "legacy-queue-34"
print("PASS no collision with legacy-queue-34")
def test_different_sources_different_rids():
a = rid("obsidian:A.md", HEX_A)
b = rid("obsidian:B.md", HEX_A)
c = rid("youtube:7OUHQOkVBAo", HEX_A)
assert len({a, b, c}) == 3
print("PASS different sources -> different RIDs")
def test_same_source_diff_version_diff_rid():
assert rid("obsidian:A.md", HEX_A) != rid("obsidian:A.md", HEX_B)
print("PASS same source, different version -> different RID")
def test_rid_format():
r = rid("obsidian:x.md", HEX_A)
assert r.startswith("aa043-") and len(r) == len("aa043-") + 32
int(r[6:], 16) # hex only
print("PASS RID format aa043-<32hex>")
if __name__ == "__main__":
test_rid_deterministic()
test_no_collision_with_legacy_queue_34()
test_different_sources_different_rids()
test_same_source_diff_version_diff_rid()
test_rid_format()
print("All P2P RID tests passed.")