diff --git a/test/test_rpc.py b/test/test_rpc.py index 322b6df..6bae298 100644 --- a/test/test_rpc.py +++ b/test/test_rpc.py @@ -57,3 +57,32 @@ def test_simple_rpc_restore_func(): response = remote.wait() assert response.x == '125' + + +def text_restore_func(objectId): + text = objectId.as_text() + assert text == 'testInterface' + return Server(100) + + +def test_ez_rpc(): + read, write = socket.socketpair(socket.AF_UNIX) + + server = capnp.TwoPartyServer(write, text_restore_func) + client = capnp.TwoPartyClient(read) + + cap = client.ez_restore('testInterface') + cap = cap.cast_as(test_capability_capnp.TestInterface) + + remote = cap.foo(i=5) + response = remote.wait() + + assert response.x == '125' + + cap = client.restore(test_capability_capnp.TestSturdyRefObjectId.new_message()) + cap = cap.cast_as(test_capability_capnp.TestInterface) + + remote = cap.foo(i=5) + + with pytest.raises(capnp.KjException): + response = remote.wait()