class TestLoadUnique(object): @pytest.fixture(autouse=True) def setup(self, graph): self.graph = graph try: self.graph.legacy.delete_index(Node, "People") except LookupError: pass self.graph.legacy.get_or_create_index(Node, "People") self.store = Store(self.graph) def test_can_load_simple_object(self): alice_node = self.graph.legacy.get_or_create_indexed_node( "People", "email", "*****@*****.**", { "email": "*****@*****.**", "name": "Alice Allison", "age": 34, }) alice = self.store.load_unique("People", "email", "*****@*****.**", Person) assert isinstance(alice, Person) assert hasattr(alice, "__node__") assert alice.__node__ == alice_node assert hasattr(alice, "__rel__") assert alice.__rel__ == {} assert alice.email == "*****@*****.**" assert alice.name == "Alice Allison" assert alice.age == 34 def test_can_load_object_with_relationships(self): alice_node = self.graph.legacy.get_or_create_indexed_node( "People", "email", "*****@*****.**", { "email": "*****@*****.**", "name": "Alice Allison", "age": 34, }) path = alice_node.create_path("LIKES", {"name": "Bob Robertson"}) bob_node = path.nodes[1] alice = self.store.load_unique("People", "email", "*****@*****.**", Person) assert isinstance(alice, Person) assert hasattr(alice, "__node__") assert alice.__node__ == alice_node assert hasattr(alice, "__rel__") assert alice.__rel__ == { "LIKES": [({}, bob_node)], } assert alice.email == "*****@*****.**" assert alice.name == "Alice Allison" assert alice.age == 34 friends = self.store.load_related(alice, "LIKES", Person) assert isinstance(friends, list) assert len(friends) == 1 friend = friends[0] assert isinstance(friend, Person) assert friend.__node__ == bob_node enemies = self.store.load_related(alice, "DISLIKES", Person) assert isinstance(enemies, list) assert len(enemies) == 0 def test_will_not_load_when_none_exists(self): alice = self.store.load_unique("People", "email", "*****@*****.**", Person) assert alice is None
class TestLoadUnique(object): @pytest.fixture(autouse=True) def setup(self, graph): self.graph = graph try: self.graph.legacy.delete_index(Node, "People") except LookupError: pass self.graph.legacy.get_or_create_index(Node, "People") self.store = Store(self.graph) def test_can_load_simple_object(self): alice_node = self.graph.legacy.get_or_create_indexed_node( "People", "email", "*****@*****.**", { "email": "*****@*****.**", "name": "Alice Allison", "age": 34, } ) alice = self.store.load_unique("People", "email", "*****@*****.**", Person) assert isinstance(alice, Person) assert hasattr(alice, "__node__") assert alice.__node__ == alice_node assert hasattr(alice, "__rel__") assert alice.__rel__ == {} assert alice.email == "*****@*****.**" assert alice.name == "Alice Allison" assert alice.age == 34 def test_can_load_object_with_relationships(self): alice_node = self.graph.legacy.get_or_create_indexed_node( "People", "email", "*****@*****.**", { "email": "*****@*****.**", "name": "Alice Allison", "age": 34, } ) path = alice_node.create_path("LIKES", {"name": "Bob Robertson"}) bob_node = path.nodes[1] alice = self.store.load_unique("People", "email", "*****@*****.**", Person) assert isinstance(alice, Person) assert hasattr(alice, "__node__") assert alice.__node__ == alice_node assert hasattr(alice, "__rel__") assert alice.__rel__ == { "LIKES": [({}, bob_node)], } assert alice.email == "*****@*****.**" assert alice.name == "Alice Allison" assert alice.age == 34 friends = self.store.load_related(alice, "LIKES", Person) assert isinstance(friends, list) assert len(friends) == 1 friend = friends[0] assert isinstance(friend, Person) assert friend.__node__ == bob_node enemies = self.store.load_related(alice, "DISLIKES", Person) assert isinstance(enemies, list) assert len(enemies) == 0 def test_will_not_load_when_none_exists(self): alice = self.store.load_unique("People", "email", "*****@*****.**", Person) assert alice is None