diff options
author | Leonard Richardson <leonardr@segfault.org> | 2024-08-21 20:18:33 -0400 |
---|---|---|
committer | Leonard Richardson <leonardr@segfault.org> | 2024-08-21 20:18:33 -0400 |
commit | 9786a62726de5a8caba10021c4d4a58c8a3e9e3f (patch) | |
tree | 2ca847f8fc20e7da3e548fc009449a92c6f50068 /bs4/tests/test_css.py | |
parent | 7fb51753743644e23dfb3e7a964d387583dd0bc0 (diff) |
* 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]
Diffstat (limited to 'bs4/tests/test_css.py')
-rw-r--r-- | bs4/tests/test_css.py | 13 |
1 files changed, 11 insertions, 2 deletions
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): |