2013-08-28 23:13:38 -07:00
|
|
|
import pytest
|
|
|
|
import capnp
|
|
|
|
import os
|
|
|
|
|
|
|
|
this_dir = os.path.dirname(__file__)
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def addressbook():
|
|
|
|
return capnp.load(os.path.join(this_dir, 'addressbook.capnp'))
|
|
|
|
|
2013-08-29 21:03:00 -07:00
|
|
|
@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'))
|
|
|
|
|
2013-08-28 23:13:38 -07:00
|
|
|
def test_basic_load():
|
|
|
|
capnp.load(os.path.join(this_dir, 'addressbook.capnp'))
|
|
|
|
|
|
|
|
def test_constants(addressbook):
|
|
|
|
assert addressbook.qux == 123
|
|
|
|
|
|
|
|
def test_classes(addressbook):
|
|
|
|
assert addressbook.AddressBook
|
|
|
|
assert addressbook.Person
|
2013-08-29 21:03:00 -07:00
|
|
|
|
|
|
|
def test_import(foo, bar):
|
2013-09-01 20:10:57 -07:00
|
|
|
m = capnp._MallocMessageBuilder()
|
|
|
|
foo = m.init_root(foo.Foo)
|
|
|
|
m2 = capnp._MallocMessageBuilder()
|
|
|
|
bar = m2.init_root(bar.Bar)
|
2013-08-29 21:03:00 -07:00
|
|
|
|
|
|
|
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'))
|
|
|
|
|
2013-09-01 20:10:57 -07:00
|
|
|
m = capnp._MallocMessageBuilder()
|
|
|
|
foo = m.init_root(foo.Foo)
|
|
|
|
m2 = capnp._MallocMessageBuilder()
|
|
|
|
bar = m2.init_root(bar.Bar)
|
2013-08-29 21:03:00 -07:00
|
|
|
|
|
|
|
foo.name = 'foo'
|
|
|
|
|
|
|
|
with pytest.raises(ValueError):
|
|
|
|
bar.foo = foo
|
2013-09-01 21:31:39 -07:00
|
|
|
|
|
|
|
def test_add_import_hook():
|
|
|
|
capnp.add_import_hook([this_dir])
|
2013-09-01 22:24:46 -07:00
|
|
|
|
2013-09-01 21:31:39 -07:00
|
|
|
import addressbook
|
|
|
|
addressbook.AddressBook.new_message()
|