Revision c07267bcbf0fbd8dff22d8729e6c8b823bd2435f authored by Luke Bjerring on 17 May 2018, 20:53:16 UTC, committed by Luke Bjerring on 17 May 2018, 20:53:16 UTC
1 parent 7a3894d
test_XMLParser.py
from xml.etree.ElementTree import ParseError
import pytest
from ..XMLParser import XMLParser
@pytest.mark.parametrize("s", [
'<foo> </foo>',
'<!DOCTYPE foo><foo> </foo>',
'<!DOCTYPE foo PUBLIC "fake" "id"><foo> </foo>',
'<!DOCTYPE foo PUBLIC "fake" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><foo> </foo>',
'<!DOCTYPE foo PUBLIC "fake-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><foo> </foo>'
])
def test_undefined_entity(s):
with pytest.raises(ParseError):
p = XMLParser()
p.feed(s)
p.close()
@pytest.mark.parametrize("s", [
'<!DOCTYPE foo PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><foo> </foo>'
])
def test_defined_entity(s):
p = XMLParser()
p.feed(s)
d = p.close()
assert d.tag == u"foo"
assert d.text == u"\u00A0"
def test_pi():
p = XMLParser()
p.feed('<foo><?foo bar?></foo>')
d = p.close()
assert d.tag == u"foo"
assert len(d) == 0
def test_comment():
p = XMLParser()
p.feed('<foo><!-- data --></foo>')
d = p.close()
assert d.tag == u"foo"
assert len(d) == 0
def test_unsupported_encoding():
p = XMLParser()
p.feed(u"<?xml version='1.0' encoding='Shift-JIS'?><foo>\u3044</foo>".encode("shift-jis"))
d = p.close()
assert d.tag == u"foo"
assert d.text == u"\u3044"
Computing file changes ...