pycapnp/test/test_object.py

52 lines
1.4 KiB
Python
Raw Permalink Normal View History

2013-09-18 17:19:57 -07:00
import pytest
import capnp
import os
this_dir = os.path.dirname(__file__)
2013-09-18 17:19:57 -07:00
@pytest.fixture
def addressbook():
return capnp.load(os.path.join(this_dir, "addressbook.capnp"))
2013-09-18 17:19:57 -07:00
def test_object_basic(addressbook):
obj = capnp._MallocMessageBuilder().get_root_as_any()
person = obj.as_struct(addressbook.Person)
person.name = "test"
2013-09-18 17:19:57 -07:00
person.id = 1000
same_person = obj.as_struct(addressbook.Person)
assert same_person.name == "test"
2013-09-18 17:19:57 -07:00
assert same_person.id == 1000
obj_r = obj.as_reader()
same_person = obj_r.as_struct(addressbook.Person)
assert same_person.name == "test"
assert same_person.id == 1000
def test_object_list(addressbook):
obj = capnp._MallocMessageBuilder().get_root_as_any()
listSchema = capnp._ListSchema(addressbook.Person)
people = obj.init_as_list(listSchema, 2)
person = people[0]
person.name = "test"
person.id = 1000
person = people[1]
person.name = "test2"
person.id = 1001
same_person = obj.as_list(listSchema)
assert same_person[0].name == "test"
assert same_person[0].id == 1000
assert same_person[1].name == "test2"
assert same_person[1].id == 1001
obj_r = obj.as_reader()
same_person = obj_r.as_list(listSchema)
assert same_person[0].name == "test"
assert same_person[0].id == 1000
assert same_person[1].name == "test2"
assert same_person[1].id == 1001