@@ -285,6 +285,89 @@ def test_remove_schema_notfound_configs_childschema(self):
285285 assert len (params_removed ) == 1
286286 assert "foo" in params_removed
287287
288+ def test_validate_defaults (self ):
289+ """Test validating default values"""
290+ self .schema_obj .schema = {
291+ "properties" : {"foo" : {"type" : "string" }, "bar" : {"type" : "string" }},
292+ "required" : ["foo" ],
293+ }
294+ self .schema_obj .schema_defaults = {"foo" : "foo" , "bar" : "bar" }
295+ self .schema_obj .no_prompts = True
296+ try :
297+ self .schema_obj .validate_default_params ()
298+ except AssertionError :
299+ self .fail ("Error validating schema defaults" )
300+
301+ def test_validate_defaults_required (self ):
302+ """Test validating default values when required params don't have a default"""
303+ self .schema_obj .schema = {
304+ "properties" : {"foo" : {"type" : "string" }, "bar" : {"type" : "string" }},
305+ "required" : ["foo" ],
306+ }
307+ self .schema_obj .schema_defaults = {}
308+ self .schema_obj .no_prompts = True
309+ try :
310+ self .schema_obj .validate_default_params ()
311+ except AssertionError :
312+ self .fail ("Error validating schema defaults" )
313+
314+ def test_validate_defaults_required_inside_group (self ):
315+ """Test validating default values when required params don't have a default, inside a group"""
316+ self .schema_obj .schema = {
317+ "$defs" : {
318+ "subSchemaId" : {
319+ "properties" : {"foo" : {"type" : "string" }, "bar" : {"type" : "string" }},
320+ "required" : ["foo" ],
321+ },
322+ }
323+ }
324+ self .schema_obj .schema_defaults = {}
325+ self .schema_obj .no_prompts = True
326+ try :
327+ self .schema_obj .validate_default_params ()
328+ except AssertionError :
329+ self .fail ("Error validating schema defaults" )
330+
331+ def test_validate_defaults_required_inside_group_with_anyof (self ):
332+ """Test validating default values when required params don't have a default, inside a group with anyOf"""
333+ self .schema_obj .schema = {
334+ "$defs" : {
335+ "subSchemaId" : {
336+ "anyOf" : [{"required" : ["foo" ]}, {"required" : ["bar" ]}],
337+ "properties" : {"foo" : {"type" : "string" }, "bar" : {"type" : "string" }},
338+ },
339+ }
340+ }
341+ self .schema_obj .schema_defaults = {}
342+ self .schema_obj .no_prompts = True
343+ try :
344+ self .schema_obj .validate_default_params ()
345+ except AssertionError :
346+ self .fail ("Error validating schema defaults" )
347+
348+ def test_validate_defaults_required_with_anyof (self ):
349+ """Test validating default values when required params don't have a default, with anyOf"""
350+ self .schema_obj .schema = {
351+ "properties" : {"foo" : {"type" : "string" }, "bar" : {"type" : "string" }, "baz" : {"type" : "string" }},
352+ "anyOf" : [{"required" : ["foo" ]}, {"required" : ["bar" ]}],
353+ }
354+ self .schema_obj .schema_defaults = {"baz" : "baz" }
355+ self .schema_obj .no_prompts = True
356+ try :
357+ self .schema_obj .validate_default_params ()
358+ except AssertionError :
359+ self .fail ("Error validating schema defaults" )
360+
361+ def test_validate_defaults_error (self ):
362+ """Test validating default raises an exception when a default is not valid"""
363+ self .schema_obj .schema = {
364+ "properties" : {"foo" : {"type" : "string" }},
365+ }
366+ self .schema_obj .schema_defaults = {"foo" : 1 }
367+ self .schema_obj .no_prompts = True
368+ with self .assertRaises (AssertionError ):
369+ self .schema_obj .validate_default_params ()
370+
288371 def test_add_schema_found_configs (self ):
289372 """Try adding a new parameter to the schema from the config"""
290373 self .schema_obj .pipeline_params = {"foo" : "bar" }
0 commit comments