diff --git a/tests/signatures/test_utils_field_type.py b/tests/signatures/test_utils_field_type.py new file mode 100644 index 0000000000..71c6a43197 --- /dev/null +++ b/tests/signatures/test_utils_field_type.py @@ -0,0 +1,21 @@ +import pydantic +import pytest + +from dspy import InputField, OutputField +from dspy.signatures.utils import get_dspy_field_type + + +def test_get_dspy_field_type_input(): + field = InputField() + assert get_dspy_field_type(field) == "input" + + +def test_get_dspy_field_type_output(): + field = OutputField() + assert get_dspy_field_type(field) == "output" + + +def test_get_dspy_field_type_missing_flag_raises(): + field = pydantic.Field(json_schema_extra={}) + with pytest.raises(ValueError, match="does not have a __dspy_field_type"): + get_dspy_field_type(field)