@@ -352,28 +352,18 @@ def test_static_include_ignore_same_parameter(self):
352352 self .assertEqual (True , param1 .required )
353353
354354 def test_dynamic_include_add_parameter (self ):
355- included_path = test_utils . write_script_config ({ 'parameters' : [
355+ ( config_model , included_path ) = self . prepare_config_model_with_included ( [
356356 create_script_param_config ('included_param' )
357- ]}, 'included' )
358- config_model = _create_config_model ('main_conf' , config = {
359- 'include' : '${p1}' ,
360- 'parameters' : [create_script_param_config ('p1' )]})
361- config_model .set_param_value ('p1' , included_path )
357+ ], 'p1' )
362358
363359 self .assertEqual (2 , len (config_model .parameters ))
364360 included_param = config_model .parameters [1 ]
365361 self .assertEqual ('included_param' , included_param .name )
366362
367363 def test_dynamic_include_remove_parameter (self ):
368- included_path = test_utils . write_script_config ({ 'parameters' : [
364+ ( config_model , included_path ) = self . prepare_config_model_with_included ( [
369365 create_script_param_config ('included_param' )
370- ]}, 'included' )
371- config_model = _create_config_model (
372- 'main_conf' ,
373- config = {
374- 'include' : '${p1}' ,
375- 'parameters' : [create_script_param_config ('p1' )]},
376- parameter_values = {'p1' : included_path })
366+ ], 'p1' )
377367
378368 config_model .set_param_value ('p1' , '' )
379369
@@ -382,17 +372,11 @@ def test_dynamic_include_remove_parameter(self):
382372 self .assertEqual ('p1' , included_param .name )
383373
384374 def test_dynamic_include_remove_multiple_parameters (self ):
385- included_path = test_utils . write_script_config ({ 'parameters' : [
375+ ( config_model , included_path ) = self . prepare_config_model_with_included ( [
386376 create_script_param_config ('included_param1' ),
387377 create_script_param_config ('included_param2' ),
388378 create_script_param_config ('included_param3' )
389- ]}, 'included' )
390- config_model = _create_config_model (
391- 'main_conf' ,
392- config = {
393- 'include' : '${p1}' ,
394- 'parameters' : [create_script_param_config ('p1' )]},
395- parameter_values = {'p1' : included_path })
379+ ], 'p1' )
396380
397381 config_model .set_param_value ('p1' , '' )
398382
@@ -427,33 +411,25 @@ def test_dynamic_include_relative_path(self):
427411 self .assertEqual (2 , len (config_model .parameters ))
428412
429413 def test_dynamic_include_replace (self ):
430- included_path1 = test_utils . write_script_config ({ 'parameters' : [
414+ ( config_model , included_path1 ) = self . prepare_config_model_with_included ( [
431415 create_script_param_config ('included_param_X' )
432- ]} , 'included1 ' )
416+ ], 'p1 ' )
433417
434418 included_path2 = test_utils .write_script_config ({'parameters' : [
435419 create_script_param_config ('included_param_Y' )
436420 ]}, 'included2' )
437421
438- config_model = _create_config_model ('main_conf' , config = {
439- 'include' : '${p1}' ,
440- 'parameters' : [create_script_param_config ('p1' )]})
441- config_model .set_param_value ('p1' , included_path1 )
442422 config_model .set_param_value ('p1' , included_path2 )
443423
444424 self .assertEqual (2 , len (config_model .parameters ))
445425 self .assertEqual ('p1' , config_model .parameters [0 ].name )
446426 self .assertEqual ('included_param_Y' , config_model .parameters [1 ].name )
447427
448428 def test_dynamic_include_replace_with_missing_file (self ):
449- included_path1 = test_utils . write_script_config ({ 'parameters' : [
429+ ( config_model , included_path ) = self . prepare_config_model_with_included ( [
450430 create_script_param_config ('included_param_X' )
451- ]} , 'included1 ' )
431+ ], 'p1 ' )
452432
453- config_model = _create_config_model ('main_conf' , config = {
454- 'include' : '${p1}' ,
455- 'parameters' : [create_script_param_config ('p1' )]})
456- config_model .set_param_value ('p1' , included_path1 )
457433 config_model .set_param_value ('p1' , 'a/b/c/some.txt' )
458434
459435 self .assertEqual (1 , len (config_model .parameters ))
@@ -475,6 +451,48 @@ def test_set_all_values_for_included(self):
475451
476452 self .assertEqual (values , config_model .parameter_values )
477453
454+ def test_dynamic_include_add_parameter_with_default (self ):
455+ (config_model , included_path ) = self .prepare_config_model_with_included ([
456+ create_script_param_config ('included_param' , default = 'abc 123' )
457+ ], 'p1' )
458+
459+ self .assertEqual ('abc 123' , config_model .parameter_values .get ('included_param' ))
460+
461+ def test_dynamic_include_add_parameter_with_default_when_value_exist (self ):
462+ (config_model , included_path ) = self .prepare_config_model_with_included ([
463+ create_script_param_config ('included_param' , default = 'abc 123' )
464+ ], 'p1' )
465+ config_model .set_param_value ('p1' , included_path )
466+ config_model .set_param_value ('included_param' , 'def 456' )
467+
468+ config_model .set_param_value ('p1' , 'random value' )
469+ self .assertEqual ('def 456' , config_model .parameter_values .get ('included_param' ))
470+
471+ config_model .set_param_value ('p1' , included_path )
472+ self .assertEqual ('def 456' , config_model .parameter_values .get ('included_param' ))
473+
474+ def test_dynamic_include_add_2_parameters_with_default_when_one_dependant (self ):
475+ (config_model , included_path ) = self .prepare_config_model_with_included ([
476+ create_script_param_config ('included_param1' , default = 'ABC' ),
477+ create_script_param_config ('included_param2' , default = 'xABCx' , type = 'list' ,
478+ values_script = 'echo x${included_param1}x' ),
479+ ], 'p1' )
480+
481+ self .assertEqual ('ABC' , config_model .parameter_values .get ('included_param1' ))
482+ self .assertEqual ('xABCx' , config_model .parameter_values .get ('included_param2' ))
483+
484+ dependant_parameter = config_model .find_parameter ('included_param2' )
485+ self .assertEqual (['xABCx' ], dependant_parameter .values )
486+
487+ def prepare_config_model_with_included (self , included_params , static_param_name ):
488+ included_path = test_utils .write_script_config ({'parameters' : included_params }, 'included' )
489+ config_model = _create_config_model ('main_conf' , config = {
490+ 'include' : '${' + static_param_name + '}' ,
491+ 'parameters' : [create_script_param_config (static_param_name )]})
492+ config_model .set_param_value (static_param_name , included_path )
493+
494+ return (config_model , included_path )
495+
478496 def setUp (self ):
479497 test_utils .setup ()
480498
0 commit comments