Skip to content

Commit 21a99b5

Browse files
Matulafilak-sap
authored andcommitted
add test and fix for issue #126
1 parent 5731a4c commit 21a99b5

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

pyodata/v2/model.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff 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:

tests/test_model_v2.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff 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'

0 commit comments

Comments
 (0)