28 lines
963 B
Python
28 lines
963 B
Python
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
|