build(agent): melter#14fd4b iteration
This commit is contained in:
parent
222c185427
commit
76e8b42e88
|
|
@ -7,7 +7,10 @@ name = "idea151-aidmesh-federated-privacy"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
description = "Core primitives for AidMesh: federated, privacy-preserving disaster response orchestration"
|
description = "Core primitives for AidMesh: federated, privacy-preserving disaster response orchestration"
|
||||||
requires-python = ">=3.8"
|
requires-python = ">=3.8"
|
||||||
dynamic = ["readme", "license", "authors"]
|
readme = "README.md"
|
||||||
|
|
||||||
|
[tool.setuptools.packages.find]
|
||||||
|
where = ["src"]
|
||||||
|
|
||||||
[tool.setuptools]
|
[tool.setuptools]
|
||||||
packages = ["idea151_aidmesh_federated_privacy"]
|
package-dir = {"" = "src"}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from idea151_aidmesh_federated_privacy import models
|
||||||
|
|
||||||
|
|
||||||
|
def test_models_to_dict_and_immutability():
|
||||||
|
lp = models.LocalProblem(
|
||||||
|
id="lp-1",
|
||||||
|
domain="shelter",
|
||||||
|
assets={"tents": 100},
|
||||||
|
objectives=["max_coverage"],
|
||||||
|
constraints={"max_deploy": 50},
|
||||||
|
)
|
||||||
|
|
||||||
|
sd = models.SharedSignals(
|
||||||
|
forecast={"demand": 120}, capacity_proxies={"depotA": 80}, privacy_budget=1.0, version=1
|
||||||
|
)
|
||||||
|
|
||||||
|
now = datetime.utcnow()
|
||||||
|
pd = models.PlanDelta(
|
||||||
|
delta={"alloc": {"depotA": 40}},
|
||||||
|
timestamp=now,
|
||||||
|
author="planner-1",
|
||||||
|
contract_id="c-123",
|
||||||
|
signature="sig",
|
||||||
|
)
|
||||||
|
|
||||||
|
al = models.AuditLog(entry="created", signer="alice", timestamp=now, contract_id="c-123", version=1)
|
||||||
|
|
||||||
|
# to_dict should produce serializable dicts and timestamp should be ISO string
|
||||||
|
assert lp.to_dict()["id"] == "lp-1"
|
||||||
|
assert sd.to_dict()["version"] == 1
|
||||||
|
assert isinstance(pd.to_dict()["timestamp"], str) and "T" in pd.to_dict()["timestamp"]
|
||||||
|
assert isinstance(al.to_dict()["timestamp"], str) and "T" in al.to_dict()["timestamp"]
|
||||||
|
|
||||||
|
# dataclasses are frozen: setting an attribute should raise
|
||||||
|
with pytest.raises(Exception):
|
||||||
|
lp.id = "other"
|
||||||
Loading…
Reference in New Issue