Explorer
/proc/109/root/tmp/test_p2q_rid.py
← Zurück ↓ Download
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
AA-043-P2Q tests: new aa043:<source_system>:<sha256> RID scheme.
"""
import sys
sys.path.insert(0, "/opt/struktur/obsidian-graphiti-import/aa043")
from aa043_bridge import reconciliation_record_id as rid

HEX_A = "a" * 64
HEX_B = "b" * 64


def test_deterministic():
    assert (rid("obsidian:x.md", HEX_A) ==
            rid("obsidian:x.md", HEX_A))
    print("PASS gleiche Eingaben -> gleiche RID")


def test_diff_source_identity():
    assert rid("obsidian:a.md", HEX_A) != rid("obsidian:b.md", HEX_A)
    print("PASS andere source_identity -> andere RID")


def test_diff_version_hash():
    assert rid("obsidian:a.md", HEX_A) != rid("obsidian:a.md", HEX_B)
    print("PASS anderer content_version_hash -> andere RID")


def test_diff_kui():
    assert (rid("obsidian:a.md", HEX_A, "__source__") !=
            rid("obsidian:a.md", HEX_A, "source_version:889"))
    print("PASS andere knowledge_unit_identity -> andere RID")


def test_no_legacy_collision():
    r = rid("obsidian:Solutions/SOL-005-content-briefing-modul.md", HEX_A)
    assert not r.startswith("legacy-queue-"), r
    assert r != "legacy-queue-34"
    assert r.startswith("aa043:obsidian-general:")
    print("PASS files.id=34 kollidiert nie mit legacy-queue-34:", r[:40] + "...")


def test_format():
    r = rid("obsidian:x.md", HEX_A)
    parts = r.split(":")
    assert len(parts) == 3 and parts[0] == "aa043"
    assert parts[1] == "obsidian-general"
    assert len(parts[2]) == 64
    int(parts[2], 16)
    print("PASS Format aa043:<source_system>:<64-hex-sha256>")


if __name__ == "__main__":
    test_deterministic()
    test_diff_source_identity()
    test_diff_version_hash()
    test_diff_kui()
    test_no_legacy_collision()
    test_format()
    print("All P2Q RID tests passed.")