def test_basic_formatting_with_int(): query = """ MATCH (n:{label}) """ expected = "MATCH (n:123)" result = format_cypher_query(query, label=123) assert result == expected
def test_basic_formatting(): query = """ MATCH (n:{label}) """ expected = "MATCH (n:mylabel)" result = format_cypher_query(query, label="mylabel") assert result == expected
def test_query_list_of_keys(): query = """ MATCH (n:{label}) key: {key} """ expected = "MATCH (n:mylabel)\nkey: key1\nkey: key2" result = format_cypher_query(query, label="mylabel", key=["key1", "key2"]) assert result == expected
def test_query_list_of_items(): query = """ MATCH (n:{label}) item: {item[0]}: {item[1]} """ expected = "MATCH (n:mylabel)\nitem: key1: val1\nitem: key2: val2\nitem: key3: 3" data = {"key1": "val1", "key2": "val2", "key3": 3} result = format_cypher_query(query, label="mylabel", item=list(data.items())) assert result == expected
def test_query_list_of_keys_mixed(): query = """ MATCH (n:{label}) key: {key} {val} """ expected = "MATCH (n:mylabel)\nkey: key1 value\nkey: key2 value" result = format_cypher_query(query, label="mylabel", key=["key1", "key2"], val="value") assert result == expected
def test_merge_relationship(etl): uid1 = str(uuid4()) uid2 = str(uuid4()) create_node_query = format_cypher_query( """ CREATE (n: Sample) SET n = $data """ ) etl.write(create_node_query, {"data": {"uid": uid1}}) etl.write(create_node_query, {"data": {"uid": uid2}}) create_edge_query = format_cypher_query( """ CREATE (a:Sample { id: $uid1 }) -[r:LABEL]-> (b:Sample { id: $uid2 }) RETURN a, r, b""" ) print(create_edge_query) etl.write(create_edge_query, data={"uid1": uid1, "uid2": uid2})
def test_merge_update(etl): """Tests updating a node with a map.""" uid = str(uuid4()) uid2 = str(uuid4()) write_query = format_cypher_query( """ MERGE (n:Sample) SET n += $data RETURN n """ ) read_query = format_cypher_query( """ MATCH (n:Sample { uid: "{uid}" }) RETURN n """, uid=uid2, ) etl.write(write_query, {"data": {"uid": uid}}) etl.write(write_query, {"data": {"uid": uid2}}) results = etl.read(read_query) assert results
def test_create_with_map(etl): """Tests creation of a node via a map.""" uid = str(uuid4()) write_query = format_cypher_query( """ CREATE (n:Sample) SET n += $data RETURN n """ ) read_query = format_cypher_query( """ MATCH (n:Sample { uid: "{uid}" }) RETURN n """, uid=uid, ) etl.write(write_query, {"data": {"uid": uid}}) results = etl.read(read_query) assert results
def test_multiple_create(aq, etl): query = format_cypher_query( """ UNWIND $datalist AS data CREATE (n:Item) SET n += data RETURN n.id AS x ORDER BY x """ ) import time datalist = [i.dump() for i in aq.Item.last(1000)] t1 = time.time() etl.write(query, {"datalist": datalist}) t2 = time.time() print(t2 - t1)