diff --git a/moto/autoscaling/models.py b/moto/autoscaling/models.py index cdbe756877df..4f32bfc66a6d 100644 --- a/moto/autoscaling/models.py +++ b/moto/autoscaling/models.py @@ -1494,6 +1494,11 @@ def describe_auto_scaling_groups( return groups def delete_auto_scaling_group(self, group_name: str) -> None: + if group_name not in self.autoscaling_groups: + raise ValidationError( + f"AutoScalingGroup name not found - AutoScalingGroup '{group_name}' not found" + ) + self.set_desired_capacity(group_name, 0) self.autoscaling_groups.pop(group_name, None) diff --git a/tests/test_autoscaling/test_autoscaling_groups.py b/tests/test_autoscaling/test_autoscaling_groups.py index f70be505406d..fcea2ad9712e 100644 --- a/tests/test_autoscaling/test_autoscaling_groups.py +++ b/tests/test_autoscaling/test_autoscaling_groups.py @@ -1,6 +1,8 @@ from unittest import TestCase import boto3 +import pytest +from botocore.exceptions import ClientError from moto import mock_aws from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID @@ -87,6 +89,16 @@ def test_autoscaling_group_delete(self): groups = self.as_client.describe_auto_scaling_groups()["AutoScalingGroups"] assert len(groups) == 0 + with pytest.raises(ClientError) as exc: + self.as_client.delete_auto_scaling_group(AutoScalingGroupName="invalid") + err = exc.value.response["Error"] + assert exc.value.response["ResponseMetadata"]["HTTPStatusCode"] == 400 + assert err["Code"] == "ValidationError" + assert ( + err["Message"] + == "AutoScalingGroup name not found - AutoScalingGroup 'invalid' not found" + ) + def test_describe_autoscaling_groups__instances(self): self._create_group(name="test_asg")