>>> py3-humanfriendly: Building community/py3-humanfriendly 10.0-r5 (using abuild 3.15.0-r0) started Sun, 12 Oct 2025 19:33:14 +0000 >>> py3-humanfriendly: Validating /home/udu/aports/community/py3-humanfriendly/APKBUILD... >>> py3-humanfriendly: Analyzing dependencies... >>> py3-humanfriendly: Installing for build: build-base python3 py3-setuptools bash py3-capturer py3-docutils py3-mock py3-pytest WARNING: opening /home/udu/packages//community: No such file or directory WARNING: opening /home/udu/packages//main: No such file or directory fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz (1/21) Installing py3-parsing (3.2.3-r0) (2/21) Installing py3-parsing-pyc (3.2.3-r0) (3/21) Installing py3-packaging (25.0-r0) (4/21) Installing py3-packaging-pyc (25.0-r0) (5/21) Installing py3-setuptools (80.9.0-r0) (6/21) Installing py3-setuptools-pyc (80.9.0-r0) (7/21) Installing py3-capturer (3.0-r4) (8/21) Installing py3-capturer-pyc (3.0-r4) (9/21) Installing py3-docutils (0.21.2-r0) (10/21) Installing py3-docutils-pyc (0.21.2-r0) (11/21) Installing py3-mock (5.2.0-r0) (12/21) Installing py3-mock-pyc (5.2.0-r0) (13/21) Installing py3-iniconfig (2.1.0-r0) (14/21) Installing py3-iniconfig-pyc (2.1.0-r0) (15/21) Installing py3-pluggy (1.5.0-r0) (16/21) Installing py3-pluggy-pyc (1.5.0-r0) (17/21) Installing py3-py (1.11.0-r4) (18/21) Installing py3-py-pyc (1.11.0-r4) (19/21) Installing py3-pytest (8.3.5-r0) (20/21) Installing py3-pytest-pyc (8.3.5-r0) (21/21) Installing .makedepends-py3-humanfriendly (20251012.193316) Executing busybox-1.37.0-r19.trigger OK: 313 MiB in 110 packages >>> py3-humanfriendly: Cleaning up srcdir >>> py3-humanfriendly: Cleaning up pkgdir >>> py3-humanfriendly: Cleaning up tmpdir >>> py3-humanfriendly: Fetching https://files.pythonhosted.org/packages/source/h/humanfriendly/humanfriendly-10.0.tar.gz >>> py3-humanfriendly: Fetching https://files.pythonhosted.org/packages/source/h/humanfriendly/humanfriendly-10.0.tar.gz >>> py3-humanfriendly: Checking sha512sums... humanfriendly-10.0.tar.gz: OK fix-tests.patch: OK >>> py3-humanfriendly: Unpacking /var/cache/distfiles/humanfriendly-10.0.tar.gz... >>> py3-humanfriendly: fix-tests.patch patching file humanfriendly/tests.py /home/udu/aports/community/py3-humanfriendly/src/humanfriendly-10.0/setup.py:84: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81. from pkg_resources import parse_version /usr/lib/python3.12/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /usr/lib/python3.12/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running build running build_py creating build/lib/humanfriendly copying humanfriendly/text.py -> build/lib/humanfriendly copying humanfriendly/case.py -> build/lib/humanfriendly copying humanfriendly/testing.py -> build/lib/humanfriendly copying humanfriendly/sphinx.py -> build/lib/humanfriendly copying humanfriendly/tests.py -> build/lib/humanfriendly copying humanfriendly/prompts.py -> build/lib/humanfriendly copying humanfriendly/deprecation.py -> build/lib/humanfriendly copying humanfriendly/compat.py -> build/lib/humanfriendly copying humanfriendly/decorators.py -> build/lib/humanfriendly copying humanfriendly/__init__.py -> build/lib/humanfriendly copying humanfriendly/usage.py -> build/lib/humanfriendly copying humanfriendly/cli.py -> build/lib/humanfriendly copying humanfriendly/tables.py -> build/lib/humanfriendly creating build/lib/humanfriendly/terminal copying humanfriendly/terminal/html.py -> build/lib/humanfriendly/terminal copying humanfriendly/terminal/__init__.py -> build/lib/humanfriendly/terminal copying humanfriendly/terminal/spinners.py -> build/lib/humanfriendly/terminal ============================================================================================================================================ test session starts ============================================================================================================================================= platform linux -- Python 3.12.11, pytest-8.3.5, pluggy-1.5.0 rootdir: /home/udu/aports/community/py3-humanfriendly/src/humanfriendly-10.0 collected 69 items / 1 deselected / 68 selected humanfriendly/tests.py ......F.......................F..................................F.. [100%] ================================================================================================================================================== FAILURES ================================================================================================================================================== ________________________________________________________________________________________________________________________________ HumanFriendlyTestCase.test_automatic_spinner ________________________________________________________________________________________________________________________________ self = def test_automatic_spinner(self): """ Test :func:`humanfriendly.AutomaticSpinner`. There's not a lot to test about the :class:`.AutomaticSpinner` class, but by at least running it here we are assured that the code functions on all supported Python versions. :class:`.AutomaticSpinner` is built on top of the :class:`.Spinner` class so at least we also have the tests for the :class:`.Spinner` class to back us up. """ > with AutomaticSpinner(label='test spinner'): humanfriendly/tests.py:810: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ humanfriendly/terminal/spinners.py:288: in __init__ self.shutdown_event = multiprocessing.Event() /usr/lib/python3.12/multiprocessing/context.py:93: in Event return Event(ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:331: in __init__ self._cond = ctx.Condition(ctx.Lock()) /usr/lib/python3.12/multiprocessing/context.py:68: in Lock return Lock(ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:169: in __init__ SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 1 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError -------------------------------------------------------------------------------------------------------------------------------------------- Captured stderr call -------------------------------------------------------------------------------------------------------------------------------------------- ________________________________________________________________________________________________________________________________ HumanFriendlyTestCase.test_generate_warning _________________________________________________________________________________________________________________________________ self = def test_generate_warning(self): """Test the :func:`humanfriendly.terminal.warning()` function.""" from capturer import CaptureOutput text = "Standard error generated by warning()" > with CaptureOutput(merged=False) as capturer: humanfriendly/tests.py:1101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/capturer/__init__.py:276: in __enter__ self.start_capture() /usr/lib/python3.12/site-packages/capturer/__init__.py:312: in start_capture self.output_queue = multiprocessing.Queue() /usr/lib/python3.12/multiprocessing/context.py:103: in Queue return Queue(maxsize, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/queues.py:43: in __init__ self._rlock = ctx.Lock() /usr/lib/python3.12/multiprocessing/context.py:68: in Lock return Lock(ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:169: in __init__ SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 1 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError -------------------------------------------------------------------------------------------------------------------------------------------- Captured stderr call -------------------------------------------------------------------------------------------------------------------------------------------- ______________________________________________________________________________________________________________________________ HumanFriendlyTestCase.test_terminal_capabilities ______________________________________________________________________________________________________________________________ self = def test_terminal_capabilities(self): """Test the functions that check for terminal capabilities.""" from capturer import CaptureOutput for test_stream in connected_to_terminal, terminal_supports_colors: # This test suite should be able to run interactively as well as # non-interactively, so we can't expect or demand that standard streams # will always be connected to a terminal. Fortunately Capturer enables # us to fake it :-). for stream in sys.stdout, sys.stderr: > with CaptureOutput(): humanfriendly/tests.py:1183: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/capturer/__init__.py:276: in __enter__ self.start_capture() /usr/lib/python3.12/site-packages/capturer/__init__.py:305: in start_capture self.output = self.allocate_pty(relay_fd=fd) /usr/lib/python3.12/site-packages/capturer/__init__.py:350: in allocate_pty obj = PseudoTerminal( /usr/lib/python3.12/site-packages/capturer/__init__.py:465: in __init__ self.master_fd, self.slave_fd = pty.openpty() /usr/lib/python3.12/pty.py:34: in openpty master_fd, slave_name = _open_terminal() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def _open_terminal(): """Open pty master and return (master_fd, tty_name).""" for x in 'pqrstuvwxyzPQRST': for y in '0123456789abcdef': pty_name = '/dev/pty' + x + y try: fd = os.open(pty_name, os.O_RDWR) except OSError: continue return (fd, '/dev/tty' + x + y) > raise OSError('out of pty devices') E OSError: out of pty devices /usr/lib/python3.12/pty.py:67: OSError -------------------------------------------------------------------------------------------------------------------------------------------- Captured stderr call -------------------------------------------------------------------------------------------------------------------------------------------- ============================================================================================================================================== warnings summary ============================================================================================================================================== humanfriendly/cli.py:82 /home/udu/aports/community/py3-humanfriendly/src/humanfriendly-10.0/humanfriendly/cli.py:82: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13 import pipes -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========================================================================================================================================== short test summary info =========================================================================================================================================== FAILED humanfriendly/tests.py::HumanFriendlyTestCase::test_automatic_spinner - PermissionError: [Errno 13] Permission denied FAILED humanfriendly/tests.py::HumanFriendlyTestCase::test_generate_warning - PermissionError: [Errno 13] Permission denied FAILED humanfriendly/tests.py::HumanFriendlyTestCase::test_terminal_capabilities - OSError: out of pty devices =========================================================================================================================== 3 failed, 65 passed, 1 deselected, 1 warning in 9.95s ============================================================================================================================ >>> ERROR: py3-humanfriendly: check failed >>> py3-humanfriendly: Uninstalling dependencies... (1/21) Purging .makedepends-py3-humanfriendly (20251012.193316) (2/21) Purging py3-setuptools-pyc (80.9.0-r0) (3/21) Purging py3-setuptools (80.9.0-r0) (4/21) Purging py3-capturer-pyc (3.0-r4) (5/21) Purging py3-capturer (3.0-r4) (6/21) Purging py3-docutils-pyc (0.21.2-r0) (7/21) Purging py3-docutils (0.21.2-r0) (8/21) Purging py3-mock-pyc (5.2.0-r0) (9/21) Purging py3-mock (5.2.0-r0) (10/21) Purging py3-pytest-pyc (8.3.5-r0) (11/21) Purging py3-pytest (8.3.5-r0) (12/21) Purging py3-iniconfig-pyc (2.1.0-r0) (13/21) Purging py3-iniconfig (2.1.0-r0) (14/21) Purging py3-packaging-pyc (25.0-r0) (15/21) Purging py3-packaging (25.0-r0) (16/21) Purging py3-parsing-pyc (3.2.3-r0) (17/21) Purging py3-parsing (3.2.3-r0) (18/21) Purging py3-pluggy-pyc (1.5.0-r0) (19/21) Purging py3-pluggy (1.5.0-r0) (20/21) Purging py3-py-pyc (1.11.0-r4) (21/21) Purging py3-py (1.11.0-r4) Executing busybox-1.37.0-r19.trigger OK: 296 MiB in 89 packages