Skip to content

Commit

Permalink
chore: adding unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
eamonnfaherty committed May 24, 2023
1 parent dae40fe commit 3679296
Show file tree
Hide file tree
Showing 3 changed files with 217 additions and 107 deletions.
22 changes: 15 additions & 7 deletions servicecatalog_puppet/workflow/ssm/get_ssm_parameter_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,21 @@ def params_for_results_display(self):
"param_name": self.param_name,
}

def get_parameter_name_to_use(self):
return self.param_name.replace("${AWS::Region}", self.region).replace(
"${AWS::AccountId}", self.account_id
)

def run(self):
parameter_name_to_use = self.param_name.replace(
"${AWS::Region}", self.region
).replace("${AWS::AccountId}", self.account_id)
parameter_name_to_use = self.get_parameter_name_to_use()
result = {}
with self.spoke_regional_client("ssm") as ssm:
try:
parameter = ssm.get_parameter(Name=parameter_name_to_use)
result = {parameter_name_to_use: parameter.get("Parameter")}
except ssm.exceptions.ParameterNotFound:
pass

self.write_output(result)


Expand All @@ -49,13 +53,17 @@ def params_for_results_display(self):
}

def run(self):
path = self.path.replace("${AWS::Region}", self.region).replace(
"${AWS::AccountId}", self.account_id
)
parameters = dict()
with self.spoke_regional_client("ssm") as ssm:
paginator = ssm.get_paginator("get_parameters_by_path")
for page in paginator.paginate(Path=path, Recursive=True):
for page in paginator.paginate(
Path=self.get_parameter_path_to_use(), Recursive=True
):
for parameter in page.get("Parameters", []):
parameters[parameter.get("Name")] = parameter
self.write_output(parameters)

def get_parameter_path_to_use(self):
return self.path.replace("${AWS::Region}", self.region).replace(
"${AWS::AccountId}", self.account_id
)
31 changes: 24 additions & 7 deletions servicecatalog_puppet/workflow/ssm/get_ssm_parameter_task_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,23 @@ def test_params_for_results_display(self):
# verify
self.assertEqual(expected_result, actual_result)

@skip
def test_run(self):
# setup
parameter = dict(this="that",)
expected_output = {self.param_name: parameter}
self.add_expected_request_and_response(
tasks_unit_tests_helper.SPOKE_REGIONAL_CLIENT,
"ssm",
"get_parameter",
dict(Name=self.sut.get_parameter_name_to_use()),
dict(Parameter=parameter),
)

# exercise
actual_result = self.sut.run()
self.sut.run()

# verify
raise NotImplementedError()
self.assert_output(expected_output)


class GetSSMParameterByPathTaskTest(tasks_unit_tests_helper.PuppetTaskUnitTest):
Expand Down Expand Up @@ -84,11 +93,19 @@ def test_params_for_results_display(self):
# verify
self.assertEqual(expected_result, actual_result)

@skip
def test_run(self):
# setup
parameter = dict(Name="that", Value="hello")
expected_output = dict(that=parameter)
self.add_expected_paginated_request_and_response(
tasks_unit_tests_helper.SPOKE_REGIONAL_CLIENT,
"ssm",
"get_parameters_by_path",
dict(Path=self.sut.get_parameter_path_to_use(), Recursive=True),
[dict(Parameters=[parameter]),],
)

# exercise
actual_result = self.sut.run()
self.sut.run()

# verify
raise NotImplementedError()
self.assert_output(expected_output)

0 comments on commit 3679296

Please sign in to comment.