Skip to content

Commit

Permalink
#301 fixed filling parameter values for recursive server_files
Browse files Browse the repository at this point in the history
  • Loading branch information
bugy committed May 23, 2020
1 parent b98bf6d commit abf89bf
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/model/model_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,8 @@ def fill_parameter_values(parameter_configs, template, values):
value = ''

if not isinstance(value, str):
value = str(value)
mapped_value = parameter_config.map_to_script(value)
value = parameter_config.to_script_args(mapped_value)

result = result.replace('${' + parameter_name + '}', str(value))

Expand Down
40 changes: 40 additions & 0 deletions src/tests/model_helper_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,38 @@ def test_fill_when_no_parameter_for_pattern(self):
result = fill_parameter_values(self.create_parameters('p1'), 'Value = ${xyz}', {'p1': '12345'})
self.assertEqual('Value = ${xyz}', result)

def test_fill_when_server_file_recursive_and_one_level(self):
parameters = [create_parameter_model(
'p1',
type='server_file',
file_dir=test_utils.temp_folder,
file_recursive=True)]

result = fill_parameter_values(parameters, 'Value = ${p1}', {'p1': ['folder']})
expected_value = os.path.join(test_utils.temp_folder, 'folder')
self.assertEqual('Value = ' + expected_value, result)

def test_fill_when_server_file_recursive_and_multiple_levels(self):
parameters = [create_parameter_model(
'p1',
type='server_file',
file_dir=test_utils.temp_folder,
file_recursive=True)]

result = fill_parameter_values(parameters, 'Value = ${p1}', {'p1': ['folder', 'sub', 'log.txt']})
expected_value = os.path.join(test_utils.temp_folder, 'folder', 'sub', 'log.txt')
self.assertEqual('Value = ' + expected_value, result)

def test_fill_when_server_file_plain(self):
parameters = [create_parameter_model(
'p1',
type='server_file',
file_dir=test_utils.temp_folder,
file_recursive=True)]

result = fill_parameter_values(parameters, 'Value = ${p1}', {'p1': 'folder'})
self.assertEqual('Value = folder', result)

def create_parameters(self, *names):
result = []
for name in names:
Expand All @@ -161,6 +193,14 @@ def create_parameters(self, *names):

return result

def setUp(self) -> None:
super().setUp()
test_utils.setup()

def tearDown(self) -> None:
super().tearDown()
test_utils.cleanup()


class TestResolveEnvVars(unittest.TestCase):

Expand Down

0 comments on commit abf89bf

Please sign in to comment.