mirror of
https://github.com/capnproto/pycapnp.git
synced 2025-03-04 08:24:43 +01:00

- Fixing flake8 configuration to agree with black - Adding black validation check to github actions
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
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"))
|
|
|
|
|
|
@pytest.fixture
|
|
def annotations():
|
|
return capnp.load(os.path.join(this_dir, "annotations.capnp"))
|
|
|
|
|
|
def test_basic_schema(addressbook):
|
|
assert addressbook.Person.schema.fieldnames[0] == "id"
|
|
|
|
|
|
def test_list_schema(addressbook):
|
|
peopleField = addressbook.AddressBook.schema.fields["people"]
|
|
personType = peopleField.schema.elementType
|
|
|
|
assert personType.node.id == addressbook.Person.schema.node.id
|
|
|
|
personListSchema = capnp._ListSchema(addressbook.Person)
|
|
|
|
assert personListSchema.elementType.node.id == addressbook.Person.schema.node.id
|
|
|
|
|
|
def test_annotations(annotations):
|
|
assert annotations.schema.node.annotations[0].value.text == "TestFile"
|
|
|
|
annotation = annotations.TestAnnotationOne.schema.node.annotations[0]
|
|
assert annotation.value.text == "Test"
|
|
|
|
annotation = annotations.TestAnnotationTwo.schema.node.annotations[0]
|
|
assert annotation.value.struct.as_struct(annotations.AnnotationStruct).test == 100
|
|
|
|
annotation = annotations.TestAnnotationThree.schema.node.annotations[0]
|
|
annotation_list = annotation.value.list.as_list(
|
|
capnp._ListSchema(annotations.AnnotationStruct)
|
|
)
|
|
assert annotation_list[0].test == 100
|
|
assert annotation_list[1].test == 101
|
|
|
|
annotation = annotations.TestAnnotationFour.schema.node.annotations[0]
|
|
annotation_list = annotation.value.list.as_list(
|
|
capnp._ListSchema(capnp.types.UInt16)
|
|
)
|
|
assert annotation_list[0] == 200
|
|
assert annotation_list[1] == 201
|