def test_db_extra_in_begin(fake_socket): address = ("127.0.0.1", 7687) socket = fake_socket(address) connection = Bolt4x2(address, socket, PoolConfig.max_connection_lifetime) connection.begin(db="something") connection.send_all() tag, fields = socket.pop_message() assert tag == b"\x11" assert len(fields) == 1 assert fields[0] == {"db": "something"}
def test_n_extra_in_discard(fake_socket): address = ("127.0.0.1", 7687) socket = fake_socket(address) connection = Bolt4x2(address, socket, PoolConfig.max_connection_lifetime) connection.discard(n=666) connection.send_all() tag, fields = socket.pop_message() assert tag == b"\x2F" assert len(fields) == 1 assert fields[0] == {"n": 666}
def test_n_and_qid_extras_in_pull(fake_socket): address = ("127.0.0.1", 7687) socket = fake_socket(address) connection = Bolt4x2(address, socket, PoolConfig.max_connection_lifetime) connection.pull(n=666, qid=777) connection.send_all() tag, fields = socket.pop_message() assert tag == b"\x3F" assert len(fields) == 1 assert fields[0] == {"n": 666, "qid": 777}
def test_hello_passes_routing_metadata(fake_socket_pair): address = ("127.0.0.1", 7687) sockets = fake_socket_pair(address) sockets.server.send_message(0x70, {"server": "Neo4j/4.2.0"}) connection = Bolt4x2(address, sockets.client, PoolConfig.max_connection_lifetime, routing_context={"foo": "bar"}) connection.hello() tag, fields = sockets.server.pop_message() assert tag == 0x01 assert len(fields) == 1 assert fields[0]["routing"] == {"foo": "bar"}
def test_qid_extra_in_pull(fake_socket, test_input, expected): # python -m pytest tests/unit/io/test_class_bolt4x0.py -s -k test_qid_extra_in_pull address = ("127.0.0.1", 7687) socket = fake_socket(address) connection = Bolt4x2(address, socket, PoolConfig.max_connection_lifetime) connection.pull(qid=test_input) connection.send_all() tag, fields = socket.pop_message() assert tag == b"\x3F" assert len(fields) == 1 assert fields[0] == expected
def test_hello_passes_routing_metadata(fake_socket_pair): address = ("127.0.0.1", 7687) sockets = fake_socket_pair(address) # TODO helper method for encoding messages sockets.server.sendall(b"\x00\x03\xB1\x70\xA0\x00\x00") connection = Bolt4x2(address, sockets.client, PoolConfig.max_connection_lifetime, routing_context={"foo": "bar"}) connection.hello() tag, fields = sockets.server.pop_message() assert tag == 0x01 assert len(fields) == 1 assert fields[0]["routing"] == {"foo": "bar"}
def test_conn_not_timed_out(fake_socket): address = ("127.0.0.1", 7687) max_connection_lifetime = 999999999 connection = Bolt4x2(address, fake_socket(address), max_connection_lifetime) assert connection.timedout() is False