def test_stop_vmss_with_criteria_no_matches(init_client, cmclient,
                                            fetch_instances, fetch_vmss):
    with pytest.raises(FailedActivity) as x:
        client = MagicMock()
        cmclient.return_value = client
        init_client.return_value = cmclient

        vmss_list = [resource_vmss]
        fetch_vmss.return_value = vmss_list

        instances_list = [
            resource_vmss_instance_1, resource_vmss_instance_2,
            resource_vmss_instance_3
        ]
        fetch_instances.return_value = instances_list

        criteria = [{'instanceId': '6'}, {"name": "chaos-vmss-instance-6"}]

        stop_vmss(None, None, criteria, None)

        cmclient.virtual_machine_scale_set_vms.power_off.assert_called_with(
            resource_vmss['resourceGroup'], resource_vmss['name'],
            resource_vmss_instance_3['instanceId'])
    assert "No virtual machine scale set instances found for criteria" in str(
        x.value)
def test_stop_vmss_having_no_vmss(fetch):
    with pytest.raises(FailedActivity) as x:
        resource_list = []
        fetch.return_value = resource_list
        stop_vmss(None, None, None)

    assert "No virtual machine scale sets found" in str(x)
def test_stop_vmss(client, fetch_instances, fetch_vmss):
    vmss_list = [resource_vmss]
    fetch_vmss.return_value = vmss_list

    instances_list = [resource_vmss_instance]
    fetch_instances.return_value = instances_list

    client.return_value = MockComputeManagementClient()

    stop_vmss(None, None, None)
def test_stop_vmss_having_no_vmss_instances(fetch_instances, fetch_vmss):
    with pytest.raises(FailedActivity) as x:
        vmss_list = [resource_vmss]
        fetch_vmss.return_value = vmss_list

        instances_list = []
        fetch_instances.return_value = instances_list

        stop_vmss(None, None, None)

    assert "No virtual machine scale set instances found" in str(x)
def test_stop_vmss(client, fetch_instances, fetch_vmss):
    scale_set = vmss_provider.provide_scale_set()
    scale_sets = [scale_set]
    instance = vmss_provider.provide_instance()
    instances = [instance]
    fetch_vmss.return_value = scale_sets
    fetch_instances.return_value = instances

    client.return_value = MockComputeManagementClient()

    stop_vmss(None, None, None, None)
def test_stop_vmss_with_critiria_having_no_vmss_instances(
        init_client, cmclient, fetch_instances, fetch_vmss):
    with pytest.raises(FailedActivity) as x:
        client = MagicMock()
        cmclient.return_value = client
        init_client.return_value = cmclient

        vmss_list = [resource_vmss]
        fetch_vmss.return_value = vmss_list

        instances_list = []
        fetch_instances.return_value = instances_list

        criteria = [{'instanceId': '6'}, {"name": "chaos-vmss-instance-6"}]

        stop_vmss(None, None, criteria, None)

    assert "No virtual machine scale set instances found" in str(x.value)
def test_stop_vmss_with_criteria(init_client, cmclient, fetch_instances,
                                 fetch_vmss):
    client = MagicMock()
    cmclient.return_value = client
    init_client.return_value = cmclient

    vmss_list = [resource_vmss]
    fetch_vmss.return_value = vmss_list

    instances_list = [
        resource_vmss_instance_1, resource_vmss_instance_2,
        resource_vmss_instance_3
    ]
    fetch_instances.return_value = instances_list

    criteria = [{'instanceId': '6'}, {"name": "chaos-vmss-instance-3"}]

    stop_vmss(None, None, criteria, None)

    cmclient.virtual_machine_scale_set_vms.power_off.assert_called_with(
        resource_vmss['resourceGroup'], resource_vmss['name'],
        resource_vmss_instance_3['instanceId'])