@@ -21,6 +21,7 @@ def test_string_parameter() -> None:
21
21
d = param .model_dump_tool ()
22
22
assert d ["type" ] == ParameterType .STRING
23
23
assert d ["enum" ] == ["a" , "b" ]
24
+ assert d ["required" ] is True
24
25
25
26
26
27
def test_integer_parameter () -> None :
@@ -139,6 +140,39 @@ def test_from_dict() -> None:
139
140
ToolParameter .from_dict ({"description" : "no type" })
140
141
141
142
143
+ def test_required_parameter () -> None :
144
+ # Test that required=True is included in model_dump_tool output for different parameter types
145
+ string_param = StringParameter (description = "Required string" , required = True )
146
+ assert string_param .model_dump_tool ()["required" ] is True
147
+
148
+ integer_param = IntegerParameter (description = "Required integer" , required = True )
149
+ assert integer_param .model_dump_tool ()["required" ] is True
150
+
151
+ number_param = NumberParameter (description = "Required number" , required = True )
152
+ assert number_param .model_dump_tool ()["required" ] is True
153
+
154
+ boolean_param = BooleanParameter (description = "Required boolean" , required = True )
155
+ assert boolean_param .model_dump_tool ()["required" ] is True
156
+
157
+ array_param = ArrayParameter (
158
+ description = "Required array" ,
159
+ items = StringParameter (description = "item" ),
160
+ required = True ,
161
+ )
162
+ assert array_param .model_dump_tool ()["required" ] is True
163
+
164
+ object_param = ObjectParameter (
165
+ description = "Required object" ,
166
+ properties = {"prop" : StringParameter (description = "property" )},
167
+ required = True ,
168
+ )
169
+ assert object_param .model_dump_tool ()["required" ] is True
170
+
171
+ # Test that required=False doesn't include the required field
172
+ optional_param = StringParameter (description = "Optional string" , required = False )
173
+ assert "required" not in optional_param .model_dump_tool ()
174
+
175
+
142
176
def test_tool_class () -> None :
143
177
def dummy_func (query : str , ** kwargs : Any ) -> dict [str , Any ]:
144
178
return kwargs
0 commit comments