from __future__ import annotations from agent.tools.schema import SchemaGenerator def test_schema_generator_resolves_postponed_nested_annotations() -> None: async def sample( contracts: list[dict[str, object]], replacement: dict[str, object] | None = None, ) -> None: pass properties = SchemaGenerator.generate(sample)["function"]["parameters"]["properties"] assert properties["contracts"] == { "type": "array", "items": {"type": "object"}, } assert properties["replacement"] == { "type": "object", "default": None, }