def test_fill_disk_on_win(init, fetch, open):
    # arrange mocks
    client = MagicMock()
    init.return_value = client
    resource = __get_resource(os_type='Windows')
    resource_list = [resource]
    fetch.return_value = resource_list
    # run command mocks
    poller = MagicMock()
    client.virtual_machines.run_command.return_value = poller
    result = MagicMock(spec=RunCommandResult)
    poller.result.return_value = result
    result.value = [InstanceViewStatus()]

    # act
    fill_disk("where name=='some_windows_machine'", 60, size=100)

    # assert
    fetch.assert_called_with("where name=='some_windows_machine'",
                             "Microsoft.Compute/virtualMachines", None, None)
    open.assert_called_with(AnyStringWith("fill_disk.ps1"))
    client.virtual_machines.run_command.assert_called_with(
        resource['resourceGroup'], resource['name'], {
            'command_id':
            'RunPowerShellScript',
            'script': ['script'],
            'parameters': [{
                'name': 'duration',
                'value': 60
            }, {
                'name': 'size',
                'value': 100
            }]
        })
def test_burn_io_on_lnx(init, fetch, open):
    # arrange mocks
    client = MagicMock()
    init.return_value = client
    resource = __get_resource(os_type='Linux')
    resource_list = [resource]
    fetch.return_value = resource_list
    # run command mocks
    poller = MagicMock()
    client.virtual_machines.run_command.return_value = poller
    result = MagicMock(spec=RunCommandResult)
    poller.result.return_value = result
    result.value = [InstanceViewStatus()]

    # act
    burn_io(filter="where name=='some_linux_machine'",
            duration=60,
            configuration=CONFIG,
            secrets=SECRETS)

    # assert
    fetch.assert_called_with("where name=='some_linux_machine'",
                             "Microsoft.Compute/virtualMachines", SECRETS,
                             CONFIG)
    open.assert_called_with(AnyStringWith("burn_io.sh"))
    client.virtual_machines.run_command.assert_called_with(
        resource['resourceGroup'], resource['name'], {
            'command_id': 'RunShellScript',
            'script': ['script'],
            'parameters': [{
                'name': 'duration',
                'value': 60
            }]
        })
 def instance_view(self, resource_group, name):
     statuses = []
     s = InstanceViewStatus(code='PowerState/Deallocated')
     statuses.append(s)
     return VirtualMachineInstanceView(statuses=statuses)