diff options
author | Avital Fine <79420960+AvitalFineRedis@users.noreply.github.com> | 2021-11-30 17:47:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-30 18:47:25 +0200 |
commit | 175a05f4de17918b74bde7f554182968b1f6aabb (patch) | |
tree | 6fe2b660c03c4e0342d1b0c6e124490baf14f7a0 /tests/test_graph_utils/test_path.py | |
parent | b94e230b17d08e6c89d134e933c706256b79bc4a (diff) | |
download | redis-py-175a05f4de17918b74bde7f554182968b1f6aabb.tar.gz |
Adding RedisGraph support (#1673)
Co-authored-by: Chayim I. Kirshen <c@kirshen.com>
Diffstat (limited to 'tests/test_graph_utils/test_path.py')
-rw-r--r-- | tests/test_graph_utils/test_path.py | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/test_graph_utils/test_path.py b/tests/test_graph_utils/test_path.py new file mode 100644 index 0000000..d581269 --- /dev/null +++ b/tests/test_graph_utils/test_path.py @@ -0,0 +1,91 @@ +import pytest + +from redis.commands.graph import edge, node, path + + +@pytest.mark.redismod +def test_init(): + with pytest.raises(TypeError): + path.Path(None, None) + path.Path([], None) + path.Path(None, []) + + assert isinstance(path.Path([], []), path.Path) + + +@pytest.mark.redismod +def test_new_empty_path(): + new_empty_path = path.Path.new_empty_path() + assert isinstance(new_empty_path, path.Path) + assert new_empty_path._nodes == [] + assert new_empty_path._edges == [] + + +@pytest.mark.redismod +def test_wrong_flows(): + node_1 = node.Node(node_id=1) + node_2 = node.Node(node_id=2) + node_3 = node.Node(node_id=3) + + edge_1 = edge.Edge(node_1, None, node_2) + edge_2 = edge.Edge(node_1, None, node_3) + + p = path.Path.new_empty_path() + with pytest.raises(AssertionError): + p.add_edge(edge_1) + + p.add_node(node_1) + with pytest.raises(AssertionError): + p.add_node(node_2) + + p.add_edge(edge_1) + with pytest.raises(AssertionError): + p.add_edge(edge_2) + + +@pytest.mark.redismod +def test_nodes_and_edges(): + node_1 = node.Node(node_id=1) + node_2 = node.Node(node_id=2) + edge_1 = edge.Edge(node_1, None, node_2) + + p = path.Path.new_empty_path() + assert p.nodes() == [] + p.add_node(node_1) + assert [] == p.edges() + assert 0 == p.edge_count() + assert [node_1] == p.nodes() + assert node_1 == p.get_node(0) + assert node_1 == p.first_node() + assert node_1 == p.last_node() + assert 1 == p.nodes_count() + p.add_edge(edge_1) + assert [edge_1] == p.edges() + assert 1 == p.edge_count() + assert edge_1 == p.get_relationship(0) + p.add_node(node_2) + assert [node_1, node_2] == p.nodes() + assert node_1 == p.first_node() + assert node_2 == p.last_node() + assert 2 == p.nodes_count() + + +@pytest.mark.redismod +def test_compare(): + node_1 = node.Node(node_id=1) + node_2 = node.Node(node_id=2) + edge_1 = edge.Edge(node_1, None, node_2) + + assert path.Path.new_empty_path() == path.Path.new_empty_path() + assert path.Path(nodes=[node_1, node_2], edges=[edge_1]) == path.Path( + nodes=[node_1, node_2], edges=[edge_1] + ) + assert path.Path(nodes=[node_1], edges=[]) != path.Path(nodes=[], edges=[]) + assert path.Path(nodes=[node_1], edges=[]) != path.Path(nodes=[], edges=[]) + assert path.Path(nodes=[node_1], edges=[]) != path.Path(nodes=[node_2], edges=[]) + assert path.Path(nodes=[node_1], edges=[edge_1]) != path.Path( + nodes=[node_1], edges=[] + ) + assert path.Path(nodes=[node_1], edges=[edge_1]) != path.Path( + nodes=[node_2], edges=[edge_1] + ) |