From 715ff0f7afc51ebf2f193eed990e8d9e7f236e2b Mon Sep 17 00:00:00 2001 From: William Richard Date: Mon, 4 Nov 2019 15:30:30 -0500 Subject: [PATCH] Return a sensible error when the parameter is not found --- moto/ssm/responses.py | 7 +++++++ tests/test_ssm/test_ssm_boto3.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/moto/ssm/responses.py b/moto/ssm/responses.py index 236c22005..29fd8820c 100644 --- a/moto/ssm/responses.py +++ b/moto/ssm/responses.py @@ -145,6 +145,13 @@ class SimpleSystemManagerResponse(BaseResponse): result = self.ssm_backend.get_parameter_history(name, with_decryption) + if result is None: + error = { + "__type": "ParameterNotFound", + "message": "Parameter {0} not found.".format(name), + } + return json.dumps(error), dict(status=400) + response = {"Parameters": []} for parameter_version in result: param_data = parameter_version.describe_response_object( diff --git a/tests/test_ssm/test_ssm_boto3.py b/tests/test_ssm/test_ssm_boto3.py index 6b521132e..1b02536a1 100644 --- a/tests/test_ssm/test_ssm_boto3.py +++ b/tests/test_ssm/test_ssm_boto3.py @@ -879,6 +879,20 @@ def test_get_parameter_history_with_secure_string(): len(parameters_response).should.equal(3) +@mock_ssm +def test_get_parameter_history_missing_parameter(): + client = boto3.client("ssm", region_name="us-east-1") + + try: + client.get_parameter_history(Name="test_noexist") + raise RuntimeError("Should have failed") + except botocore.exceptions.ClientError as err: + err.operation_name.should.equal("GetParameterHistory") + err.response["Error"]["Message"].should.equal( + "Parameter test_noexist not found." + ) + + @mock_ssm def test_add_remove_list_tags_for_resource(): client = boto3.client("ssm", region_name="us-east-1")