def test_desired_equals_healthy_tags_false(aws_client):
    client = MagicMock()
    aws_client.return_value = client
    tags = [{'Key': 'Application', 'Value': 'mychaosapp'}]
    client.describe_auto_scaling_groups.return_value = \
        {
            "AutoScalingGroups": [
                {
                    'AutoScalingGroupName': 'AutoScalingGroup1',
                    "DesiredCapacity": 1,
                    "Instances": [{
                        "HealthStatus": "Unhealthy",
                        "LifecycleState": "InService"
                    }],
                    'Tags': [{
                        'ResourceId': 'AutoScalingGroup1',
                        'Key': 'Application',
                        'Value': 'mychaosapp'
                    }]
                }
            ]
        }
    client.get_paginator.return_value.paginate.return_value = [{
        "AutoScalingGroups": [
            {
                'AutoScalingGroupName': 'AutoScalingGroup1',
                "DesiredCapacity": 1,
                "Instances": [{
                    "HealthStatus": "Unhealthy",
                    "LifecycleState": "InService"
                }],
                'Tags': [{
                    'ResourceId': 'AutoScalingGroup1',
                    'Key': 'Application',
                    'Value': 'mychaosapp'
                }]
            },
            {
                'AutoScalingGroupName': 'AutoScalingGroup2',
                "DesiredCapacity": 1,
                "Instances": [{
                    "HealthStatus": "Unhealthy",
                    "LifecycleState": "InService"
                }],
                'Tags': [{
                    'ResourceId': 'AutoScalingGroup1',
                    'Key': 'Application',
                    'Value': 'NOTmychaosapp'
                }]
            }
        ]},
        {
        "AutoScalingGroups": [
            {
                'AutoScalingGroupName': 'AutoScalingGroup3',
                "DesiredCapacity": 1,
                "Instances": [{
                    "HealthStatus": "Unhealthy",
                    "LifecycleState": "InService"
                }],
                'Tags': [{
                    'ResourceId': 'AutoScalingGroup1',
                    'Key': 'NOTApplication',
                    'Value': 'mychaosapp'
                }]
            }]
    }]
    assert desired_equals_healthy_tags(tags=tags) is False
def test_desired_equals_healthy_tags_needs_tags():
    with pytest.raises(FailedActivity) as x:
        desired_equals_healthy_tags([])
    assert "Non-empty tags is required" in str(x)
def test_desired_equals_healthy_tags_false(aws_client):
    client = MagicMock()
    aws_client.return_value = client
    tags = [{"Key": "Application", "Value": "mychaosapp"}]
    client.describe_auto_scaling_groups.return_value = {
        "AutoScalingGroups": [
            {
                "AutoScalingGroupName": "AutoScalingGroup1",
                "DesiredCapacity": 1,
                "Instances": [
                    {"HealthStatus": "Unhealthy", "LifecycleState": "InService"}
                ],
                "Tags": [
                    {
                        "ResourceId": "AutoScalingGroup1",
                        "Key": "Application",
                        "Value": "mychaosapp",
                    }
                ],
            }
        ]
    }
    client.get_paginator.return_value.paginate.return_value = [
        {
            "AutoScalingGroups": [
                {
                    "AutoScalingGroupName": "AutoScalingGroup1",
                    "DesiredCapacity": 1,
                    "Instances": [
                        {"HealthStatus": "Unhealthy", "LifecycleState": "InService"}
                    ],
                    "Tags": [
                        {
                            "ResourceId": "AutoScalingGroup1",
                            "Key": "Application",
                            "Value": "mychaosapp",
                        }
                    ],
                },
                {
                    "AutoScalingGroupName": "AutoScalingGroup2",
                    "DesiredCapacity": 1,
                    "Instances": [
                        {"HealthStatus": "Unhealthy", "LifecycleState": "InService"}
                    ],
                    "Tags": [
                        {
                            "ResourceId": "AutoScalingGroup1",
                            "Key": "Application",
                            "Value": "NOTmychaosapp",
                        }
                    ],
                },
            ]
        },
        {
            "AutoScalingGroups": [
                {
                    "AutoScalingGroupName": "AutoScalingGroup3",
                    "DesiredCapacity": 1,
                    "Instances": [
                        {"HealthStatus": "Unhealthy", "LifecycleState": "InService"}
                    ],
                    "Tags": [
                        {
                            "ResourceId": "AutoScalingGroup1",
                            "Key": "NOTApplication",
                            "Value": "mychaosapp",
                        }
                    ],
                }
            ]
        },
    ]
    assert desired_equals_healthy_tags(tags=tags) is False