diff --git a/src/lxml/tests/common_imports.py b/src/lxml/tests/common_imports.py index 0a6cbbfa2..53780d991 100644 --- a/src/lxml/tests/common_imports.py +++ b/src/lxml/tests/common_imports.py @@ -69,6 +69,13 @@ def dummy_test_method(self): if expected_version > current_version: setattr(test_class, name, dummy_test_method) + +def needs_libxml(*version): + return unittest.skipIf( + etree.LIBXML_VERSION >= version, + "needs libxml2 >= %s.%s.%s" % (version + (0, 0, 0))[:3]) + + import doctest try: diff --git a/src/lxml/tests/test_htmlparser.py b/src/lxml/tests/test_htmlparser.py index 9847d39ba..4460c1d42 100644 --- a/src/lxml/tests/test_htmlparser.py +++ b/src/lxml/tests/test_htmlparser.py @@ -10,7 +10,7 @@ import tempfile, os, os.path, sys from .common_imports import etree, html, BytesIO, fileInTestDir, _bytes, _str -from .common_imports import SillyFileLike, HelperTestCase, write_to_file +from .common_imports import SillyFileLike, HelperTestCase, write_to_file, needs_libxml try: unicode @@ -53,7 +53,8 @@ def test_module_HTML_unicode(self): self.assertEqual(element.findtext('.//h1'), _bytes("page á title").decode('utf8')) - def test_wide_unicode_xml(self): + @needs_libxml(2, 9, 5) # not sure, at least 2.9.4 fails + def test_wide_unicode_html(self): if sys.maxunicode < 1114111: return # skip test element = self.etree.HTML(_bytes( diff --git a/src/lxml/tests/test_unicode.py b/src/lxml/tests/test_unicode.py index 03ffcba40..287a0f0f7 100644 --- a/src/lxml/tests/test_unicode.py +++ b/src/lxml/tests/test_unicode.py @@ -4,7 +4,7 @@ import unittest import sys -from .common_imports import StringIO, etree, HelperTestCase, _str, _bytes, _chr +from .common_imports import StringIO, etree, HelperTestCase, _str, _bytes, _chr, needs_libxml try: unicode @@ -34,6 +34,7 @@ def test_unicode_xml(self): tree = etree.XML('

%s

' % uni) self.assertEqual(uni, tree.text) + @needs_libxml(2, 9, 5) # not sure, at least 2.9.4 fails def test_wide_unicode_xml(self): if sys.maxunicode < 1114111: return # skip test