| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import dataclasses
- from unittest.mock import MagicMock
- from pydantic import BaseModel
- from agency_swarm.utils.serialization import serialize
- class DummyModel:
- def __init__(self, value: str):
- self.value = value
- def test_serialize_handles_basic_values_and_objects():
- @dataclasses.dataclass
- class Payload:
- name: str
- count: int
- payload = Payload(name="test", count=3)
- obj = DummyModel(value="42")
- serialized = serialize({"payload": payload, "wrapped": obj, "items": [1, True]})
- assert serialized["payload"] == {"name": "test", "count": "3"}
- assert serialized["wrapped"] == {"value": "42"}
- assert serialized["items"] == ["1", "True"]
- def test_serialize_handles_nested_models_and_mocks():
- class Model(BaseModel):
- number: int
- nested = Model(number=7)
- agent = MagicMock()
- agent.name = "Coach"
- agent.model = "gpt-5.4-mini"
- serialized = serialize({"nested": nested, "agent": agent})
- assert serialized["nested"] == {"number": "7"}
- assert serialized["agent"]["name"] == "Coach"
- assert serialized["agent"]["model"] == "gpt-5.4-mini"
- assert "method_calls" in serialized["agent"]
|