From 204ab15119cb1f801c59d3a682f67e0e2c527d67 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 15 Apr 2019 19:57:59 +0530 Subject: [PATCH] py3: port parser tests --- .../ebooks/oeb/polish/tests/parsing.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/calibre/ebooks/oeb/polish/tests/parsing.py b/src/calibre/ebooks/oeb/polish/tests/parsing.py index c60bfa1f42..428dc12b8d 100644 --- a/src/calibre/ebooks/oeb/polish/tests/parsing.py +++ b/src/calibre/ebooks/oeb/polish/tests/parsing.py @@ -29,7 +29,7 @@ def nonvoid_cdata_elements(test, parse_function): root = parse_function(markup.format(x)) test.assertEqual( len(XPath('//h:body[@id="test"]')(root)), 1, - 'Incorrect parsing for <%s/>, parsed markup:\n' % x + etree.tostring(root)) + 'Incorrect parsing for <%s/>, parsed markup:\n' % x + etree.tostring(root, encoding='unicode')) def namespaces(test, parse_function): @@ -44,7 +44,7 @@ def namespaces(test, parse_function): root = parse_function(markup) ae( len(XPath('//h:body[@id="test"]')(root)), 1, - 'Incorrect parsing, parsed markup:\n' + etree.tostring(root)) + 'Incorrect parsing, parsed markup:\n' + etree.tostring(root, encoding='unicode')) match_and_prefix(root, '//h:body[@id="test"]', None) markup = ''' @@ -52,7 +52,7 @@ def namespaces(test, parse_function): '''.format(xhtml=XHTML_NS, svg=SVG_NS, xlink=XLINK_NS) root = parse_function(markup) - err = 'Incorrect parsing, parsed markup:\n' + etree.tostring(root) + err = 'Incorrect parsing, parsed markup:\n' + etree.tostring(root, encoding='unicode') match_and_prefix(root, '//h:body[@id="test"]', None, err) match_and_prefix(root, '//svg:svg', 'svg', err) match_and_prefix(root, '//svg:image[@xl:href]', 'svg', err) @@ -62,14 +62,14 @@ def namespaces(test, parse_function): '''.format(xhtml=XHTML_NS, svg=SVG_NS, xlink=XLINK_NS) root = parse_function(markup) - err = 'Incorrect parsing, parsed markup:\n' + etree.tostring(root) + err = 'Incorrect parsing, parsed markup:\n' + etree.tostring(root, encoding='unicode') match_and_prefix(root, '//h:body[@id="test"]', None, err) match_and_prefix(root, '//svg:svg', None, err) match_and_prefix(root, '//svg:image[@xl:href]', None, err) markup = '' root = parse_function(markup) - err = 'Namespaces not created, parsed markup:\n' + etree.tostring(root) + err = 'Namespaces not created, parsed markup:\n' + etree.tostring(root, encoding='unicode') match_and_prefix(root, '//svg:svg', None, err) match_and_prefix(root, '//svg:image[@xl:href]', None, err) if parse_function is parse: @@ -77,7 +77,7 @@ def namespaces(test, parse_function): ae(image.nsmap, {'xlink':XLINK_NS, None:SVG_NS}) root = parse_function('

') - err = 'Multiple HTML tags not handled, parsed markup:\n' + etree.tostring(root) + err = 'Multiple HTML tags not handled, parsed markup:\n' + etree.tostring(root, encoding='unicode') match_and_prefix(root, '//h:html', None, err) match_and_prefix(root, '//h:html[@lang]', None, err) match_and_prefix(root, '//h:html[@id]', None, err) @@ -85,12 +85,12 @@ def namespaces(test, parse_function): # if parse_function is not html5_parse: # markup = ''.format(html=XHTML_NS) # root = parse_function(markup) - # err = 'HTML namespace prefixed, parsed markup:\n' + etree.tostring(root) + # err = 'HTML namespace prefixed, parsed markup:\n' + etree.tostring(root, encoding='unicode') # match_and_prefix(root, '//h:html', None, err) markup = '' root = parse_function(markup) - err = 'Arbitrary namespaces not preserved, parsed markup:\n' + etree.tostring(root) + err = 'Arbitrary namespaces not preserved, parsed markup:\n' + etree.tostring(root, encoding='unicode') def xpath(expr): return etree.XPath(expr, namespaces={'ns1':'NS', 'ns2':'NS2'})(root) @@ -105,7 +105,7 @@ def namespaces(test, parse_function): markup = '

' root = parse_function(markup) - err = 'xml:lang not converted to lang, parsed markup:\n' + etree.tostring(root) + err = 'xml:lang not converted to lang, parsed markup:\n' + etree.tostring(root, encoding='unicode') ae(len(root.xpath('//*[@lang="en"]')), 2, err) ae(len(root.xpath('//*[@lang="de"]')), 1, err) ae(len(root.xpath('//*[@lang="es"]')), 1, err) @@ -115,7 +115,7 @@ def namespaces(test, parse_function): def space_characters(test, parse_function): markup = '

\u000cX

' root = parse_function(markup) - err = 'form feed character not converted, parsed markup:\n' + etree.tostring(root) + err = 'form feed character not converted, parsed markup:\n' + etree.tostring(root, encoding='unicode') test.assertNotIn('\u000c', root.xpath('//*[local-name()="p"]')[0].text, err) markup = '

a\u000b\u000c

' root = parse_function(markup) # Should strip non XML safe control code \u000b @@ -126,21 +126,21 @@ def space_characters(test, parse_function): def case_insensitive_element_names(test, parse_function): markup = '

' root = parse_function(markup) - err = 'case sensitive parsing, parsed markup:\n' + etree.tostring(root) + err = 'case sensitive parsing, parsed markup:\n' + etree.tostring(root, encoding='unicode') test.assertEqual(len(XPath('//h:p')(root)), 1, err) def entities(test, parse_function): markup = '

 '

' root = parse_function(markup) - err = 'Entities not handled, parsed markup:\n' + etree.tostring(root) + err = 'Entities not handled, parsed markup:\n' + etree.tostring(root, encoding='unicode') test.assertEqual('\xa0\'', root.xpath('//*[local-name()="p"]')[0].text, err) def multiple_html_and_body(test, parse_function): markup = '

' root = parse_function(markup) - err = 'multiple html and body not handled, parsed markup:\n' + etree.tostring(root) + err = 'multiple html and body not handled, parsed markup:\n' + etree.tostring(root, encoding='unicode') test.assertEqual(len(XPath('//h:html')(root)), 1, err) test.assertEqual(len(XPath('//h:body')(root)), 1, err) test.assertEqual(len(XPath('//h:html[@id and @lang]')(root)), 1, err) @@ -150,7 +150,7 @@ def multiple_html_and_body(test, parse_function): def attribute_replacement(test, parse_function): markup = '' % SVG_NS root = parse_function(markup) - err = 'SVG attributes not normalized, parsed markup:\n' + etree.tostring(root) + err = 'SVG attributes not normalized, parsed markup:\n' + etree.tostring(root, encoding='unicode') test.assertEqual(len(XPath('//svg:svg[@viewBox]')(root)), 2, err)