def test_can_push_relationship(graph): local = Rel("KNOWS", since=1999) remote = Rel("KNOWS") a, b, ab = graph.create({}, {}, (0, remote, 1)) assert ab.properties == {} local.bind(ab.uri) ab.push() local.pull() assert local.properties == remote.properties
def test_can_push_rel(graph): local = Rel("KNOWS", since=1999) remote = Rel("KNOWS") graph.create({}, {}, (0, remote, 1)) assert remote.properties == {} local.bind(remote.uri) local.push() remote.pull() assert local.properties == remote.properties
def test_can_bind_rel_to_resource(): uri = "http://localhost:7474/db/relationship/1" rel = Rel() rel.bind(uri) assert rel.bound assert isinstance(rel.resource, Resource) assert rel.resource.uri == uri rel.unbind() assert not rel.bound with pytest.raises(BindError): r = rel.resource
def test_can_create_two_nodes_and_a_relationship_with_properties(graph): alice = Node(name="Alice") bob = Node(name="Bob") alice_knows_bob = Relationship(alice, Rel("KNOWS", since=1999), bob) statement = CreateStatement(graph) statement.create(alice) statement.create(bob) statement.create(alice_knows_bob) created = statement.execute() assert created == (alice, bob, alice_knows_bob) assert alice.bound assert bob.bound assert alice_knows_bob.bound assert alice_knows_bob.start_node is alice assert alice_knows_bob.end_node is bob
def test_can_bind_rel_to_resource(): uri = "http://localhost:7474/db/relationship/1" rel = Rel() rel.bind(uri) assert rel.bound assert isinstance(rel.resource, Resource) assert rel.resource.uri == uri rel.unbind() assert not rel.bound with pytest.raises(BindError): _ = rel.resource
def test_can_write_simple_rel(): r = Representation() r.write(Rel("KNOWS")) written = repr(r) assert written == "-[:KNOWS]->"