Change load to use a global SchemaParser. Make structs settable as field
This commit is contained in:
@@ -8,6 +8,14 @@ this_dir = os.path.dirname(__file__)
|
||||
def addressbook():
|
||||
return capnp.load(os.path.join(this_dir, 'addressbook.capnp'))
|
||||
|
||||
@pytest.fixture
|
||||
def foo():
|
||||
return capnp.load(os.path.join(this_dir, 'foo.capnp'))
|
||||
|
||||
@pytest.fixture
|
||||
def bar():
|
||||
return capnp.load(os.path.join(this_dir, 'bar.capnp'))
|
||||
|
||||
def test_basic_load():
|
||||
capnp.load(os.path.join(this_dir, 'addressbook.capnp'))
|
||||
|
||||
@@ -17,3 +25,31 @@ def test_constants(addressbook):
|
||||
def test_classes(addressbook):
|
||||
assert addressbook.AddressBook
|
||||
assert addressbook.Person
|
||||
|
||||
def test_import(foo, bar):
|
||||
m = capnp.MallocMessageBuilder()
|
||||
foo = m.initRoot(foo.Foo)
|
||||
m2 = capnp.MallocMessageBuilder()
|
||||
bar = m2.initRoot(bar.Bar)
|
||||
|
||||
foo.name = 'foo'
|
||||
bar.foo = foo
|
||||
|
||||
assert bar.foo.name == 'foo'
|
||||
|
||||
def test_failed_import():
|
||||
s = capnp.SchemaParser()
|
||||
s2 = capnp.SchemaParser()
|
||||
|
||||
foo = s.load(os.path.join(this_dir, 'foo.capnp'))
|
||||
bar = s2.load(os.path.join(this_dir, 'bar.capnp'))
|
||||
|
||||
m = capnp.MallocMessageBuilder()
|
||||
foo = m.initRoot(foo.Foo)
|
||||
m2 = capnp.MallocMessageBuilder()
|
||||
bar = m2.initRoot(bar.Bar)
|
||||
|
||||
foo.name = 'foo'
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
bar.foo = foo
|
||||
|
||||
Reference in New Issue
Block a user