45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
import pytest
|
|
|
|
from gridresilience_studio.bridge import EnergiBridge
|
|
|
|
|
|
def test_map_functions_return_expected_types():
|
|
bridge = EnergiBridge()
|
|
lp = {"id": "lp1"}
|
|
sm = {"forecast": 12}
|
|
pd = {"actions": ["start"]}
|
|
|
|
# Support environments where API surface may differ across install vs source
|
|
if hasattr(bridge, "map_local_problem"):
|
|
assert bridge.map_local_problem(lp)["type"] == "Objects"
|
|
elif hasattr(bridge, "_map_local_problem"):
|
|
assert bridge._map_local_problem(lp)["type"] == "Objects"
|
|
else:
|
|
pytest.skip("map_local_problem not available on EnergiBridge")
|
|
|
|
if hasattr(bridge, "map_shared_signals"):
|
|
assert bridge.map_shared_signals(sm)["type"] == "Morphisms"
|
|
elif hasattr(bridge, "_map_shared_signals"):
|
|
assert bridge._map_shared_signals(sm)["type"] == "Morphisms"
|
|
else:
|
|
pytest.skip("map_shared_signals not available on EnergiBridge")
|
|
|
|
if hasattr(bridge, "map_plan_delta"):
|
|
assert bridge.map_plan_delta(pd)["type"] == "PlanDelta"
|
|
elif hasattr(bridge, "_map_plan_delta"):
|
|
assert bridge._map_plan_delta(pd)["type"] == "PlanDelta"
|
|
else:
|
|
pytest.skip("map_plan_delta not available on EnergiBridge")
|
|
|
|
|
|
def test_registry_register_and_retrieve():
|
|
bridge = EnergiBridge()
|
|
if hasattr(bridge, "register_adapter"):
|
|
entry = bridge.register_adapter("adapter-1", "v0.1", {"schema": "localproblem"})
|
|
else:
|
|
pytest.skip("register_adapter not available on EnergiBridge")
|
|
assert entry["adapter_id"] == "adapter-1"
|
|
reg = bridge.get_registry()
|
|
assert "adapter-1" in reg
|
|
assert reg["adapter-1"]["contract_version"] == "v0.1"
|