from spacesafeml_certification_benchmark_and_.examples.demo import run_demo from spacesafeml_certification_benchmark_and_.dsl import ( SafetyContract, LocalCapabilities, ResourceBudgets, DataSharingPolicy, ) def test_demo_records_certificate_and_ledger_entry(): contract = SafetyContract( contract_id="demo-test-1", local_capabilities=[LocalCapabilities(name="Planner")], budgets=ResourceBudgets(cpu_cores=1.0, memory_gb=1.0, energy_wh=50.0, time_seconds=600), data_policy=DataSharingPolicy(policy_id="p1", allowed_data=["telemetry"]), ) plan = {"name": "demo-plan", "actions": ["a1", "a2"], "budgets": {"cpu_cores": 0.5}} out = run_demo(contract, plan) assert "certificate" in out assert "ledger_entry" in out assert out["certificate"]["status"] in ("safe", "unsafe") # chain should contain one entry assert isinstance(out["chain"], list) assert len(out["chain"]) == 1