def test_send(socket): data = "host:version" with patch.object(Socket, '_send_data') as send_data_method: socket.send(data) calls = [call(int_to_hex(len(data))), call(data)] send_data_method.assert_has_calls(calls)
def test_receive_fail_response(socket): expected_data = 'big error' responses = ['FA', 'IL', int_to_hex(len(expected_data)), expected_data] socket.socket.recv = lambda x: responses.pop(0).encode("ascii") with pytest.raises(SocketError): socket.receive()
def test_receive_staggered_respose(socket): expected_data = '950a8ad5\toffline\n6097191b\tdevice\n' responses = [ 'OK', 'AY', int_to_hex(len(expected_data)), expected_data[:10], expected_data[10:] ] socket.socket.recv = lambda x: responses.pop(0).encode("ascii") data = socket.receive() assert data == expected_data
def test_receive_full_respose(socket): expected_data = 'hello_respose' responses = ['OKAY', '000d', expected_data] socket.socket.recv = lambda x: responses.pop(0).encode("ascii") data = socket.receive() assert data == expected_data expected_data = '950a8ad5\toffline\n6097191b\tdevice\n' responses = ['OKAY', int_to_hex(len(expected_data)), expected_data] data = socket.receive() assert data == expected_data
def test_int_to_hex_overflow(): with pytest.raises(ValueError): int_to_hex(65536)
def test_int_to_hex(): assert int_to_hex(2) == "0002" assert int_to_hex(255) == "00ff" assert int_to_hex(256) == "0100" assert int_to_hex(100) == "0064" assert int_to_hex(0) == "0000"