test_tool_schema_annotations.py 607 B

12345678910111213141516171819202122
  1. from __future__ import annotations
  2. from agent.tools.schema import SchemaGenerator
  3. def test_schema_generator_resolves_postponed_nested_annotations() -> None:
  4. async def sample(
  5. contracts: list[dict[str, object]],
  6. replacement: dict[str, object] | None = None,
  7. ) -> None:
  8. pass
  9. properties = SchemaGenerator.generate(sample)["function"]["parameters"]["properties"]
  10. assert properties["contracts"] == {
  11. "type": "array",
  12. "items": {"type": "object"},
  13. }
  14. assert properties["replacement"] == {
  15. "type": "object",
  16. "default": None,
  17. }