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()
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
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()
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
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
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]
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
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
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()
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()
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
def test_uptime_sends_with_enter(buffer_connection): uptime_cmd = Uptime(buffer_connection.moler_connection) uptime_cmd.send_command()
def test_uptime_returns_proper_command_string(buffer_connection): uptime_cmd = Uptime(buffer_connection.moler_connection) assert "uptime" == uptime_cmd.command_string