1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
import pytest
from redis.commands.graph import edge, node
@pytest.mark.redismod
def test_init():
with pytest.raises(AssertionError):
edge.Edge(None, None, None)
edge.Edge(node.Node(), None, None)
edge.Edge(None, None, node.Node())
assert isinstance(
edge.Edge(node.Node(node_id=1), None, node.Node(node_id=2)), edge.Edge
)
@pytest.mark.redismod
def test_to_string():
props_result = edge.Edge(
node.Node(), None, node.Node(), properties={"a": "a", "b": 10}
).to_string()
assert props_result == '{a:"a",b:10}'
no_props_result = edge.Edge(
node.Node(), None, node.Node(), properties={}
).to_string()
assert no_props_result == ""
@pytest.mark.redismod
def test_stringify():
john = node.Node(
alias="a",
label="person",
properties={"name": "John Doe", "age": 33, "someArray": [1, 2, 3]},
)
japan = node.Node(alias="b", label="country", properties={"name": "Japan"})
edge_with_relation = edge.Edge(
john, "visited", japan, properties={"purpose": "pleasure"}
)
assert (
'(a:person{age:33,name:"John Doe",someArray:[1, 2, 3]})'
'-[:visited{purpose:"pleasure"}]->'
'(b:country{name:"Japan"})' == str(edge_with_relation)
)
edge_no_relation_no_props = edge.Edge(japan, "", john)
assert (
'(b:country{name:"Japan"})'
"-[]->"
'(a:person{age:33,name:"John Doe",someArray:[1, 2, 3]})'
== str(edge_no_relation_no_props)
)
edge_only_props = edge.Edge(john, "", japan, properties={"a": "b", "c": 3})
assert (
'(a:person{age:33,name:"John Doe",someArray:[1, 2, 3]})'
'-[{a:"b",c:3}]->'
'(b:country{name:"Japan"})' == str(edge_only_props)
)
@pytest.mark.redismod
def test_comparision():
node1 = node.Node(node_id=1)
node2 = node.Node(node_id=2)
node3 = node.Node(node_id=3)
edge1 = edge.Edge(node1, None, node2)
assert edge1 == edge.Edge(node1, None, node2)
assert edge1 != edge.Edge(node1, "bla", node2)
assert edge1 != edge.Edge(node1, None, node3)
assert edge1 != edge.Edge(node3, None, node2)
assert edge1 != edge.Edge(node2, None, node1)
assert edge1 != edge.Edge(node1, None, node2, properties={"a": 10})
|