def test_deliver_order(): server = Server(host=None) setup_server(server) server.users[2].logout() # first send from u2 to u3 conn = server.connections[1] server._process_send( conn, [server.users[1].username, server.users[2].username, 'test message!']) server._process_send(conn, [ server.users[1].username, server.users[2].username, 'another test message' ]) # then login as u3 and get all the messages conn = server.connections[2] server.users[2].login(conn) assert len(server.users[2].undelivered_messages) == 2 server._process_deliver(conn, None) wp = WireProtocol() wp.parse_incoming_bytes(conn.send_buffer) assert wp.command == CMD.SEND assert wp.data_buffer == b'u2|||u3|||test message!' remaining_bytes = wp.tmp_buffer wp.reset_buffers() wp.parse_incoming_bytes(remaining_bytes) assert wp.command == CMD.SEND assert wp.data_buffer == b'u2|||u3|||another test message'
def test_send_immediately(): server = Server(host=None) setup_server(server) conn = server.connections[1] server._process_send( conn, [server.users[1].username, server.users[2].username, 'test message']) assert conn.send_buffer[-22:] == b'u2|||u3|||test message' assert server.users[2].connection.send_buffer[ -22:] == b'u2|||u3|||test message'
def test_send_notexists(): server = Server(host=None) setup_server(server) conn = server.connections[1] server._process_send( conn, [server.users[1].username, 'asdfasdfadf', 'test message']) wp = WireProtocol() wp.parse_incoming_bytes(conn.send_buffer) assert wp.command == CMD.RESPONSE # indicates error
def test_send_notlogged(): server = Server(host=None) setup_server(server) conn = Connection('newconn', None) server._process_send( conn, [server.users[1].username, server.users[2].username, 'test message']) wp = WireProtocol() wp.parse_incoming_bytes(conn.send_buffer) assert wp.command == CMD.RESPONSE # indicates error
def test_send_later(): server = Server(host=None) setup_server(server) server.users[2].logout() conn = server.connections[1] server._process_send( conn, [server.users[1].username, server.users[2].username, 'test message']) assert conn.send_buffer[ -22:] == b'u2|||u3|||test message' # should still send to the sender assert len(server.users[2].undelivered_messages) == 1 assert server.users[2].undelivered_messages[0] == [ server.users[1].username, server.users[2].username, 'test message' ]