def test_map(self, mock_build_class, mock_flatten): element = AnyElement(qname="{xsdata}root") root_class = ClassFactory.create() flat_classes = ClassFactory.list(5) iter_flat_classes = iter(flat_classes) mock_build_class.return_value = root_class mock_flatten.return_value = iter_flat_classes actual = ElementMapper.map(element) self.assertEqual(flat_classes, actual) mock_build_class.assert_called_once_with(element, "xsdata") mock_flatten.assert_called_once_with(root_class, "root")
def process_xml_documents(self, uris: List[str]): """Process a list of xml resources.""" classes = [] parser = TreeParser() for uri in uris: input_stream = self.load_resource(uri) if input_stream: logger.info("Parsing document %s", os.path.basename(uri)) any_element: AnyElement = parser.from_bytes(input_stream) classes.extend(ElementMapper.map(any_element)) dirname = os.path.dirname(uris[0]) if uris else "" self.class_map[dirname] = ClassUtils.reduce(classes)