diff --git a/moto/iam/models.py b/moto/iam/models.py index 9eefc9c70..4952f2335 100644 --- a/moto/iam/models.py +++ b/moto/iam/models.py @@ -1225,7 +1225,9 @@ class IAMBackend(BaseBackend): try: del self.groups[group_name] except KeyError: - raise IAMNotFoundException("Group {0} not found".format(group_name)) + raise IAMNotFoundException( + "The group with name {0} cannot be found.".format(group_name) + ) def create_user(self, user_name, path="/"): if user_name in self.users: diff --git a/moto/iam/responses.py b/moto/iam/responses.py index ac6332080..4bd1aa80c 100644 --- a/moto/iam/responses.py +++ b/moto/iam/responses.py @@ -429,10 +429,10 @@ class IamResponse(BaseResponse): return template.render(name="GetGroupPolicyResponse", **policy_result) def delete_group(self): - group_name = self._get_param('GroupName') + group_name = self._get_param("GroupName") iam_backend.delete_group(group_name) template = self.response_template(GENERIC_EMPTY_TEMPLATE) - return template.render(name='DeleteGroup') + return template.render(name="DeleteGroup") def create_user(self): user_name = self._get_param("UserName") diff --git a/tests/test_iam/test_iam_groups.py b/tests/test_iam/test_iam_groups.py index bb54761a2..7b73e89ea 100644 --- a/tests/test_iam/test_iam_groups.py +++ b/tests/test_iam/test_iam_groups.py @@ -8,6 +8,7 @@ import sure # noqa from nose.tools import assert_raises from boto.exception import BotoServerError +from botocore.exceptions import ClientError from moto import mock_iam, mock_iam_deprecated MOCK_POLICY = """ @@ -186,10 +187,21 @@ def test_list_group_policies(): @mock_iam def test_delete_group(): - conn = boto3.client('iam', region_name='us-east-1') - conn.create_group(GroupName='my-group') + conn = boto3.client("iam", region_name="us-east-1") + conn.create_group(GroupName="my-group") groups = conn.list_groups() - assert groups['Groups'][0]['GroupName'] == 'my-group' - assert len(groups['Groups']) == 1 - conn.delete_group(GroupName='my-group') - conn.list_groups()['Groups'].should.be.empty + assert groups["Groups"][0]["GroupName"] == "my-group" + assert len(groups["Groups"]) == 1 + conn.delete_group(GroupName="my-group") + conn.list_groups()["Groups"].should.be.empty + + +@mock_iam +def test_delete_unknown_group(): + conn = boto3.client("iam", region_name="us-east-1") + with assert_raises(ClientError) as err: + conn.delete_group(GroupName="unknown-group") + err.exception.response["Error"]["Code"].should.equal("NoSuchEntity") + err.exception.response["Error"]["Message"].should.equal( + "The group with name unknown-group cannot be found." + )