def test_delete_replication_group_snapshot(aws_client):
    client = MagicMock()
    aws_client.return_value = client

    group_ids = ["MyRedisReplicationGroup"]
    final_snapshot_id = "MyReplicationGroupFinalSnap"

    client.describe_replication_groups.return_value = {
        "ReplicationGroups": [{
            "ReplicationGroupId": group_ids[0],
            "Status": "available"
        }]
    }
    client.delete_replication_group.return_value = {
        "ReplicationGroup": {
            "ReplicationGroupId": group_ids[0],
            "Status": "snapshotting",
        }
    }

    results = delete_replication_groups(group_ids=group_ids,
                                        final_snapshot_id=final_snapshot_id)

    client.describe_replication_groups.assert_called_with(
        ReplicationGroupId=group_ids[0])
    client.delete_replication_group.assert_called_with(
        ReplicationGroupId=group_ids[0],
        RetainPrimaryCluster=True,
        FinalSnapshotIdentifier=final_snapshot_id,
    )

    assert results[0]["ReplicationGroupId"] == group_ids[0]
    assert results[0]["Status"] == "snapshotting"
def test_delete_replication_group_no_snapshot(aws_client):
    client = MagicMock()
    aws_client.return_value = client

    group_ids = ["MyRedisReplicationGroup"]

    client.describe_replication_groups.return_value = {
        "ReplicationGroups": [{
            "ReplicationGroupId": group_ids[0],
            "Status": "available"
        }]
    }
    client.delete_replication_group.return_value = {
        "ReplicationGroup": {
            "ReplicationGroupId": group_ids[0],
            "Status": "deleting"
        }
    }

    results = delete_replication_groups(group_ids=group_ids)

    client.describe_replication_groups.assert_called_with(
        ReplicationGroupId=group_ids[0])
    client.delete_replication_group.assert_called_with(
        ReplicationGroupId=group_ids[0], RetainPrimaryCluster=True)

    assert results[0]["ReplicationGroupId"] == group_ids[0]
    assert results[0]["Status"] == "deleting"
def test_delete_replication_group_no_snapshot(aws_client):
    client = MagicMock()
    aws_client.return_value = client

    group_ids = ['MyRedisReplicationGroup']

    client.describe_replication_groups.return_value = {
        'ReplicationGroups': [{
            'ReplicationGroupId': group_ids[0],
            'Status': 'available'
        }]
    }
    client.delete_replication_group.return_value = {
        'ReplicationGroup': {
            'ReplicationGroupId': group_ids[0],
            'Status': 'deleting'
        }
    }

    results = delete_replication_groups(group_ids=group_ids)

    client.describe_replication_groups.assert_called_with(
        ReplicationGroupId=group_ids[0])
    client.delete_replication_group.assert_called_with(
        ReplicationGroupId=group_ids[0], RetainPrimaryCluster=True)

    assert results[0]['ReplicationGroupId'] == group_ids[0]
    assert results[0]['Status'] == 'deleting'