Exemplo n.º 1
0
 def test_append_edge_with_ident_set(self):
     node1 = Vertex(label="NODE")
     node2 = Vertex(label="NODE")
     edge = Edge(node1, "knows", node2)
     edge.ident = 0
     self.assertRaises(interfaces.DatabaseException, self.graph.append_edge,
                       edge)
Exemplo n.º 2
0
    def setUp(self):
        id_generator = IDGenerator()
        self.marko = Vertex(
            "Father",
            name="Marko",
            surname="Jones",
            age=30,
        )
        self.john = Vertex(
            "Brother",
            name="John",
            surname="Jones",
            age=30
        )
        self.peter = Vertex(
            "Uncle",
            name="Peter",
            surname="Doe",
            age=20
        )

        # add id's to the unbound vertices
        self.marko.ident = id_generator.get_vertex_id()
        self.john.ident = id_generator.get_vertex_id()
        self.peter.ident = id_generator.get_vertex_id()
        self.container = EntitySet([self.marko, self.john, self.peter])
Exemplo n.º 3
0
    def test_union_filter_for_labels_with_no_props(self):
        id_generator = IDGenerator()
        marko = Vertex(
            "person",
            name="Marko",
        )
        josh = Vertex(
            "person",
            name="Marko",
        )
        edge = Edge(marko, "father", josh)
        edge2 = Edge(josh, "son", marko)

        # attach ID's to the vertices and edges.
        marko.ident = id_generator.get_vertex_id()
        josh.ident = id_generator.get_vertex_id()
        edge.ident = id_generator.get_edge_id()
        edge2.ident = id_generator.get_edge_id()

        container1 = EntitySet()
        container2 = EntitySet()

        container1.add(edge)
        container2.add(edge2)
        container3 = container1 | container2

        self.assertEqual(container3.filter("father").sorted(), sorted([edge]))
        self.assertEqual(container3.filter("son").sorted(), sorted([edge2]))
Exemplo n.º 4
0
    def test_append_edge(self):
        node1 = Vertex(label="NODE")
        node2 = Vertex(label="NODE")
        edge = Edge(node1, "knows", node2)
        self.graph.append_edge(edge)

        self.assertEqual(edge.ident, self.graph._id_tracker.eid - 1)
        self.assertIn(edge, self.graph)
        self.assertEqual(edge.is_bound(), True)
Exemplo n.º 5
0
 def test_filter_for_labels_with_no_props(self):
     marko = Vertex(
         "person",
         name="Marko",
     )
     josh = Vertex(
         "person",
         name="Marko",
     )
     edge = Edge(marko, "father", josh)
     container = EntitySet()
     container.add(edge)
     self.assertEqual(container.filter("father").sorted(), sorted([edge]))
Exemplo n.º 6
0
    def test_add_out_edge_unbound(self):
        marko = Vertex("person", name="marko")
        josh = Vertex("person", name="josh")
        new_edge = marko.add_out_edge(josh, "knows")

        self.assertIsInstance(new_edge, IEdge)

        self.assertIn(
            new_edge,
            marko.out_edges,
        )

        self.assertEqual(
            marko.get_both_edges().sorted(),
            [new_edge],
        )
Exemplo n.º 7
0
 def test_bind_to_graph(self):
     sue = Vertex(100, name="Sue")
     self.graph.bind_to_graph(sue)
     self.assertIs(
         sue.graph,
         self.graph
     )
Exemplo n.º 8
0
 def test_remove_unknown_entity_id(self):
     sue = Vertex(100, name="sue")
     self.assertRaises(
         KeyError,
         self.container.remove,
         sue,
     )
Exemplo n.º 9
0
 def test_set_property_on_an_unknown_entity(self):
     dog = Vertex("dog", name="socks")
     self.assertRaises(
         interfaces.UnknownEntityError,
         self.graph.set_property,
         dog,
         name="spot"
     )
Exemplo n.º 10
0
 def test_append_vertex_with_ident_set(self):
     node = Vertex(label="NODE")
     node.ident = 0
     self.assertRaises(
         interfaces.EntityIDError,
         self.graph.append_vertex,
         node
     )
Exemplo n.º 11
0
 def test_intersection(self):
     sue = Vertex("Sister", name="Sue")
     intersection = self.container & EntitySet([self.marko, sue])
     self.assertEqual(
         intersection.sorted(),  # pylint: disable=no-member
         sorted([
             self.marko,
         ]))
Exemplo n.º 12
0
 def test_add_dup_id(self):
     sue = Vertex("person", name="dup_vertex_id")
     sue.ident = 0
     self.assertRaises(
         KeyError,
         self.container.add,
         sue
     )
Exemplo n.º 13
0
 def test_difference(self):
     sue = Vertex("Sister", name="Sue")
     diff = self.container - EntitySet([self.marko, sue])
     self.assertEqual(
         diff.sorted(),  # pylint: disable=no-member
         sorted([
             self.john,
             self.peter,
         ]))
Exemplo n.º 14
0
 def test_filter_for_vertex_with_prop_None(self):
     sue = Vertex(
         "person",
         name="sue",
         age=None,
     )
     self.container.add(sue)
     self.assertEqual(
         self.container.filter(name="Marko", age__gt=0).all(),
         [self.marko],
     )
Exemplo n.º 15
0
 def test_union(self):
     sue = Vertex(
         "Sister",
         name="Sue"
     )
     union = self.container | EntitySet([sue, self.marko])
     self.assertEqual(
         union.sorted(),  # pylint: disable=no-member
         sorted(
             [
                 self.marko,
                 self.john,
                 self.peter,
                 sue
             ]
         )
     )
Exemplo n.º 16
0
 def setUp(self):
     self.marko = Vertex(label="person", name="marko", age=29)
     super(TestEdge, self).setUp()
Exemplo n.º 17
0
 def test_contains_vertex_not_found(self):
     v = Vertex("person", name="not_in_graph")
     self.assertEqual(self.graph.__contains__(v), False)
Exemplo n.º 18
0
 def test_append_vertex(self):
     node = Vertex(label="NODE")
     self.graph.append_vertex(node)
     self.assertEqual(node.ident, self.graph._id_tracker.vid - 1)
     self.assertIn(node, self.graph)
     self.assertEqual(node.is_bound(), True)