Explorer
/proc/5461/root/tmp/test_p2p_rid.py
← Zurück ↓ Download
#!/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.")