Add initial tests
This commit is contained in:
34
test/addressbook.capnp
Normal file
34
test/addressbook.capnp
Normal file
@@ -0,0 +1,34 @@
|
||||
@0x934efea7f017fff0;
|
||||
|
||||
const qux :UInt32 = 123;
|
||||
|
||||
struct Person {
|
||||
id @0 :UInt32;
|
||||
name @1 :Text;
|
||||
email @2 :Text;
|
||||
phones @3 :List(PhoneNumber);
|
||||
|
||||
struct PhoneNumber {
|
||||
number @0 :Text;
|
||||
type @1 :Type;
|
||||
|
||||
enum Type {
|
||||
mobile @0;
|
||||
home @1;
|
||||
work @2;
|
||||
}
|
||||
}
|
||||
|
||||
employment :union {
|
||||
unemployed @4 :Void;
|
||||
employer @5 :Text;
|
||||
school @6 :Text;
|
||||
selfEmployed @7 :Void;
|
||||
# We assume that a person is only one of these.
|
||||
}
|
||||
}
|
||||
|
||||
struct AddressBook {
|
||||
people @0 :List(Person);
|
||||
}
|
||||
|
||||
24
test/test_load.py
Normal file
24
test/test_load.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import pytest
|
||||
import capnp
|
||||
from capnp import _capnp
|
||||
import os
|
||||
|
||||
this_dir = os.path.dirname(__file__)
|
||||
|
||||
@pytest.fixture
|
||||
def addressbook():
|
||||
return capnp.load(os.path.join(this_dir, 'addressbook.capnp'))
|
||||
|
||||
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
|
||||
|
||||
def test_schemas(addressbook):
|
||||
assert type(addressbook.AddressBook.schema) is _capnp._StructSchema
|
||||
assert type(addressbook.Person.schema) is _capnp._StructSchema
|
||||
Reference in New Issue
Block a user