Esempio n. 1
0
def test_calling_uptime_timeout(buffer_connection):
    from moler.cmd.unix.uptime import Uptime
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection)
    uptime_cmd.terminating_timeout = 0.2
    uptime_cmd.timeout = 0.2
    with pytest.raises(CommandTimeout):
        uptime_cmd()
Esempio n. 2
0
def test_two_commands_uptime_whoami(
        buffer_connection, command_output_and_expected_result_uptime_whoami):
    from moler.cmd.unix.uptime import Uptime
    from moler.cmd.unix.whoami import Whoami
    command_output, expected_result = command_output_and_expected_result_uptime_whoami
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection)
    whoami_cmd = Whoami(connection=buffer_connection.moler_connection)
    uptime_cmd.start(timeout=2)
    time.sleep(0.005)
    whoami_cmd.start(timeout=2)
    time.sleep(0.05)
    assert CommandScheduler.is_waiting_for_execution(
        connection_observer=whoami_cmd) is True
    buffer_connection.moler_connection.data_received(
        command_output[0].encode("utf-8"), datetime.datetime.now())
    time.sleep(0.2)
    buffer_connection.moler_connection.data_received(
        command_output[1].encode("utf-8"), datetime.datetime.now())
    assert EventAwaiter.wait_for_all(timeout=2,
                                     events=[uptime_cmd, whoami_cmd]) is True
    ret_uptime = uptime_cmd.result()
    ret_whoami = whoami_cmd.result()
    assert ret_uptime == expected_result[0]
    assert ret_whoami == expected_result[1]
    assert CommandScheduler.is_waiting_for_execution(
        connection_observer=whoami_cmd) is False
Esempio n. 3
0
def test_calling_uptime_fails_unsupported_format(buffer_connection, command_unsupported_output):
    from moler.cmd.unix.uptime import Uptime
    command_output = command_unsupported_output
    buffer_connection.remote_inject_response([command_output])
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection)
    with pytest.raises(CommandFailure):
        uptime_cmd()
Esempio n. 4
0
def test_calling_uptime_returns_result_parsed_from_command_output(buffer_connection,
                                                                  command_output_and_expected_result):
    command_output, expected_result = command_output_and_expected_result
    buffer_connection.remote_inject_response([command_output])
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection)
    result = uptime_cmd()
    assert result == expected_result
Esempio n. 5
0
def test_calling_uptime_timeout_with_long_timeout(buffer_connection):
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection)
    long_timeout = 300
    uptime_cmd.terminating_timeout = 0.2
    uptime_cmd.start(timeout=long_timeout)
    uptime_cmd.timeout = long_timeout
    start_time = time.time()
    with pytest.raises(CommandTimeout):
        uptime_cmd.await_done(timeout=1)
    end_time = time.time()
    duration = end_time - start_time
    assert duration < long_timeout/10
Esempio n. 6
0
def test_two_commands_uptime(buffer_connection,
                             command_output_and_expected_result_uptime):
    from moler.cmd.unix.uptime import Uptime
    command_output, expected_result = command_output_and_expected_result_uptime
    uptime1_cmd = Uptime(connection=buffer_connection.moler_connection,
                         prompt="host:.*#")
    uptime2_cmd = Uptime(connection=buffer_connection.moler_connection,
                         prompt="host:.*#")
    uptime1_cmd.start(timeout=2)
    uptime2_cmd.start(timeout=2)
    time.sleep(0.05)
    buffer_connection.moler_connection.data_received(
        command_output[0].encode("utf-8"), datetime.datetime.now())
    time.sleep(0.2)
    buffer_connection.moler_connection.data_received(
        command_output[1].encode("utf-8"), datetime.datetime.now())
    assert EventAwaiter.wait_for_all(timeout=2,
                                     events=(uptime1_cmd, uptime2_cmd)) is True
    uptime1_ret = uptime1_cmd.result()
    uptime2_ret = uptime2_cmd.result()
    assert uptime1_ret == expected_result[0]
    assert uptime2_ret == expected_result[1]
Esempio n. 7
0
def test_calling_uptime_timeout_with_short_timeout(buffer_connection):
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection)
    short_timeout = 7
    uptime_cmd.terminating_timeout = 0.2
    uptime_cmd.start(timeout=short_timeout)
    start_time = time.time()
    with pytest.raises(CommandTimeout):
        uptime_cmd.await_done()
    end_time = time.time()
    duration = end_time - start_time
    assert duration < short_timeout + 1
    assert duration >= short_timeout
Esempio n. 8
0
def test_timeout_before_command_sent(buffer_connection,
                                     command_output_and_expected_result_ping):
    from moler.cmd.unix.uptime import Uptime
    from moler.cmd.unix.ping import Ping
    command_output, expected_result = command_output_and_expected_result_ping
    ping_cmd = Ping(connection=buffer_connection.moler_connection,
                    prompt="host:.*#",
                    destination="localhost",
                    options="-w 5")
    uptime_cmd = Uptime(connection=buffer_connection.moler_connection,
                        prompt="host:.*#")
    ping_cmd.start(timeout=2)
    time.sleep(0.05)
    buffer_connection.moler_connection.data_received(
        command_output[0].encode("utf-8"), datetime.datetime.now())
    with pytest.raises(CommandTimeout):
        uptime_cmd(timeout=0.2)
    buffer_connection.moler_connection.data_received(
        command_output[1].encode("utf-8"), datetime.datetime.now())
    ping_cmd.await_done(timeout=0.2)
    ping_ret = ping_cmd.result()
    assert ping_ret == expected_result
Esempio n. 9
0
def test_uptime_sends_without_enter(buffer_connection):
    from moler.cmd.unix.uptime import Uptime
    uptime_cmd = Uptime(buffer_connection.moler_connection)
    uptime_cmd.newline_after_command_string = False
    uptime_cmd.send_command()
Esempio n. 10
0
def test_uptime_sends_with_enter(buffer_connection):
    from moler.cmd.unix.uptime import Uptime
    uptime_cmd = Uptime(buffer_connection.moler_connection)
    uptime_cmd.send_command()
Esempio n. 11
0
def test_uptime_returns_proper_command_string(buffer_connection):
    from moler.cmd.unix.uptime import Uptime
    uptime_cmd = Uptime(buffer_connection.moler_connection)
    assert "uptime" == uptime_cmd.command_string
Esempio n. 12
0
def test_uptime_sends_with_enter(buffer_connection):
    uptime_cmd = Uptime(buffer_connection.moler_connection)
    uptime_cmd.send_command()
Esempio n. 13
0
def test_uptime_returns_proper_command_string(buffer_connection):
    uptime_cmd = Uptime(buffer_connection.moler_connection)
    assert "uptime" == uptime_cmd.command_string