Skip to content
Snippets Groups Projects
Commit 55a28540 authored by Jingyun Hua's avatar Jingyun Hua Committed by Celeste
Browse files

community/py3-beautifulsoup4: fix build error

parent 75f2b09a
No related branches found
No related tags found
1 merge request!71358community/py3-beautifulsoup4: fix build error
Pipeline #256635 skipped
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
pkgname=py3-beautifulsoup4 pkgname=py3-beautifulsoup4
_pkgname=beautifulsoup4 _pkgname=beautifulsoup4
pkgver=4.12.3 pkgver=4.12.3
pkgrel=2 pkgrel=3
pkgdesc="A Python HTML/XML parser" pkgdesc="A Python HTML/XML parser"
url="https://www.crummy.com/software/BeautifulSoup/index.html" url="https://www.crummy.com/software/BeautifulSoup/index.html"
arch="noarch" arch="noarch"
...@@ -16,7 +16,8 @@ makedepends=" ...@@ -16,7 +16,8 @@ makedepends="
" "
checkdepends="py3-pytest" checkdepends="py3-pytest"
subpackages="$pkgname-pyc" subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/b/beautifulsoup4/beautifulsoup4-$pkgver.tar.gz" source="https://files.pythonhosted.org/packages/source/b/beautifulsoup4/beautifulsoup4-$pkgver.tar.gz
Changes-to-make-tests-work-whether-tests-are-run-und.patch"
builddir="$srcdir/$_pkgname-$pkgver" builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-beautifulsoup4" # Backwards compatibility replaces="py-beautifulsoup4" # Backwards compatibility
...@@ -40,4 +41,5 @@ package() { ...@@ -40,4 +41,5 @@ package() {
sha512sums=" sha512sums="
b5b6cc9f64a97fa52b9a2ee1265aa215db476e705d3d79e49301de7e8d36c56c96924cb440eec0715f7ec75c5ddf4c1ade9d6cef7cdc9bf9e37125ac6eb50837 beautifulsoup4-4.12.3.tar.gz b5b6cc9f64a97fa52b9a2ee1265aa215db476e705d3d79e49301de7e8d36c56c96924cb440eec0715f7ec75c5ddf4c1ade9d6cef7cdc9bf9e37125ac6eb50837 beautifulsoup4-4.12.3.tar.gz
3c16c547b995e1172c34473907d5f2f400d2828e1486106c13a98bdeb59df4a0004750365da3ffff0bc390e640b7cea7c85945e5872381acd72a6ca141987779 Changes-to-make-tests-work-whether-tests-are-run-und.patch
" "
From 9786a62726de5a8caba10021c4d4a58c8a3e9e3f Mon Sep 17 00:00:00 2001
From: Leonard Richardson <leonardr@segfault.org>
Date: Wed, 21 Aug 2024 20:18:33 -0400
Subject: [PATCH] * Changes to make tests work whether tests are run under
soupsieve 2.6 or an earlier version. Based on a patch by Stefano Rivera.
* Removed the strip_cdata argument to lxml's HTMLParser
constructor, which never did anything and is deprecated as of lxml
5.3.0. Patch by Stefano Rivera. [bug=2076897]
---
CHANGELOG | 9 +++++++++
bs4/builder/_lxml.py | 4 ++--
bs4/tests/test_css.py | 13 +++++++++++--
tox.ini | 3 ++-
4 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 2701446..243caf0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,12 @@
+= Unreleased
+
+* Changes to make tests work whether tests are run under soupsieve 2.6
+ or an earlier version. Based on a patch by Stefano Rivera.
+
+* Removed the strip_cdata argument to lxml's HTMLParser
+ constructor, which never did anything and is deprecated as of lxml
+ 5.3.0. Patch by Stefano Rivera. [bug=2076897]
+
= 4.12.3 (20240117)
* The Beautiful Soup documentation now has a Spanish translation, thanks
diff --git a/bs4/builder/_lxml.py b/bs4/builder/_lxml.py
index 4f7cf74..502a776 100644
--- a/bs4/builder/_lxml.py
+++ b/bs4/builder/_lxml.py
@@ -108,7 +108,7 @@ class LXMLTreeBuilderForXML(TreeBuilder):
if self._default_parser is not None:
return self._default_parser
return etree.XMLParser(
- target=self, strip_cdata=False, recover=True, encoding=encoding)
+ target=self, recover=True, encoding=encoding)
def parser_for(self, encoding):
"""Instantiate an appropriate parser for the given encoding.
@@ -122,7 +122,7 @@ class LXMLTreeBuilderForXML(TreeBuilder):
if isinstance(parser, Callable):
# Instantiate the parser with default arguments
parser = parser(
- target=self, strip_cdata=False, recover=True, encoding=encoding
+ target=self, recover=True, encoding=encoding
)
return parser
diff --git a/bs4/tests/test_css.py b/bs4/tests/test_css.py
index 359dbcd..3c2318b 100644
--- a/bs4/tests/test_css.py
+++ b/bs4/tests/test_css.py
@@ -8,14 +8,23 @@ from bs4 import (
ResultSet,
)
+from packaging.version import Version
+
from . import (
SoupTest,
SOUP_SIEVE_PRESENT,
)
if SOUP_SIEVE_PRESENT:
- from soupsieve import SelectorSyntaxError
+ from soupsieve import __version__, SelectorSyntaxError
+ # Some behavior changes in soupsieve 2.6 that affects one of our
+ # tests. For the test to run under all versions of Python
+ # supported by Beautiful Soup (which includes versions of Python
+ # not supported by soupsieve 2.6) we need to check both behaviors.
+ SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS = SelectorSyntaxError
+ if Version(__version__) < Version("2.6"):
+ SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS = NotImplementedError
@pytest.mark.skipif(not SOUP_SIEVE_PRESENT, reason="Soup Sieve not installed")
class TestCSSSelectors(SoupTest):
@@ -332,7 +341,7 @@ class TestCSSSelectors(SoupTest):
assert "yes" == chosen.string
def test_unsupported_pseudoclass(self):
- with pytest.raises(NotImplementedError):
+ with pytest.raises(SOUPSIEVE_EXCEPTION_ON_UNSUPPORTED_PSEUDOCLASS):
self.soup.select("a:no-such-pseudoclass")
with pytest.raises(SelectorSyntaxError):
diff --git a/tox.ini b/tox.ini
index fc55fca..79f15a5 100644
--- a/tox.ini
+++ b/tox.ini
@@ -10,7 +10,8 @@ wheel_build_env = .pkg
description = run the tests with all dependencies installed
deps = lxml
html5lib
- soupsieve>=1.2
+ packaging
+ soupsieve>=2.6
pytest>=6
commands = pytest {tty:--color=yes} {posargs}
--
2.46.0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment