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
Пример #6
0
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})
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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)