コード例 #1
0
def test_exception():
    # do directly to exception:
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        network_advanced(instance_ids=['CLIENT1', 'CLIENT2'],
                         execution_duration="1",
                         command="loss 5%")
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        burn_cpu(instance_ids=['CLIENT1'], execution_duration="1")
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        burn_io(instance_ids=['CLIENT1', 'CLIENT2'], execution_duration="1")
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        fill_disk(instance_ids=['CLIENT1'], execution_duration="1")
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        network_corruption(instance_ids=['CLIENT1', 'CLIENT2'],
                           execution_duration="1")
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        network_loss(instance_ids=['CLIENT1', 'CLIENT2'],
                     execution_duration="1")
    with pytest.raises(FailedActivity,
                       match=r"configuration is not complete.*"):
        network_latency(instance_ids=['CLIENT1'], execution_duration="1")
コード例 #2
0
def test_burn_cpu_on_linux_wrong_os_type(init, open):
    # mock
    client = MagicMock()
    init.return_value = client
    client.get_grains_get.return_value = {'CLIENT1': "invalid"}
    # do
    with pytest.raises(
            FailedActivity,
            match=
            r"failed issuing a execute of shell script via salt API Cannot find corresponding script for cpu_stress_test on OS: invalid"
    ):
        burn_cpu(instance_ids=['CLIENT1'], execution_duration="1")
    # assert
    client.get_grains_get.assert_called_with(['CLIENT1'], 'kernel')
def test_burn_cpu_on_linux(init, open):
    # mock
    client = MagicMock()
    init.return_value = client

    client.get_grains_get.return_value = {'CLIENT1': "Linux"}
    client.async_run_cmd.return_value = "20190830103239148771"
    client.get_async_cmd_result.return_value = {'CLIENT1': "Stressing CLIENT1 1 CPUs for 180 seconds.\nStressing 1 CPUs for 180 seconds. Done\nexperiment strees_cpu <CLIENT1> -> success"}
    client.async_cmd_exit_success.return_value = {'CLIENT1': True}

    # do
    burn_cpu(instance_ids=['CLIENT1'],
             execution_duration="1")

    open.assert_called_with(AnyStringWith("cpu_stress_test.sh"))
    client.get_grains_get.assert_called_with(['CLIENT1'], 'kernel')
    client.async_run_cmd.assert_called_with('CLIENT1', 'cmd.run', AnyStringWith('script'))
    client.async_cmd_exit_success.assert_called_with('20190830103239148771')
    client.get_async_cmd_result.assert_called_with('20190830103239148771')
コード例 #4
0
def test_burn_cpu_on_linux_two_error_in_execution(init, open):
    # mock
    client = MagicMock()
    init.return_value = client

    client.get_grains_get.return_value = {
        'CLIENT1': "Linux",
        'CLIENT2': "Linux"
    }
    client.async_run_cmd.return_value = "20190830103239148772"
    client.get_async_cmd_result.return_value = {
        'CLIENT1':
        "Stressing CLIENT1 1 CPUs for 180 seconds.\nStressing 1 CPUs for 180 seconds. Done\nexperiment strees_cpu <CLIENT1> -> success",
        'CLIENT2': "experiment strees_cpu <CLIENT2> -> success"
    }
    client.async_cmd_exit_success.return_value = {
        'CLIENT1': True,
        'CLIENT2': False
    }

    # do
    with pytest.raises(FailedActivity,
                       match=r"One of experiments are failed among.*"):
        burn_cpu(instance_ids=['CLIENT1', 'CLIENT2'], execution_duration="1")
    # assert
    open.assert_called_with(AnyStringWith("cpu_stress_test.sh"))
    client.get_grains_get.assert_called_with(['CLIENT1', 'CLIENT2'], 'kernel')
    assert client.async_run_cmd.mock_calls == [
        call('CLIENT1', 'cmd.run', AnyStringWith('script')),
        call('CLIENT2', 'cmd.run', AnyStringWith('script'))
    ]
    assert client.async_cmd_exit_success.mock_calls == [
        call('20190830103239148772'),
        call('20190830103239148772')
    ]
    assert client.get_async_cmd_result.mock_calls == [
        call('20190830103239148772'),
        call('20190830103239148772')
    ]
def test_bad_machines(init, open):
    # mock
    client = MagicMock()
    init.return_value = client

    client.get_grains_get.return_value = {}
    client.async_run_cmd.return_value = "20190830103239148772"
    client.get_async_cmd_result.return_value = {'CLIENT1': "Stressing CLIENT1 1 CPUs for 180 seconds.\nStressing 1 CPUs for 180 seconds. Done\nexperiment strees_cpu <CLIENT1> -> success",
                                                'CLIENT2': "experiment strees_cpu <CLIENT2> -> fail"}
    client.async_cmd_exit_success.return_value = {'CLIENT1': True, 'CLIENT2': True}

    # do
    with pytest.raises(FailedActivity, match=r"Cannot find any machines.*"):
        response = burn_cpu(instance_ids=['CLIENT1', 'CLIENT2'], execution_duration="1")