From 4fd91c627e9742165e0a359472c990882c1208ca Mon Sep 17 00:00:00 2001 From: zhuofeng Date: Fri, 24 May 2024 10:37:07 +0800 Subject: [PATCH] Fix test_elementtree with Expat-2.6.0 (cherry picked from commit 153414a339e2d4a9c2ac53d2dae1f5f65aed7aba) --- Fix-test_elementtree-with-Expat-2.6.0.patch | 92 +++++++++++++++++++++ python-lxml.spec | 6 +- 2 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 Fix-test_elementtree-with-Expat-2.6.0.patch diff --git a/Fix-test_elementtree-with-Expat-2.6.0.patch b/Fix-test_elementtree-with-Expat-2.6.0.patch new file mode 100644 index 0000000..eb4be20 --- /dev/null +++ b/Fix-test_elementtree-with-Expat-2.6.0.patch @@ -0,0 +1,92 @@ +From e3012a702dea2b03830fe00a5e8f7a429bbc3f42 Mon Sep 17 00:00:00 2001 +From: Serhiy Storchaka +Date: Mon, 22 Apr 2024 16:52:26 +0800 +Subject: [PATCH] Fix test_elementtree with Expat 2.6.0 + +--- + src/lxml/tests/test_elementtree.py | 62 +++++++++++++++++++----------- + 1 file changed, 39 insertions(+), 23 deletions(-) + +diff --git a/src/lxml/tests/test_elementtree.py b/src/lxml/tests/test_elementtree.py +index 8ccf444..ef923c5 100644 +--- a/src/lxml/tests/test_elementtree.py ++++ b/src/lxml/tests/test_elementtree.py +@@ -10,6 +10,7 @@ import copy + import io + import operator + import os ++import pyexpat + import re + import sys + import textwrap +@@ -4383,29 +4384,44 @@ class _XMLPullParserTest(unittest.TestCase): + self.assertEqual([(action, elem.tag) for action, elem in events], + expected) + +- def test_simple_xml(self): +- for chunk_size in (None, 1, 5): +- #with self.subTest(chunk_size=chunk_size): +- parser = self.etree.XMLPullParser() +- self.assert_event_tags(parser, []) +- self._feed(parser, "\n", chunk_size) +- self.assert_event_tags(parser, []) +- self._feed(parser, +- "\n text\n", chunk_size) +- self.assert_event_tags(parser, [('end', 'element')]) +- self._feed(parser, "texttail\n", chunk_size) +- self._feed(parser, "\n", chunk_size) +- self.assert_event_tags(parser, [ +- ('end', 'element'), +- ('end', 'empty-element'), +- ]) +- self._feed(parser, "\n", chunk_size) +- self.assert_event_tags(parser, [('end', 'root')]) +- root = self._close_and_return_root(parser) +- self.assertEqual(root.tag, 'root') ++ def test_simple_xml(self, chunk_size=None): ++ parser = self.etree.XMLPullParser() ++ self.assert_event_tags(parser, []) ++ self._feed(parser, "\n", chunk_size) ++ self.assert_event_tags(parser, []) ++ self._feed(parser, ++ "\n text\n", chunk_size) ++ self.assert_event_tags(parser, [('end', 'element')]) ++ self._feed(parser, "texttail\n", chunk_size) ++ self._feed(parser, "\n", chunk_size) ++ self.assert_event_tags(parser, [ ++ ('end', 'element'), ++ ('end', 'empty-element'), ++ ]) ++ self._feed(parser, "\n", chunk_size) ++ self.assert_event_tags(parser, [('end', 'root')]) ++ root = self._close_and_return_root(parser) ++ self.assertEqual(root.tag, 'root') ++ ++ def test_simple_xml_chunk_1(self): ++ if self.etree is not etree and pyexpat.version_info >= (2, 6, 0): ++ raise unittest.SkipTest( ++ "Feeding the parser by too small chunks defers parsing" ++ ) ++ self.test_simple_xml(chunk_size=1) ++ ++ def test_simple_xml_chunk_5(self): ++ if self.etree is not etree and pyexpat.version_info >= (2, 6, 0): ++ raise unittest.SkipTest( ++ "Feeding the parser by too small chunks defers parsing" ++ ) ++ self.test_simple_xml(chunk_size=5) ++ ++ def test_simple_xml_chunk_22(self): ++ self.test_simple_xml(chunk_size=22) + + def test_feed_while_iterating(self): + parser = self.etree.XMLPullParser() +-- +2.43.0 + diff --git a/python-lxml.spec b/python-lxml.spec index b64153c..823d95d 100644 --- a/python-lxml.spec +++ b/python-lxml.spec @@ -7,7 +7,7 @@ The latest release works with all CPython versions from 2.7 to 3.7. Name: python-%{modname} Version: 4.7.1 -Release: 5 +Release: 6 Summary: XML processing library combining libxml2/libxslt with the ElementTree API License: BSD URL: https://files.pythonhosted.org @@ -15,6 +15,7 @@ Source0: https://files.pythonhosted.org/packages/source/l/lxml/lxml-%{ver Patch6000: backport-CVE-2022-2309.patch Patch6001: backport-Work-around-libxml2-bug-in-affected-versions.patch +Patch6002: Fix-test_elementtree-with-Expat-2.6.0.patch BuildRequires: gcc libxml2-devel libxslt-devel @@ -55,6 +56,9 @@ make test3 %doc README.rst src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt %changelog +* Fri May 24 2024 zhuofeng - 4.7.1-6 +- Fix test_elementtree with Expat-2.6.0 + * Wed Nov 16 2022 zhuofeng - 4.7.1-5 - change the Source0 -- Gitee