from __future__ import annotations from pathlib import Path from idea156_kappabridge_privacy_safe import ( AccessPolicyContract, AdapterMarketplace, AttestationAuthority, ClimateCSVAdapter, ContractRegistry, DeltaSyncEngine, FederationStore, FederatedPlanner, GenomicsFASTAAdapter, LabProfile, ) from idea156_kappabridge_privacy_safe.harness import ConformanceHarness def test_registry_ledger_and_attestation(tmp_path: Path) -> None: store = FederationStore(tmp_path / "kappa.db") registry = ContractRegistry(store) policy = AccessPolicyContract(name="open-policy", allowed_actions=["read", "request"], privacy_budget_epsilon=1.0) registry.register(policy) authority = AttestationAuthority("lab-a") attestation = authority.attest(policy, purpose="governance") assert authority.verify(attestation, policy) assert registry.active_contracts(kind="AccessPolicy")[0]["name"] == "open-policy" assert store.latest_seq() == 1 def test_delta_sync_replays_ledger(tmp_path: Path) -> None: left = FederationStore(tmp_path / "left.db") right = FederationStore(tmp_path / "right.db") left_registry = ContractRegistry(left) right_registry = ContractRegistry(right) policy = AccessPolicyContract(name="sync-policy", allowed_actions=["read"]) left_registry.register(policy) engine = DeltaSyncEngine(left, peer_id="lab-left") envelope = engine.build_envelope(anchor_seq=0) assert right_registry.store.latest_seq() == 0 applied = DeltaSyncEngine(right, peer_id="lab-right").ingest_envelope(envelope) assert applied == 1 assert right_registry.store.latest_seq() == 1 assert right_registry.get(policy.contract_id)["name"] == "sync-policy" def test_adapters_and_planner_conformance(tmp_path: Path) -> None: climate_csv = tmp_path / "climate.csv" climate_csv.write_text("station,temp,humidity\nA,12,40\nB,15,55\n", encoding="utf-8") fasta = tmp_path / "genome.fasta" fasta.write_text( ">seq1\nACGT\n>seq2\nGGTT\n", encoding="utf-8", ) marketplace = AdapterMarketplace() marketplace.register(ClimateCSVAdapter()) marketplace.register(GenomicsFASTAAdapter()) harness = ConformanceHarness(marketplace) assert harness.validate("climate-csv", climate_csv, dataset_name="climate", discipline="climate").passed assert harness.validate("genomics-fasta", fasta, dataset_name="genome", discipline="genomics").passed planner = FederatedPlanner() plan = planner.plan_joint_objective( "joint climate-genomics study", [LabProfile("lab-a", "climate", ["tabular"]), LabProfile("lab-b", "genomics", ["sequence"])], ["contract-a", "contract-b"], ) assert plan.kind == "PlanDelta" assert plan.steps