class TestIndexedRelationshipAddition(object): @pytest.fixture(autouse=True) def setup(self, graph): try: graph.legacy.delete_index(Relationship, "Friendships") except LookupError: pass self.friendships = graph.legacy.get_or_create_index( Relationship, "Friendships") self.batch = LegacyWriteBatch(graph) self.graph = graph def test_can_add_single_relationship(self, graph): alice, bob, ab = self.graph.create({"name": "Alice"}, {"name": "Bob"}, (0, "KNOWS", 1)) self.batch.add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab) self.batch.run() # check entries rels = self.friendships.get("friends", "alice_&_bob") assert len(rels) == 1 assert ab in rels # done self.recycling = [ab, alice, bob] def test_can_add_two_similar_relationships(self, graph): alice, bob, ab1, ab2 = self.graph.create({"name": "Alice"}, {"name": "Bob"}, (0, "KNOWS", 1), (0, "KNOWS", 1)) self.batch.add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab1) self.batch.add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab2) self.batch.run() # check entries entries = self.friendships.get("friends", "alice_&_bob") assert len(entries) == 2 assert ab1 in entries assert ab2 in entries # done self.recycling = [ab1, ab2, alice, bob] def test_can_add_relationships_only_if_none_exist(self): alice, bob, ab1, ab2 = self.graph.create({"name": "Alice"}, {"name": "Bob"}, (0, "KNOWS", 1), (0, "KNOWS", 1)) self.batch.get_or_add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab1) self.batch.get_or_add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab2) results = self.batch.submit() assert results[0] == results[1] # check entries entries = self.friendships.get("friends", "alice_&_bob") assert len(entries) == 1 assert ab1 in entries # done self.recycling = [ab1, ab2, alice, bob]
class TestIndexedRelationshipAddition(object): @pytest.fixture(autouse=True) def setup(self, legacy_graph): try: legacy_graph.delete_index(Relationship, "Friendships") except LookupError: pass self.friendships = legacy_graph.get_or_create_index(Relationship, "Friendships") self.batch = LegacyWriteBatch(legacy_graph) self.graph = legacy_graph def test_can_add_single_relationship(self, legacy_graph): alice, bob, ab = self.graph.create({"name": "Alice"}, {"name": "Bob"}, (0, "KNOWS", 1)) self.batch.add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab) self.batch.run() # check entries rels = self.friendships.get("friends", "alice_&_bob") assert len(rels) == 1 assert ab in rels # done self.recycling = [ab, alice, bob] def test_can_add_two_similar_relationships(self, legacy_graph): alice, bob, ab1, ab2 = self.graph.create( {"name": "Alice"}, {"name": "Bob"}, (0, "KNOWS", 1), (0, "KNOWS", 1)) self.batch.add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab1) self.batch.add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab2) self.batch.run() # check entries entries = self.friendships.get("friends", "alice_&_bob") assert len(entries) == 2 assert ab1 in entries assert ab2 in entries # done self.recycling = [ab1, ab2, alice, bob] def test_can_add_relationships_only_if_none_exist(self): alice, bob, ab1, ab2 = self.graph.create( {"name": "Alice"}, {"name": "Bob"}, (0, "KNOWS", 1), (0, "KNOWS", 1)) self.batch.get_or_add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab1) self.batch.get_or_add_to_index(Relationship, self.friendships, "friends", "alice_&_bob", ab2) results = self.batch.submit() assert results[0] == results[1] # check entries entries = self.friendships.get("friends", "alice_&_bob") assert len(entries) == 1 assert ab1 in entries # done self.recycling = [ab1, ab2, alice, bob]
class TestIndexedNodeAddition(object): @pytest.fixture(autouse=True) def setup(self, graph): try: graph.legacy.delete_index(Node, "People") except LookupError: pass self.people = graph.legacy.get_or_create_index(Node, "People") self.batch = LegacyWriteBatch(graph) self.graph = graph def test_can_add_single_node(self): alice, = self.graph.create({"name": "Alice Smith"}) self.batch.add_to_index(Node, self.people, "surname", "Smith", alice) self.batch.run() # check entries smiths = self.people.get("surname", "Smith") assert len(smiths) == 1 assert alice in smiths # done self.graph.delete(alice) def test_can_add_two_similar_nodes(self): alice, bob = self.graph.create({"name": "Alice Smith"}, {"name": "Bob Smith"}) self.batch.add_to_index(Node, self.people, "surname", "Smith", alice) self.batch.add_to_index(Node, self.people, "surname", "Smith", bob) nodes = self.batch.submit() assert nodes[0] != nodes[1] # check entries smiths = self.people.get("surname", "Smith") assert len(smiths) == 2 assert alice in smiths assert bob in smiths # done self.graph.delete(alice, bob) def test_can_add_nodes_only_if_none_exist(self): alice, bob = self.graph.create({"name": "Alice Smith"}, {"name": "Bob Smith"}) self.batch.get_or_add_to_index(Node, self.people, "surname", "Smith", alice) self.batch.get_or_add_to_index(Node, self.people, "surname", "Smith", bob) nodes = self.batch.submit() assert nodes[0] == nodes[1] # check entries smiths = self.people.get("surname", "Smith") assert len(smiths) == 1 assert alice in smiths # done self.graph.delete(alice, bob)
class TestIndexedNodeAddition(object): @pytest.fixture(autouse=True) def setup(self, legacy_graph): try: legacy_graph.delete_index(Node, "People") except LookupError: pass self.people = legacy_graph.get_or_create_index(Node, "People") self.batch = LegacyWriteBatch(legacy_graph) self.graph = legacy_graph def test_can_add_single_node(self): alice, = self.graph.create({"name": "Alice Smith"}) self.batch.add_to_index(Node, self.people, "surname", "Smith", alice) self.batch.run() # check entries smiths = self.people.get("surname", "Smith") assert len(smiths) == 1 assert alice in smiths # done self.graph.delete(alice) def test_can_add_two_similar_nodes(self): alice, bob = self.graph.create( {"name": "Alice Smith"}, {"name": "Bob Smith"}) self.batch.add_to_index(Node, self.people, "surname", "Smith", alice) self.batch.add_to_index(Node, self.people, "surname", "Smith", bob) nodes = self.batch.submit() assert nodes[0] != nodes[1] # check entries smiths = self.people.get("surname", "Smith") assert len(smiths) == 2 assert alice in smiths assert bob in smiths # done self.graph.delete(alice, bob) def test_can_add_nodes_only_if_none_exist(self): alice, bob = self.graph.create( {"name": "Alice Smith"}, {"name": "Bob Smith"}) self.batch.get_or_add_to_index(Node, self.people, "surname", "Smith", alice) self.batch.get_or_add_to_index(Node, self.people, "surname", "Smith", bob) nodes = self.batch.submit() assert nodes[0] == nodes[1] # check entries smiths = self.people.get("surname", "Smith") assert len(smiths) == 1 assert alice in smiths # done self.graph.delete(alice, bob)