def test_size_with_parent_override(): template = XMLTemplateParser(""" <template name="template0"> <layout name="layout0"> <area name="area0" size="16"> <field name="field1_size" size="4"></field> </area> </layout> </template>""").parse() template_provider = TemplateProvider(template) data_provider = DataProvider(io.BytesIO(bytes([0x04, 0x00, 0x00, 0x00]))) template.binding_context = BindingContext(template_provider, data_provider) assert template.size == 16
def test_size_with_resolvable_values(): template = XMLTemplateParser(""" <template name="template0"> <layout name="layout0"> <area name="area0"> <field name="field1_size" size="4"></field> <field name="field1" size="{field1_size, byteorder=little}"></field> </area> </layout> </template>""").parse() template_provider = TemplateProvider(template) data_provider = DataProvider(io.BytesIO(bytes([0x04, 0x00, 0x00, 0x00]))) template.binding_context = BindingContext(template_provider, data_provider) assert template.size == 8