27 lines
963 B
Python
27 lines
963 B
Python
# Simple tests for the ServiceGenome manifest and registry support
|
|
from catopt_studio import LocalProblem, ServiceGenome
|
|
from catopt_studio.registry import InMemoryRegistry
|
|
|
|
|
|
def test_service_genome_dataclass_and_registry():
|
|
sg = ServiceGenome(
|
|
runtime_role="local-solver",
|
|
capability_vector={"cpu": 2, "mem_mb": 256},
|
|
resource_envelope={"cpu_cycles_per_iter": 1000000},
|
|
safety_invariants={"max_actuation_rate": 5},
|
|
compliance_hook="https://example.com/check",
|
|
version="v0.1",
|
|
)
|
|
|
|
# ensure fields exist and are accessible
|
|
assert sg.runtime_role == "local-solver"
|
|
assert sg.capability_vector["cpu"] == 2
|
|
|
|
# registry roundtrip
|
|
reg = InMemoryRegistry()
|
|
reg.register_contract("svc1", "local-solver", {"schema": "sg-v1"})
|
|
reg.register_service_genome("svc1", sg.__dict__)
|
|
got = reg.get_service_genome("svc1")
|
|
assert got is not None
|
|
assert got["genome"]["version"] == "v0.1"
|