From 783c287e51c1614cd8341ede263c914aad691449 Mon Sep 17 00:00:00 2001 From: Terry Cain Date: Mon, 18 Sep 2017 21:27:56 +0100 Subject: [PATCH] Added non existant parameter test + needed error responses --- moto/ssm/responses.py | 6 +++++- tests/test_ssm/test_ssm_boto3.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/moto/ssm/responses.py b/moto/ssm/responses.py index a2673f7e..ca033969 100644 --- a/moto/ssm/responses.py +++ b/moto/ssm/responses.py @@ -49,7 +49,11 @@ class SimpleSystemManagerResponse(BaseResponse): result = self.ssm_backend.get_parameter(name, with_decryption) if result is None: - return '', dict(status=400) + error = { + '__type': 'ParameterNotFound', + 'message': 'Parameter {0} not found.'.format(name) + } + return json.dumps(error), dict(status=400) response = { 'Parameter': { diff --git a/tests/test_ssm/test_ssm_boto3.py b/tests/test_ssm/test_ssm_boto3.py index 859ec7a8..2374ebf3 100644 --- a/tests/test_ssm/test_ssm_boto3.py +++ b/tests/test_ssm/test_ssm_boto3.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import boto3 +import botocore.exceptions import sure # noqa from moto import mock_ssm @@ -85,6 +86,20 @@ def test_get_parameter(): response['Parameter']['Type'].should.equal('String') +@mock_ssm +def test_get_nonexistant_parameter(): + client = boto3.client('ssm', region_name='us-east-1') + + try: + client.get_parameter( + Name='test_noexist', + WithDecryption=False) + raise RuntimeError('Should of failed') + except botocore.exceptions.ClientError as err: + err.operation_name.should.equal('GetParameter') + err.response['Error']['Message'].should.equal('Parameter test_noexist not found.') + + @mock_ssm def test_describe_parameters(): client = boto3.client('ssm', region_name='us-east-1')