File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -2565,7 +2565,12 @@ def build(self):
25652565 raise TypeError (f'Expected bytes or str type on metadata_xml, got : { type (self ._xml )} ' )
25662566
25672567 namespaces = self ._config .namespaces
2568- xml = etree .parse (mdf )
2568+
2569+ try :
2570+ xml = etree .parse (mdf )
2571+ except etree .XMLSyntaxError as ex :
2572+ raise PyODataParserError ('Metadata document syntax error' ) from ex
2573+
25692574 edmx = xml .getroot ()
25702575
25712576 try :
Original file line number Diff line number Diff line change @@ -1449,3 +1449,17 @@ def test_struct_type_has_property_yes():
14491449 struct_type ._properties ['proprty' ] = 'ugly test hack'
14501450
14511451 assert struct_type .has_proprty ('proprty' )
1452+
1453+ def test_invalid_xml (xml_builder_factory ):
1454+ """Test for invalid XML"""
1455+ xml_builder = xml_builder_factory ()
1456+ xml_builder .add_schema ('Test' , """
1457+ <EntityType Name="C_AssetTPType" sap:label="Asset" sap:content-version="1">
1458+ <Property Name="IN_AssetIsResearchAndDev" Type="Edm.String" sap:label="R & D Asset" sap:quickinfo="India: R & D Asset"/>
1459+ </EntityType>
1460+ """ )
1461+ xml = xml_builder .serialize ()
1462+
1463+ with pytest .raises (PyODataParserError ) as e_info :
1464+ MetadataBuilder (xml ).build ()
1465+ assert str (e_info .value ) == 'Metadata document syntax error'
You can’t perform that action at this time.
0 commit comments