def test_can_create_relationship(self): alice = Node({"Person"}, {"name": "Alice", "age": 33}) bob = Node({"Person"}, {"name": "Bob", "age": 44}) alice_knows_bob = Relationship(alice, bob, "KNOWS", {"since": 1999}) assert alice_knows_bob.start is alice assert alice_knows_bob.type == "KNOWS" assert alice_knows_bob.end is bob assert set(alice_knows_bob.keys()) == {"since"} assert set(alice_knows_bob.values()) == {1999} assert set(alice_knows_bob.items()) == {("since", 1999)} assert alice_knows_bob.get("since") == 1999 assert repr(alice_knows_bob)
def test_can_hydrate_path(self): alice = Node({"Person"}, {"name": "Alice", "age": 33}) bob = Node({"Person"}, {"name": "Bob", "age": 44}) carol = Node({"Person"}, {"name": "Carol", "age": 55}) alice_knows_bob = Relationship(alice, bob, "KNOWS", {"since": 1999}) carol_dislikes_bob = Relationship(carol, bob, "DISLIKES") path = Path.hydrate([alice, bob, carol], [alice_knows_bob.unbind(), carol_dislikes_bob.unbind()], [1, 1, -2, 2]) assert path.start == alice assert path.end == carol assert path.nodes == (alice, bob, carol) assert path.relationships == (alice_knows_bob, carol_dislikes_bob) assert list(path) == [alice_knows_bob, carol_dislikes_bob] assert repr(path)