test_agui_adapter_serialize.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import dataclasses
  2. from unittest.mock import MagicMock
  3. from pydantic import BaseModel
  4. from agency_swarm.utils.serialization import serialize
  5. class DummyModel:
  6. def __init__(self, value: str):
  7. self.value = value
  8. def test_serialize_handles_basic_values_and_objects():
  9. @dataclasses.dataclass
  10. class Payload:
  11. name: str
  12. count: int
  13. payload = Payload(name="test", count=3)
  14. obj = DummyModel(value="42")
  15. serialized = serialize({"payload": payload, "wrapped": obj, "items": [1, True]})
  16. assert serialized["payload"] == {"name": "test", "count": "3"}
  17. assert serialized["wrapped"] == {"value": "42"}
  18. assert serialized["items"] == ["1", "True"]
  19. def test_serialize_handles_nested_models_and_mocks():
  20. class Model(BaseModel):
  21. number: int
  22. nested = Model(number=7)
  23. agent = MagicMock()
  24. agent.name = "Coach"
  25. agent.model = "gpt-5.4-mini"
  26. serialized = serialize({"nested": nested, "agent": agent})
  27. assert serialized["nested"] == {"number": "7"}
  28. assert serialized["agent"]["name"] == "Coach"
  29. assert serialized["agent"]["model"] == "gpt-5.4-mini"
  30. assert "method_calls" in serialized["agent"]