>>> py3-beautifulsoup4: Building community/py3-beautifulsoup4 4.12.3-r2 (using abuild 3.13.0-r5) started Wed, 04 Sep 2024 12:18:21 +0000 >>> py3-beautifulsoup4: Checking sanity of /home/buildozer/aports/community/py3-beautifulsoup4/APKBUILD... >>> py3-beautifulsoup4: Analyzing dependencies... >>> py3-beautifulsoup4: Installing for build: build-base python3 py3-soupsieve py3-gpep517 py3-hatchling py3-pytest (1/38) Installing libbz2 (1.0.8-r6) (2/38) Installing libffi (3.4.6-r0) (3/38) Installing gdbm (1.24-r0) (4/38) Installing xz-libs (5.6.2-r0) (5/38) Installing mpdecimal (4.0.0-r0) (6/38) Installing libpanelw (6.5_p20240601-r0) (7/38) Installing sqlite-libs (3.46.1-r0) (8/38) Installing python3 (3.12.5-r1) (9/38) Installing python3-pycache-pyc0 (3.12.5-r1) (10/38) Installing pyc (3.12.5-r1) (11/38) Installing python3-pyc (3.12.5-r1) (12/38) Installing py3-soupsieve (2.6-r0) (13/38) Installing py3-soupsieve-pyc (2.6-r0) (14/38) Installing py3-installer (0.7.0-r2) (15/38) Installing py3-installer-pyc (0.7.0-r2) (16/38) Installing py3-gpep517 (16-r0) (17/38) Installing py3-gpep517-pyc (16-r0) (18/38) Installing py3-editables (0.5-r2) (19/38) Installing py3-editables-pyc (0.5-r2) (20/38) Installing py3-parsing (3.1.2-r1) (21/38) Installing py3-parsing-pyc (3.1.2-r1) (22/38) Installing py3-packaging (24.1-r0) (23/38) Installing py3-packaging-pyc (24.1-r0) (24/38) Installing py3-pathspec (0.12.1-r2) (25/38) Installing py3-pathspec-pyc (0.12.1-r2) (26/38) Installing py3-pluggy (1.5.0-r0) (27/38) Installing py3-pluggy-pyc (1.5.0-r0) (28/38) Installing py3-trove-classifiers (2024.7.2-r0) (29/38) Installing py3-trove-classifiers-pyc (2024.7.2-r0) (30/38) Installing py3-hatchling (1.25.0-r0) (31/38) Installing py3-hatchling-pyc (1.25.0-r0) (32/38) Installing py3-iniconfig (2.0.0-r1) (33/38) Installing py3-iniconfig-pyc (2.0.0-r1) (34/38) Installing py3-py (1.11.0-r3) (35/38) Installing py3-py-pyc (1.11.0-r3) (36/38) Installing py3-pytest (8.3.2-r0) (37/38) Installing py3-pytest-pyc (8.3.2-r0) (38/38) Installing .makedepends-py3-beautifulsoup4 (20240904.121836) Executing busybox-1.36.1-r31.trigger OK: 299 MiB in 139 packages >>> py3-beautifulsoup4: Cleaning up srcdir >>> py3-beautifulsoup4: Cleaning up pkgdir >>> py3-beautifulsoup4: Cleaning up tmpdir >>> py3-beautifulsoup4: Fetching https://distfiles.alpinelinux.org/distfiles/edge/beautifulsoup4-4.12.3.tar.gz >>> py3-beautifulsoup4: Fetching https://distfiles.alpinelinux.org/distfiles/edge/beautifulsoup4-4.12.3.tar.gz >>> py3-beautifulsoup4: Checking sha512sums... beautifulsoup4-4.12.3.tar.gz: OK >>> py3-beautifulsoup4: Unpacking /var/cache/distfiles/beautifulsoup4-4.12.3.tar.gz... 2024-09-04 12:18:36,898 gpep517 INFO Building wheel via backend hatchling.build 2024-09-04 12:18:37,036 gpep517 INFO The backend produced .dist/beautifulsoup4-4.12.3-py3-none-any.whl beautifulsoup4-4.12.3-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.5, pytest-8.3.2, pluggy-1.5.0 rootdir: /home/buildozer/aports/community/py3-beautifulsoup4/src/beautifulsoup4-4.12.3 configfile: pyproject.toml collected 664 items bs4/tests/test_builder.py ..... bs4/tests/test_builder_registry.py ........... bs4/tests/test_css.py ................................F........................... bs4/tests/test_dammit.py .................................. bs4/tests/test_element.py ..... bs4/tests/test_formatter.py .............. bs4/tests/test_fuzz.py ssssssssssssssssss bs4/tests/test_html5lib.py sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss bs4/tests/test_htmlparser.py ........................................................................... bs4/tests/test_lxml.py sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss bs4/tests/test_navigablestring.py ........ bs4/tests/test_pageelement.py .................................... bs4/tests/test_soup.py ................................................s......... bs4/tests/test_tag.py ........................ bs4/tests/test_tree.py .................................................................................................................................... =================================== FAILURES =================================== ________________ TestCSSSelectors.test_unsupported_pseudoclass _________________ self = def test_unsupported_pseudoclass(self): with pytest.raises(NotImplementedError): > self.soup.select("a:no-such-pseudoclass") bs4/tests/test_css.py:336: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ bs4/element.py:2116: in select return self.css.select(selector, namespaces, limit, **kwargs) bs4/css.py:162: in select self.api.select( /usr/lib/python3.12/site-packages/soupsieve/__init__.py:147: in select return compile(select, namespaces, flags, **kwargs).select(tag, limit) /usr/lib/python3.12/site-packages/soupsieve/__init__.py:65: in compile return cp._cached_css_compile( /usr/lib/python3.12/site-packages/soupsieve/css_parser.py:210: in _cached_css_compile ).process_selectors(), /usr/lib/python3.12/site-packages/soupsieve/css_parser.py:1138: in process_selectors return self.parse_selectors(self.selector_iter(self.pattern), index, flags) /usr/lib/python3.12/site-packages/soupsieve/css_parser.py:982: in parse_selectors has_selector, is_html = self.parse_pseudo_class(sel, m, has_selector, iselector, is_html) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = sel = _Selector(tag=SelectorTag(name='a', prefix=None), ids=[], classes=[], attributes=[], nth=[], selectors=[], relations=[], rel_type=None, contains=[], lang=[], flags=0, no_match=False) m = has_selector = True iselector = is_html = False def parse_pseudo_class( self, sel: _Selector, m: Match[str], has_selector: bool, iselector: Iterator[tuple[str, Match[str]]], is_html: bool ) -> tuple[bool, bool]: """Parse pseudo class.""" complex_pseudo = False pseudo = util.lower(css_unescape(m.group('name'))) if m.group('open'): complex_pseudo = True if complex_pseudo and pseudo in PSEUDO_COMPLEX: has_selector = self.parse_pseudo_open(sel, pseudo, has_selector, iselector, m.end(0)) elif not complex_pseudo and pseudo in PSEUDO_SIMPLE: if pseudo == ':root': sel.flags |= ct.SEL_ROOT elif pseudo == ':defined': sel.flags |= ct.SEL_DEFINED is_html = True elif pseudo == ':scope': sel.flags |= ct.SEL_SCOPE elif pseudo == ':empty': sel.flags |= ct.SEL_EMPTY elif pseudo in (':link', ':any-link'): sel.selectors.append(CSS_LINK) elif pseudo == ':checked': sel.selectors.append(CSS_CHECKED) elif pseudo == ':default': sel.selectors.append(CSS_DEFAULT) elif pseudo == ':indeterminate': sel.selectors.append(CSS_INDETERMINATE) elif pseudo == ":disabled": sel.selectors.append(CSS_DISABLED) elif pseudo == ":enabled": sel.selectors.append(CSS_ENABLED) elif pseudo == ":required": sel.selectors.append(CSS_REQUIRED) elif pseudo == ":optional": sel.selectors.append(CSS_OPTIONAL) elif pseudo == ":read-only": sel.selectors.append(CSS_READ_ONLY) elif pseudo == ":read-write": sel.selectors.append(CSS_READ_WRITE) elif pseudo == ":in-range": sel.selectors.append(CSS_IN_RANGE) elif pseudo == ":out-of-range": sel.selectors.append(CSS_OUT_OF_RANGE) elif pseudo == ":placeholder-shown": sel.selectors.append(CSS_PLACEHOLDER_SHOWN) elif pseudo == ':first-child': sel.nth.append(ct.SelectorNth(1, False, 0, False, False, ct.SelectorList())) elif pseudo == ':last-child': sel.nth.append(ct.SelectorNth(1, False, 0, False, True, ct.SelectorList())) elif pseudo == ':first-of-type': sel.nth.append(ct.SelectorNth(1, False, 0, True, False, ct.SelectorList())) elif pseudo == ':last-of-type': sel.nth.append(ct.SelectorNth(1, False, 0, True, True, ct.SelectorList())) elif pseudo == ':only-child': sel.nth.extend( [ ct.SelectorNth(1, False, 0, False, False, ct.SelectorList()), ct.SelectorNth(1, False, 0, False, True, ct.SelectorList()) ] ) elif pseudo == ':only-of-type': sel.nth.extend( [ ct.SelectorNth(1, False, 0, True, False, ct.SelectorList()), ct.SelectorNth(1, False, 0, True, True, ct.SelectorList()) ] ) has_selector = True elif complex_pseudo and pseudo in PSEUDO_COMPLEX_NO_MATCH: self.parse_selectors(iselector, m.end(0), FLG_PSEUDO | FLG_OPEN) sel.no_match = True has_selector = True elif not complex_pseudo and pseudo in PSEUDO_SIMPLE_NO_MATCH: sel.no_match = True has_selector = True elif pseudo in PSEUDO_SUPPORTED: raise SelectorSyntaxError( f"Invalid syntax for pseudo class '{pseudo}'", self.pattern, m.start(0) ) else: > raise SelectorSyntaxError( f"'{pseudo}' was detected as a pseudo-class and is either unsupported or invalid. " "If the syntax was not intended to be recognized as a pseudo-class, please escape the colon.", self.pattern, m.start(0) ) E soupsieve.util.SelectorSyntaxError: ':no-such-pseudoclass' was detected as a pseudo-class and is either unsupported or invalid. If the syntax was not intended to be recognized as a pseudo-class, please escape the colon. E line 1: E a:no-such-pseudoclass E ^ /usr/lib/python3.12/site-packages/soupsieve/css_parser.py:658: SelectorSyntaxError =========================== short test summary info ============================ FAILED bs4/tests/test_css.py::TestCSSSelectors::test_unsupported_pseudoclass ================== 1 failed, 460 passed, 203 skipped in 2.33s ================== >>> ERROR: py3-beautifulsoup4: check failed >>> py3-beautifulsoup4: Uninstalling dependencies... (1/38) Purging .makedepends-py3-beautifulsoup4 (20240904.121836) (2/38) Purging py3-soupsieve-pyc (2.6-r0) (3/38) Purging py3-soupsieve (2.6-r0) (4/38) Purging py3-gpep517-pyc (16-r0) (5/38) Purging py3-gpep517 (16-r0) (6/38) Purging py3-installer-pyc (0.7.0-r2) (7/38) Purging py3-installer (0.7.0-r2) (8/38) Purging py3-hatchling-pyc (1.25.0-r0) (9/38) Purging py3-hatchling (1.25.0-r0) (10/38) Purging py3-editables-pyc (0.5-r2) (11/38) Purging py3-editables (0.5-r2) (12/38) Purging py3-pathspec-pyc (0.12.1-r2) (13/38) Purging py3-pathspec (0.12.1-r2) (14/38) Purging py3-trove-classifiers-pyc (2024.7.2-r0) (15/38) Purging py3-trove-classifiers (2024.7.2-r0) (16/38) Purging py3-pytest-pyc (8.3.2-r0) (17/38) Purging py3-pytest (8.3.2-r0) (18/38) Purging py3-iniconfig-pyc (2.0.0-r1) (19/38) Purging py3-iniconfig (2.0.0-r1) (20/38) Purging py3-packaging-pyc (24.1-r0) (21/38) Purging py3-packaging (24.1-r0) (22/38) Purging py3-parsing-pyc (3.1.2-r1) (23/38) Purging py3-parsing (3.1.2-r1) (24/38) Purging py3-pluggy-pyc (1.5.0-r0) (25/38) Purging py3-pluggy (1.5.0-r0) (26/38) Purging py3-py-pyc (1.11.0-r3) (27/38) Purging py3-py (1.11.0-r3) (28/38) Purging python3-pyc (3.12.5-r1) (29/38) Purging python3-pycache-pyc0 (3.12.5-r1) (30/38) Purging pyc (3.12.5-r1) (31/38) Purging python3 (3.12.5-r1) (32/38) Purging gdbm (1.24-r0) (33/38) Purging libbz2 (1.0.8-r6) (34/38) Purging libffi (3.4.6-r0) (35/38) Purging libpanelw (6.5_p20240601-r0) (36/38) Purging mpdecimal (4.0.0-r0) (37/38) Purging sqlite-libs (3.46.1-r0) (38/38) Purging xz-libs (5.6.2-r0) Executing busybox-1.36.1-r31.trigger OK: 250 MiB in 101 packages