Add support for using keyword arguments with a named struct in an RPC

This commit is contained in:
Jason Paryani
2015-06-08 13:39:10 -07:00
parent 7ff67ebf4a
commit 6f1ce8bcc5
3 changed files with 21 additions and 1 deletions

View File

@@ -81,3 +81,11 @@ interface TestTailCaller {
interface TestPassedCap {
foo @0 (cap :TestInterface) -> (x: Text);
}
interface TestStructArg {
bar @0 BarParams -> (c: Text);
}
struct BarParams {
a @0 :Text;
b @1 :Int32;
}

View File

@@ -358,3 +358,15 @@ def test_null_cap():
with pytest.raises(capnp.KjException):
client.foo().wait()
class TestStructArg(capability.TestStructArg.Server):
def bar(self, a, b, **kwargs):
return a + str(b)
def test_struct_args():
client = capability.TestStructArg._new_client(TestStructArg())
assert client.bar(a='test', b=1).wait().c == 'test1'
with pytest.raises(capnp.KjException):
assert client.bar('test', 1).wait().c == 'test1'