>>> py3-daphne: Building community/py3-daphne 4.2.1-r0 (using abuild 3.15.0-r0) started Sun, 12 Oct 2025 15:57:46 +0000 >>> py3-daphne: Validating /home/udu/aports/community/py3-daphne/APKBUILD... >>> py3-daphne: Analyzing dependencies... >>> py3-daphne: Installing for build: build-base py3-twisted py3-autobahn py3-asgiref py3-gpep517 py3-setuptools py3-setuptools_scm py3-wheel py3-hypothesis py3-django py3-cryptography py3-pytest py3-pytest-asyncio py3-pytest-runner 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/130) Installing py3-cparser (2.22-r1) (2/130) Installing py3-cparser-pyc (2.22-r1) (3/130) Installing py3-cffi (1.17.1-r1) (4/130) Installing py3-cffi-pyc (1.17.1-r1) (5/130) Installing py3-cryptography-pyc (44.0.3-r0) (6/130) Installing py3-zope-interface (7.2-r0) (7/130) Installing py3-zope-interface-pyc (7.2-r0) (8/130) Installing py3-constantly (23.10.4-r1) (9/130) Installing py3-constantly-pyc (23.10.4-r1) (10/130) Installing py3-incremental (24.7.2-r0) (11/130) Installing py3-incremental-pyc (24.7.2-r0) (12/130) Installing py3-attrs (25.3.0-r0) (13/130) Installing py3-attrs-pyc (25.3.0-r0) (14/130) Installing py3-six (1.17.0-r0) (15/130) Installing py3-six-pyc (1.17.0-r0) (16/130) Installing py3-automat (24.8.1-r0) (17/130) Installing py3-automat-pyc (24.8.1-r0) (18/130) Installing py3-idna (3.10-r0) (19/130) Installing py3-idna-pyc (3.10-r0) (20/130) Installing py3-hyperlink (21.0.0-r5) (21/130) Installing py3-hyperlink-pyc (21.0.0-r5) (22/130) Installing py3-typing-extensions (4.13.2-r0) (23/130) Installing py3-typing-extensions-pyc (4.13.2-r0) (24/130) Installing py3-pyhamcrest (2.1.0-r1) (25/130) Installing py3-pyhamcrest-pyc (2.1.0-r1) (26/130) Installing py3-asn1 (0.6.1-r0) (27/130) Installing py3-asn1-pyc (0.6.1-r0) (28/130) Installing py3-asn1-modules (0.4.1-r0) (29/130) Installing py3-asn1-modules-pyc (0.4.1-r0) (30/130) Installing py3-service_identity (24.2.0-r0) (31/130) Installing py3-service_identity-pyc (24.2.0-r0) (32/130) Installing py3-pyserial (3.5-r7) (33/130) Installing py3-pyserial-pyc (3.5-r7) (34/130) Installing py3-hyperframe (6.1.0-r0) (35/130) Installing py3-hyperframe-pyc (6.1.0-r0) (36/130) Installing py3-hpack (4.1.0-r0) (37/130) Installing py3-hpack-pyc (4.1.0-r0) (38/130) Installing py3-h2 (4.1.0-r3) (39/130) Installing py3-h2-pyc (4.1.0-r3) (40/130) Installing py3-parsing (3.2.3-r0) (41/130) Installing py3-parsing-pyc (3.2.3-r0) (42/130) Installing py3-packaging (25.0-r0) (43/130) Installing py3-packaging-pyc (25.0-r0) (44/130) Installing py3-setuptools (80.9.0-r0) (45/130) Installing py3-setuptools-pyc (80.9.0-r0) (46/130) Installing py3-twisted-pyc (24.11.0-r0) (47/130) Installing py3-cryptography (44.0.3-r0) (48/130) Installing py3-twisted (24.11.0-r0) (49/130) Installing py3-txaio (23.1.1-r2) (50/130) Installing py3-txaio-pyc (23.1.1-r2) (51/130) Installing py3-certifi (2025.4.26-r0) (52/130) Installing py3-certifi-pyc (2025.4.26-r0) (53/130) Installing py3-charset-normalizer (3.4.2-r0) (54/130) Installing py3-charset-normalizer-pyc (3.4.2-r0) (55/130) Installing py3-urllib3 (1.26.20-r0) (56/130) Installing py3-urllib3-pyc (1.26.20-r0) (57/130) Installing py3-requests (2.32.5-r0) (58/130) Installing py3-requests-pyc (2.32.5-r0) (59/130) Installing py3-tz (2025.2-r0) (60/130) Installing py3-tz-pyc (2025.2-r0) (61/130) Installing py3-babel (2.17.0-r0) (62/130) Installing py3-babel-pyc (2.17.0-r0) (63/130) Installing py3-docutils (0.21.2-r0) (64/130) Installing py3-docutils-pyc (0.21.2-r0) (65/130) Installing py3-imagesize (1.4.1-r4) (66/130) Installing py3-imagesize-pyc (1.4.1-r4) (67/130) Installing py3-markupsafe (3.0.2-r0) (68/130) Installing py3-markupsafe-pyc (3.0.2-r0) (69/130) Installing py3-jinja2 (3.1.6-r0) (70/130) Installing py3-jinja2-pyc (3.1.6-r0) (71/130) Installing py3-pygments (2.19.1-r1) (72/130) Installing py3-pygments-pyc (2.19.1-r1) (73/130) Installing py3-snowballstemmer (2.2.0-r5) (74/130) Installing py3-snowballstemmer-pyc (2.2.0-r5) (75/130) Installing py3-alabaster (1.0.0-r0) (76/130) Installing py3-alabaster-pyc (1.0.0-r0) (77/130) Installing py3-roman-numerals (3.1.0-r0) (78/130) Installing py3-roman-numerals-pyc (3.1.0-r0) (79/130) Installing py3-sphinxcontrib-applehelp (1.0.4-r3) (80/130) Installing py3-sphinxcontrib-applehelp-pyc (1.0.4-r3) (81/130) Installing py3-sphinxcontrib-devhelp (1.0.5-r2) (82/130) Installing py3-sphinxcontrib-devhelp-pyc (1.0.5-r2) (83/130) Installing py3-sphinxcontrib-htmlhelp (2.0.1-r3) (84/130) Installing py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3) (85/130) Installing py3-sphinxcontrib-jsmath (1.0.1-r8) (86/130) Installing py3-sphinxcontrib-jsmath-pyc (1.0.1-r8) (87/130) Installing py3-sphinxcontrib-serializinghtml (1.1.9-r2) (88/130) Installing py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2) (89/130) Installing py3-sphinxcontrib-qthelp (2.0.0-r0) (90/130) Installing py3-sphinxcontrib-qthelp-pyc (2.0.0-r0) (91/130) Installing py3-sphinx (8.2.3-r1) (92/130) Installing py3-sphinx-pyc (8.2.3-r1) (93/130) Installing py3-sphinxcontrib-images (0.9.4-r4) (94/130) Installing py3-sphinxcontrib-images-pyc (0.9.4-r4) (95/130) Installing py3-pynacl (1.5.0-r6) (96/130) Installing py3-pynacl-pyc (1.5.0-r6) (97/130) Installing py3-autobahn (23.6.2-r1) (98/130) Installing py3-autobahn-pyc (23.6.2-r1) (99/130) Installing py3-asgiref (3.8.1-r1) (100/130) Installing py3-asgiref-pyc (3.8.1-r1) (101/130) Installing py3-installer (0.7.0-r2) (102/130) Installing py3-installer-pyc (0.7.0-r2) (103/130) Installing py3-gpep517 (19-r0) (104/130) Installing py3-gpep517-pyc (19-r0) (105/130) Installing py3-setuptools_scm (8.3.1-r0) (106/130) Installing py3-setuptools_scm-pyc (8.3.1-r0) (107/130) Installing py3-wheel (0.46.1-r0) (108/130) Installing py3-wheel-pyc (0.46.1-r0) (109/130) Installing py3-sortedcontainers (2.4.0-r5) (110/130) Installing py3-sortedcontainers-pyc (2.4.0-r5) (111/130) Installing py3-hypothesis (6.124.5-r0) (112/130) Installing py3-hypothesis-pyc (6.124.5-r0) (113/130) Installing py3-sqlparse (0.5.1-r0) (114/130) Installing py3-sqlparse-pyc (0.5.1-r0) (115/130) Installing tzdata (2025b-r0) (116/130) Installing py3-django (4.2.25-r0) (117/130) Installing py3-django-pyc (4.2.25-r0) (118/130) Installing py3-iniconfig (2.1.0-r0) (119/130) Installing py3-iniconfig-pyc (2.1.0-r0) (120/130) Installing py3-pluggy (1.5.0-r0) (121/130) Installing py3-pluggy-pyc (1.5.0-r0) (122/130) Installing py3-py (1.11.0-r4) (123/130) Installing py3-py-pyc (1.11.0-r4) (124/130) Installing py3-pytest (8.3.5-r0) (125/130) Installing py3-pytest-pyc (8.3.5-r0) (126/130) Installing py3-pytest-asyncio (0.25.0-r0) (127/130) Installing py3-pytest-asyncio-pyc (0.25.0-r0) (128/130) Installing py3-pytest-runner (6.0.1-r1) (129/130) Installing py3-pytest-runner-pyc (6.0.1-r1) (130/130) Installing .makedepends-py3-daphne (20251012.155747) Executing busybox-1.37.0-r19.trigger OK: 440 MiB in 219 packages >>> py3-daphne: Cleaning up srcdir >>> py3-daphne: Cleaning up pkgdir >>> py3-daphne: Cleaning up tmpdir >>> py3-daphne: Fetching py3-daphne-4.2.1.tar.gz::https://github.com/django/daphne/archive/refs/tags/4.2.1.tar.gz >>> py3-daphne: Fetching py3-daphne-4.2.1.tar.gz::https://github.com/django/daphne/archive/refs/tags/4.2.1.tar.gz >>> py3-daphne: Checking sha512sums... py3-daphne-4.2.1.tar.gz: OK >>> py3-daphne: Unpacking /var/cache/distfiles/py3-daphne-4.2.1.tar.gz... 2025-10-12 15:57:49,713 gpep517 INFO Building wheel via backend setuptools.build_meta /usr/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3.12/site-packages/ptr/__init__.py:13: 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. import pkg_resources /usr/lib/python3.12/site-packages/ptr/__init__.py:81: SetuptoolsDeprecationWarning: The test command is disabled and references to it are deprecated. !! ******************************************************************************** Please remove any references to `setuptools.command.test` in all supported versions of the affected package. This deprecation is overdue, please update your project and remove deprecated calls to avoid build errors in the future. ******************************************************************************** !! class PyTest(orig.test): /usr/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /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 :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 2025-10-12 15:57:49,771 root INFO running bdist_wheel 2025-10-12 15:57:49,785 root INFO running build 2025-10-12 15:57:49,785 root INFO running build_py 2025-10-12 15:57:49,788 root INFO creating build/lib/daphne 2025-10-12 15:57:49,788 root INFO copying daphne/access.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/http_protocol.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/endpoints.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/checks.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/testing.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/ws_protocol.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/utils.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/apps.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/server.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/__init__.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/__main__.py -> build/lib/daphne 2025-10-12 15:57:49,789 root INFO copying daphne/cli.py -> build/lib/daphne 2025-10-12 15:57:49,790 root INFO creating build/lib/daphne/management 2025-10-12 15:57:49,790 root INFO copying daphne/management/__init__.py -> build/lib/daphne/management 2025-10-12 15:57:49,790 root INFO creating build/lib/daphne/management/commands 2025-10-12 15:57:49,790 root INFO copying daphne/management/commands/runserver.py -> build/lib/daphne/management/commands 2025-10-12 15:57:49,790 root INFO copying daphne/management/commands/__init__.py -> build/lib/daphne/management/commands 2025-10-12 15:57:49,790 root INFO creating build/lib/daphne/twisted/plugins 2025-10-12 15:57:49,790 root INFO copying daphne/twisted/plugins/fd_endpoint.py -> build/lib/daphne/twisted/plugins 2025-10-12 15:57:49,790 root INFO creating build/lib/twisted/plugins 2025-10-12 15:57:49,790 root INFO copying daphne/twisted/plugins/fd_endpoint.py -> build/lib/twisted/plugins 2025-10-12 15:57:49,790 root INFO running egg_info 2025-10-12 15:57:49,793 root INFO creating daphne.egg-info 2025-10-12 15:57:49,793 root INFO writing daphne.egg-info/PKG-INFO 2025-10-12 15:57:49,794 root INFO writing dependency_links to daphne.egg-info/dependency_links.txt 2025-10-12 15:57:49,794 root INFO writing entry points to daphne.egg-info/entry_points.txt 2025-10-12 15:57:49,795 root INFO writing requirements to daphne.egg-info/requires.txt 2025-10-12 15:57:49,795 root INFO writing top-level names to daphne.egg-info/top_level.txt 2025-10-12 15:57:49,795 root INFO writing manifest file 'daphne.egg-info/SOURCES.txt' ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any 2025-10-12 15:57:49,806 root INFO reading manifest file 'daphne.egg-info/SOURCES.txt' 2025-10-12 15:57:49,806 root INFO reading manifest template 'MANIFEST.in' 2025-10-12 15:57:49,806 root INFO adding license file 'LICENSE' 2025-10-12 15:57:49,807 root INFO writing manifest file 'daphne.egg-info/SOURCES.txt' 2025-10-12 15:57:49,813 root INFO installing to build/bdist.linux-x86_64/wheel 2025-10-12 15:57:49,813 root INFO running install 2025-10-12 15:57:49,818 root INFO running install_lib 2025-10-12 15:57:49,821 root INFO creating build/bdist.linux-x86_64/wheel 2025-10-12 15:57:49,821 root INFO creating build/bdist.linux-x86_64/wheel/daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/access.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/http_protocol.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/endpoints.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/checks.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/testing.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/ws_protocol.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/utils.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/apps.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO copying build/lib/daphne/server.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,821 root INFO creating build/bdist.linux-x86_64/wheel/daphne/management 2025-10-12 15:57:49,822 root INFO creating build/bdist.linux-x86_64/wheel/daphne/management/commands 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/management/commands/runserver.py -> build/bdist.linux-x86_64/wheel/./daphne/management/commands 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/management/commands/__init__.py -> build/bdist.linux-x86_64/wheel/./daphne/management/commands 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/management/__init__.py -> build/bdist.linux-x86_64/wheel/./daphne/management 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/__init__.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/__main__.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/cli.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 15:57:49,822 root INFO creating build/bdist.linux-x86_64/wheel/daphne/twisted 2025-10-12 15:57:49,822 root INFO creating build/bdist.linux-x86_64/wheel/daphne/twisted/plugins 2025-10-12 15:57:49,822 root INFO copying build/lib/daphne/twisted/plugins/fd_endpoint.py -> build/bdist.linux-x86_64/wheel/./daphne/twisted/plugins 2025-10-12 15:57:49,822 root INFO creating build/bdist.linux-x86_64/wheel/twisted 2025-10-12 15:57:49,822 root INFO creating build/bdist.linux-x86_64/wheel/twisted/plugins 2025-10-12 15:57:49,822 root INFO copying build/lib/twisted/plugins/fd_endpoint.py -> build/bdist.linux-x86_64/wheel/./twisted/plugins 2025-10-12 15:57:49,822 root INFO running install_egg_info 2025-10-12 15:57:49,825 root INFO Copying daphne.egg-info to build/bdist.linux-x86_64/wheel/./daphne-4.2.1-py3.12.egg-info 2025-10-12 15:57:49,826 root INFO running install_scripts 2025-10-12 15:57:49,826 root INFO creating build/bdist.linux-x86_64/wheel/daphne-4.2.1.dist-info/WHEEL 2025-10-12 15:57:49,826 wheel INFO creating '/home/udu/aports/community/py3-daphne/src/daphne-4.2.1/.dist/.tmp-wwedpne1/daphne-4.2.1-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/__init__.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/__main__.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/access.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/apps.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/checks.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/cli.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/endpoints.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/http_protocol.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/server.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/testing.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/utils.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/ws_protocol.py' 2025-10-12 15:57:49,827 wheel INFO adding 'daphne/management/__init__.py' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne/management/commands/__init__.py' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne/management/commands/runserver.py' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne/twisted/plugins/fd_endpoint.py' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne-4.2.1.dist-info/licenses/LICENSE' 2025-10-12 15:57:49,828 wheel INFO adding 'twisted/plugins/fd_endpoint.py' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne-4.2.1.dist-info/METADATA' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne-4.2.1.dist-info/WHEEL' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne-4.2.1.dist-info/entry_points.txt' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne-4.2.1.dist-info/top_level.txt' 2025-10-12 15:57:49,828 wheel INFO adding 'daphne-4.2.1.dist-info/RECORD' 2025-10-12 15:57:49,828 root INFO removing build/bdist.linux-x86_64/wheel 2025-10-12 15:57:49,829 gpep517 INFO The backend produced .dist/daphne-4.2.1-py3-none-any.whl daphne-4.2.1-py3-none-any.whl /usr/lib/python3.12/site-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) ============================= test session starts ============================== platform linux -- Python 3.12.11, pytest-8.3.5, pluggy-1.5.0 -- /home/udu/aports/community/py3-daphne/src/daphne-4.2.1/.testenv/bin/python3 cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/home/udu/aports/community/py3-daphne/src/daphne-4.2.1/.hypothesis/examples')) rootdir: /home/udu/aports/community/py3-daphne/src/daphne-4.2.1 configfile: pyproject.toml plugins: asyncio-0.25.0, hypothesis-6.124.5 asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None collecting ... collected 65 items tests/test_checks.py::test_check_daphne_installed PASSED [ 1%] tests/test_cli.py::TestEndpointDescriptions::testBasics PASSED [ 3%] tests/test_cli.py::TestEndpointDescriptions::testFileDescriptorBinding PASSED [ 4%] tests/test_cli.py::TestEndpointDescriptions::testMultipleEnpoints PASSED [ 6%] tests/test_cli.py::TestEndpointDescriptions::testTcpPortBindings PASSED [ 7%] tests/test_cli.py::TestEndpointDescriptions::testUnixSocketBinding PASSED [ 9%] tests/test_cli.py::TestCLIInterface::testCLIBasics PASSED [ 10%] tests/test_cli.py::TestCLIInterface::testCustomEndpoints PASSED [ 12%] tests/test_cli.py::TestCLIInterface::testMixedCLIEndpointCreation PASSED [ 13%] tests/test_cli.py::TestCLIInterface::testUnixSockets PASSED [ 15%] tests/test_cli.py::TestCLIInterface::test_custom_proxyhost PASSED [ 16%] tests/test_cli.py::TestCLIInterface::test_custom_proxyport PASSED [ 18%] tests/test_cli.py::TestCLIInterface::test_custom_servername PASSED [ 20%] tests/test_cli.py::TestCLIInterface::test_default_proxyheaders PASSED [ 21%] tests/test_cli.py::TestCLIInterface::test_no_servername PASSED [ 23%] tests/test_cli.py::TestASGIThreads::test_default_executor SKIPPED (A...) [ 24%] tests/test_http_protocol.py::TestHTTPProtocol::test_web_request_initialisation PASSED [ 26%] tests/test_http_request.py::TestHTTPRequest::test_bad_requests FAILED [ 27%] tests/test_http_request.py::TestHTTPRequest::test_duplicate_headers FAILED [ 29%] tests/test_http_request.py::TestHTTPRequest::test_get_request FAILED [ 30%] tests/test_http_request.py::TestHTTPRequest::test_headers FAILED [ 32%] tests/test_http_request.py::TestHTTPRequest::test_headers_are_lowercased_and_stripped FAILED [ 33%] tests/test_http_request.py::TestHTTPRequest::test_invalid_header_name FAILED [ 35%] tests/test_http_request.py::TestHTTPRequest::test_kitchen_sink FAILED [ 36%] tests/test_http_request.py::TestHTTPRequest::test_minimal_request FAILED [ 38%] tests/test_http_request.py::TestHTTPRequest::test_post_request FAILED [ 40%] tests/test_http_request.py::TestHTTPRequest::test_raw_path FAILED [ 41%] tests/test_http_request.py::TestHTTPRequest::test_request_body_chunking FAILED [ 43%] tests/test_http_request.py::TestHTTPRequest::test_root_path_header FAILED [ 44%] tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_ignored FAILED [ 46%] tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_no_port FAILED [ 47%] tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_parsed FAILED [ 49%] tests/test_http_response.py::TestHTTPResponse::test_body FAILED [ 50%] tests/test_http_response.py::TestHTTPResponse::test_chunked_response FAILED [ 52%] tests/test_http_response.py::TestHTTPResponse::test_chunked_response_empty FAILED [ 53%] tests/test_http_response.py::TestHTTPResponse::test_custom_status_code FAILED [ 55%] tests/test_http_response.py::TestHTTPResponse::test_headers FAILED [ 56%] tests/test_http_response.py::TestHTTPResponse::test_headers_type FAILED [ 58%] tests/test_http_response.py::TestHTTPResponse::test_headers_type_raw FAILED [ 60%] tests/test_http_response.py::TestHTTPResponse::test_minimal_response FAILED [ 61%] tests/test_http_response.py::TestHTTPResponse::test_status_code_required FAILED [ 63%] tests/test_packaging.py::test_fd_endpoint_plugin_installed PASSED [ 64%] tests/test_utils.py::TestXForwardedForHttpParsing::test_address_only PASSED [ 66%] tests/test_utils.py::TestXForwardedForHttpParsing::test_basic PASSED [ 67%] tests/test_utils.py::TestXForwardedForHttpParsing::test_multiple_proxys PASSED [ 69%] tests/test_utils.py::TestXForwardedForHttpParsing::test_no_original PASSED [ 70%] tests/test_utils.py::TestXForwardedForHttpParsing::test_original PASSED [ 72%] tests/test_utils.py::TestXForwardedForHttpParsing::test_v6_address PASSED [ 73%] tests/test_utils.py::TestXForwardedForWsParsing::test_address_only PASSED [ 75%] tests/test_utils.py::TestXForwardedForWsParsing::test_basic PASSED [ 76%] tests/test_utils.py::TestXForwardedForWsParsing::test_multiple_proxies PASSED [ 78%] tests/test_utils.py::TestXForwardedForWsParsing::test_no_original PASSED [ 80%] tests/test_utils.py::TestXForwardedForWsParsing::test_original PASSED [ 81%] tests/test_utils.py::TestXForwardedForWsParsing::test_v6_address PASSED [ 83%] tests/test_websocket.py::TestWebsocket::test_accept FAILED [ 84%] tests/test_websocket.py::TestWebsocket::test_application_checker_handles_asyncio_cancellederror FAILED [ 86%] tests/test_websocket.py::TestWebsocket::test_binary_frames FAILED [ 87%] tests/test_websocket.py::TestWebsocket::test_http_bits FAILED [ 89%] tests/test_websocket.py::TestWebsocket::test_http_timeout FAILED [ 90%] tests/test_websocket.py::TestWebsocket::test_raw_path FAILED [ 92%] tests/test_websocket.py::TestWebsocket::test_reject FAILED [ 93%] tests/test_websocket.py::TestWebsocket::test_root_path FAILED [ 95%] tests/test_websocket.py::TestWebsocket::test_subprotocols FAILED [ 96%] tests/test_websocket.py::TestWebsocket::test_text_frames FAILED [ 98%] tests/test_websocket.py::TestWebsocket::test_xff FAILED [100%] =================================== FAILURES =================================== ______________________ TestHTTPRequest.test_bad_requests _______________________ self = def test_bad_requests(self): """ Tests that requests with invalid (non-ASCII) characters fail. """ # Bad path > response = self.run_daphne_raw( b"GET /\xc3\xa4\xc3\xb6\xc3\xbc HTTP/1.0\r\n\r\n" ) tests/test_http_request.py:304: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:77: in run_daphne_raw with DaphneTestingInstance() as test_app: daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ____________________ TestHTTPRequest.test_duplicate_headers ____________________ self = @given(request_headers=http_strategies.headers()) > @settings(max_examples=5, deadline=5000) tests/test_http_request.py:182: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:193: in test_duplicate_headers scope, messages = self.run_daphne_request( tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_duplicate_headers( E self=, E request_headers=[(b'0', b'0'), E (b'0', b'0')], # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ TestHTTPRequest.test_get_request _______________________ self = @given( > request_path=http_strategies.http_path(), request_params=http_strategies.query_params(), ) tests/test_http_request.py:109: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:117: in test_get_request scope, messages = self.run_daphne_request( tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_get_request( E # The test always failed when commented parts were varied together. E self=, E request_path='/', # or any other generated value E request_params=[], # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ TestHTTPRequest.test_headers _________________________ self = @given(request_headers=http_strategies.headers()) > @settings(max_examples=5, deadline=5000) tests/test_http_request.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:173: in test_headers scope, messages = self.run_daphne_request( tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_headers( E self=, E request_headers=[], # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________ TestHTTPRequest.test_headers_are_lowercased_and_stripped ___________ self = def test_headers_are_lowercased_and_stripped(self): """ Make sure headers are normalized as the spec says they are. """ headers = [(b"MYCUSTOMHEADER", b" foobar ")] > scope, messages = self.run_daphne_request("GET", "/", headers=headers) tests/test_http_request.py:242: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ___________________ TestHTTPRequest.test_invalid_header_name ___________________ self = def test_invalid_header_name(self): """ Tests that requests with invalid header names fail. """ # Test cases follow those used by h11 # https://github.com/python-hyper/h11/blob/a2c68948accadc3876dffcf979d98002e4a4ed27/h11/tests/test_headers.py#L24-L35 for header_name in [b"foo bar", b"foo\x00bar", b"foo\xffbar", b"foo\x01bar"]: > response = self.run_daphne_raw( f"GET / HTTP/1.0\r\n{header_name}: baz\r\n\r\n".encode("ascii") ) tests/test_http_request.py:321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:77: in run_daphne_raw with DaphneTestingInstance() as test_app: daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ______________________ TestHTTPRequest.test_kitchen_sink _______________________ self = @given( > request_method=http_strategies.http_method(), request_path=http_strategies.http_path(), request_params=http_strategies.query_params(), request_headers=http_strategies.headers(), request_body=http_strategies.http_body(), ) tests/test_http_request.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:221: in test_kitchen_sink scope, messages = self.run_daphne_request( tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_kitchen_sink( E # The test always failed when commented parts were varied together. E self=, E request_method='OPTIONS', # or any other generated value E request_path='/', # or any other generated value E request_params=[], # or any other generated value E request_headers=[], # or any other generated value E request_body=b'', # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _____________________ TestHTTPRequest.test_minimal_request _____________________ self = def test_minimal_request(self): """ Smallest viable example. Mostly verifies that our request building works. """ > scope, messages = self.run_daphne_request("GET", "/") tests/test_http_request.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ______________________ TestHTTPRequest.test_post_request _______________________ self = @given( > request_path=http_strategies.http_path(), request_body=http_strategies.http_body(), ) tests/test_http_request.py:144: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:152: in test_post_request scope, messages = self.run_daphne_request( tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_post_request( E # The test always failed when commented parts were varied together. E self=, E request_path='/', # or any other generated value E request_body=b'', # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ________________________ TestHTTPRequest.test_raw_path _________________________ self = def test_raw_path(self): """ Tests that /foo%2Fbar produces raw_path and a decoded path """ > scope, _ = self.run_daphne_request("GET", "/foo%2Fbar") tests/test_http_request.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 __________________ TestHTTPRequest.test_request_body_chunking __________________ self = @given(request_path=http_strategies.http_path(), chunk_size=integers(min_value=1)) > @settings(max_examples=5, deadline=5000) tests/test_http_request.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:130: in test_request_body_chunking _, messages = self.run_daphne_request( tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_request_body_chunking( E # The test always failed when commented parts were varied together. E self=, E request_path='/', # or any other generated value E chunk_size=1, # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________ TestHTTPRequest.test_root_path_header _____________________ self = @given(daphne_path=http_strategies.http_path()) > @settings(max_examples=5, deadline=5000) tests/test_http_request.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_request.py:257: in test_root_path_header scope, messages = self.run_daphne_request("GET", "/", headers=headers) tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_root_path_header( E self=, E daphne_path='/', # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________ TestHTTPRequest.test_x_forwarded_for_ignored _________________ self = def test_x_forwarded_for_ignored(self): """ Make sure that, by default, X-Forwarded-For is ignored. """ headers = [[b"X-Forwarded-For", b"10.1.2.3"], [b"X-Forwarded-Port", b"80"]] > scope, messages = self.run_daphne_request("GET", "/", headers=headers) tests/test_http_request.py:270: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 _________________ TestHTTPRequest.test_x_forwarded_for_no_port _________________ self = def test_x_forwarded_for_no_port(self): """ When X-Forwarded-For is enabled but only the host is passed, make sure that at least makes it through. """ headers = [[b"X-Forwarded-For", b"10.1.2.3"]] > scope, messages = self.run_daphne_request("GET", "/", headers=headers, xff=True) tests/test_http_request.py:293: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 _________________ TestHTTPRequest.test_x_forwarded_for_parsed __________________ self = def test_x_forwarded_for_parsed(self): """ When X-Forwarded-For is enabled, make sure it is respected. """ headers = [[b"X-Forwarded-For", b"10.1.2.3"], [b"X-Forwarded-Port", b"80"]] > scope, messages = self.run_daphne_request("GET", "/", headers=headers, xff=True) tests/test_http_request.py:281: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:106: in run_daphne_request scope, messages, _ = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 __________________________ TestHTTPResponse.test_body __________________________ self = @given(body=http_strategies.http_body()) > @settings(max_examples=5, deadline=5000) tests/test_http_response.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_response.py:106: in test_body response = self.run_daphne_response( tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_body( E self=, E body=b'', # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ____________________ TestHTTPResponse.test_chunked_response ____________________ self = def test_chunked_response(self): """ Tries sending a response in multiple parts. """ > response = self.run_daphne_response( [ {"type": "http.response.start", "status": 201}, {"type": "http.response.body", "body": b"chunk 1 ", "more_body": True}, {"type": "http.response.body", "body": b"chunk 2"}, ] ) tests/test_http_response.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 _________________ TestHTTPResponse.test_chunked_response_empty _________________ self = def test_chunked_response_empty(self): """ Tries sending a response in multiple parts and an empty end. """ > response = self.run_daphne_response( [ {"type": "http.response.start", "status": 201}, {"type": "http.response.body", "body": b"chunk 1 ", "more_body": True}, {"type": "http.response.body", "body": b"chunk 2", "more_body": True}, {"type": "http.response.body"}, ] ) tests/test_http_response.py:89: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ___________________ TestHTTPResponse.test_custom_status_code ___________________ self = def test_custom_status_code(self): """ Tries a non-default status code. """ > response = self.run_daphne_response( [ {"type": "http.response.start", "status": 201}, {"type": "http.response.body", "body": b"i made a thing!"}, ] ) tests/test_http_response.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ________________________ TestHTTPResponse.test_headers _________________________ self = @given(headers=http_strategies.headers()) > @settings(max_examples=5, deadline=5000) tests/test_http_response.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_http_response.py:119: in test_headers response = self.run_daphne_response( tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_headers( E self=, E headers=[], # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ______________________ TestHTTPResponse.test_headers_type ______________________ self = def test_headers_type(self): """ Headers should be `bytes` """ with self.assertRaises(ValueError) as context: > self.run_daphne_response( [ { "type": "http.response.start", "status": 200, "headers": [["foo", b"bar"]], }, {"type": "http.response.body", "body": b""}, ] ) tests/test_http_response.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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 ____________________ TestHTTPResponse.test_headers_type_raw ____________________ self = def test_headers_type_raw(self): """ Daphne returns a 500 error response if the application sends invalid headers. """ > response = self.run_daphne_raw( b"GET / HTTP/1.0\r\n\r\n", responses=[ { "type": "http.response.start", "status": 200, "headers": [["foo", b"bar"]], }, {"type": "http.response.body", "body": b""}, ], ) tests/test_http_response.py:176: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:77: in run_daphne_raw with DaphneTestingInstance() as test_app: daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ____________________ TestHTTPResponse.test_minimal_response ____________________ self = def test_minimal_response(self): """ Smallest viable example. Mostly verifies that our response building works. """ > response = self.run_daphne_response( [ {"type": "http.response.start", "status": 200}, {"type": "http.response.body", "body": b"hello world"}, ] ) tests/test_http_response.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 __________________ TestHTTPResponse.test_status_code_required __________________ self = def test_status_code_required(self): """ Asserts that passing in the 'status' key is required. Previous versions of Daphne did not enforce this, so this test is here to make sure it stays required. """ with self.assertRaises(ValueError): > self.run_daphne_response( [ {"type": "http.response.start"}, {"type": "http.response.body", "body": b"hello world"}, ] ) tests/test_http_response.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/http_base.py:126: in run_daphne_response _, _, response = self.run_daphne_http( tests/http_base.py:38: in run_daphne_http with DaphneTestingInstance( daphne/testing.py:87: in __init__ self.lock = multiprocessing.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) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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 __________________________ TestWebsocket.test_accept ___________________________ self = def test_accept(self): """ Tests we can open and accept a socket. """ > with DaphneTestingInstance() as test_app: tests/test_websocket.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ____ TestWebsocket.test_application_checker_handles_asyncio_cancellederror _____ self = def test_application_checker_handles_asyncio_cancellederror(self): > with CancellingTestingInstance() as app: tests/test_websocket.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:45: in __enter__ self.process = DaphneProcess( daphne/testing.py:138: in __init__ self.port = multiprocessing.Value("i", port if port is not None else 0) /usr/lib/python3.12/multiprocessing/context.py:135: in Value return Value(typecode_or_type, *args, lock=lock, /usr/lib/python3.12/multiprocessing/sharedctypes.py:74: in Value obj = RawValue(typecode_or_type, *args) /usr/lib/python3.12/multiprocessing/sharedctypes.py:49: in RawValue obj = _new_value(type_) /usr/lib/python3.12/multiprocessing/sharedctypes.py:41: in _new_value wrapper = heap.BufferWrapper(size) /usr/lib/python3.12/multiprocessing/heap.py:331: in __init__ block = BufferWrapper._heap.malloc(size) /usr/lib/python3.12/multiprocessing/heap.py:309: in malloc (arena, start, stop) = self._malloc(size) /usr/lib/python3.12/multiprocessing/heap.py:192: in _malloc return self._new_arena(size) /usr/lib/python3.12/multiprocessing/heap.py:166: in _new_arena arena = Arena(length) /usr/lib/python3.12/multiprocessing/heap.py:83: in __init__ self.fd, name = tempfile.mkstemp( /usr/lib/python3.12/tempfile.py:357: in mkstemp return _mkstemp_inner(dir, prefix, suffix, flags, output_type) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dir = '/dev/shm', pre = 'pym-3896383-', suf = '', flags = 131266 output_type = def _mkstemp_inner(dir, pre, suf, flags, output_type): """Code common to mkstemp, TemporaryFile, and NamedTemporaryFile.""" dir = _os.path.abspath(dir) names = _get_candidate_names() if output_type is bytes: names = map(_os.fsencode, names) for seq in range(TMP_MAX): name = next(names) file = _os.path.join(dir, pre + name + suf) _sys.audit("tempfile.mkstemp", file) try: > fd = _os.open(file, flags, 0o600) E PermissionError: [Errno 13] Permission denied: '/dev/shm/pym-3896383-qmldud3p' /usr/lib/python3.12/tempfile.py:256: PermissionError _______________________ TestWebsocket.test_binary_frames _______________________ self = def test_binary_frames(self): """ Tests we can send and receive binary frames with things that are very much not valid UTF-8. """ > with DaphneTestingInstance() as test_app: tests/test_websocket.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 _________________________ TestWebsocket.test_http_bits _________________________ self = @given( > request_path=http_strategies.http_path(), request_params=http_strategies.query_params(), request_headers=http_strategies.headers(), ) tests/test_websocket.py:157: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_websocket.py:167: in test_http_bits with DaphneTestingInstance() as test_app: daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_http_bits( E # The test always failed when commented parts were varied together. E self=, E request_path='/', # or any other generated value E request_params=[], # or any other generated value E request_headers=[], # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ TestWebsocket.test_http_timeout ________________________ self = def test_http_timeout(self): """ Tests that the HTTP timeout doesn't kick in for WebSockets """ > with DaphneTestingInstance(http_timeout=1) as test_app: tests/test_websocket.py:274: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 _________________________ TestWebsocket.test_raw_path __________________________ self = def test_raw_path(self): """ Tests that /foo%2Fbar produces raw_path and a decoded path """ > with DaphneTestingInstance() as test_app: tests/test_websocket.py:186: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 __________________________ TestWebsocket.test_reject ___________________________ self = def test_reject(self): """ Tests we can reject a socket and it won't complete the handshake. """ > with DaphneTestingInstance() as test_app: tests/test_websocket.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 _________________________ TestWebsocket.test_root_path _________________________ self = @given(daphne_path=http_strategies.http_path()) > @settings(max_examples=5, deadline=2000) tests/test_websocket.py:196: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_websocket.py:202: in test_root_path with DaphneTestingInstance() as test_app: daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 E Falsifying example: test_root_path( E self=, E daphne_path='/', # or any other generated value E ) /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _______________________ TestWebsocket.test_subprotocols ________________________ self = def test_subprotocols(self): """ Tests that we can ask for subprotocols and then select one. """ subprotocols = ["proto1", "proto2"] > with DaphneTestingInstance() as test_app: tests/test_websocket.py:129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ________________________ TestWebsocket.test_text_frames ________________________ self = def test_text_frames(self): """ Tests we can send and receive text frames. """ > with DaphneTestingInstance() as test_app: tests/test_websocket.py:223: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 ____________________________ TestWebsocket.test_xff ____________________________ self = def test_xff(self): """ Tests that X-Forwarded-For headers get parsed right """ headers = [["X-Forwarded-For", "10.1.2.3"], ["X-Forwarded-Port", "80"]] > with DaphneTestingInstance(xff=True) as test_app: tests/test_websocket.py:147: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ daphne/testing.py:87: in __init__ self.lock = multiprocessing.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 =========================== short test summary info ============================ FAILED tests/test_http_request.py::TestHTTPRequest::test_bad_requests - Permi... FAILED tests/test_http_request.py::TestHTTPRequest::test_duplicate_headers - ... FAILED tests/test_http_request.py::TestHTTPRequest::test_get_request - Permis... FAILED tests/test_http_request.py::TestHTTPRequest::test_headers - Permission... FAILED tests/test_http_request.py::TestHTTPRequest::test_headers_are_lowercased_and_stripped FAILED tests/test_http_request.py::TestHTTPRequest::test_invalid_header_name FAILED tests/test_http_request.py::TestHTTPRequest::test_kitchen_sink - Permi... FAILED tests/test_http_request.py::TestHTTPRequest::test_minimal_request - Pe... FAILED tests/test_http_request.py::TestHTTPRequest::test_post_request - Permi... FAILED tests/test_http_request.py::TestHTTPRequest::test_raw_path - Permissio... FAILED tests/test_http_request.py::TestHTTPRequest::test_request_body_chunking FAILED tests/test_http_request.py::TestHTTPRequest::test_root_path_header - P... FAILED tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_ignored FAILED tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_no_port FAILED tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_parsed FAILED tests/test_http_response.py::TestHTTPResponse::test_body - PermissionE... FAILED tests/test_http_response.py::TestHTTPResponse::test_chunked_response FAILED tests/test_http_response.py::TestHTTPResponse::test_chunked_response_empty FAILED tests/test_http_response.py::TestHTTPResponse::test_custom_status_code FAILED tests/test_http_response.py::TestHTTPResponse::test_headers - Permissi... FAILED tests/test_http_response.py::TestHTTPResponse::test_headers_type - Per... FAILED tests/test_http_response.py::TestHTTPResponse::test_headers_type_raw FAILED tests/test_http_response.py::TestHTTPResponse::test_minimal_response FAILED tests/test_http_response.py::TestHTTPResponse::test_status_code_required FAILED tests/test_websocket.py::TestWebsocket::test_accept - PermissionError:... FAILED tests/test_websocket.py::TestWebsocket::test_application_checker_handles_asyncio_cancellederror FAILED tests/test_websocket.py::TestWebsocket::test_binary_frames - Permissio... FAILED tests/test_websocket.py::TestWebsocket::test_http_bits - PermissionErr... FAILED tests/test_websocket.py::TestWebsocket::test_http_timeout - Permission... FAILED tests/test_websocket.py::TestWebsocket::test_raw_path - PermissionErro... FAILED tests/test_websocket.py::TestWebsocket::test_reject - PermissionError:... FAILED tests/test_websocket.py::TestWebsocket::test_root_path - PermissionErr... FAILED tests/test_websocket.py::TestWebsocket::test_subprotocols - Permission... FAILED tests/test_websocket.py::TestWebsocket::test_text_frames - PermissionE... FAILED tests/test_websocket.py::TestWebsocket::test_xff - PermissionError: [E... ============= 35 failed, 29 passed, 1 skipped in 67.23s (0:01:07) ============== >>> ERROR: py3-daphne: check failed >>> py3-daphne: Uninstalling dependencies... (1/130) Purging .makedepends-py3-daphne (20251012.155747) (2/130) Purging py3-autobahn-pyc (23.6.2-r1) (3/130) Purging py3-autobahn (23.6.2-r1) (4/130) Purging py3-txaio-pyc (23.1.1-r2) (5/130) Purging py3-txaio (23.1.1-r2) (6/130) Purging py3-twisted-pyc (24.11.0-r0) (7/130) Purging py3-twisted (24.11.0-r0) (8/130) Purging py3-zope-interface-pyc (7.2-r0) (9/130) Purging py3-zope-interface (7.2-r0) (10/130) Purging py3-constantly-pyc (23.10.4-r1) (11/130) Purging py3-constantly (23.10.4-r1) (12/130) Purging py3-incremental-pyc (24.7.2-r0) (13/130) Purging py3-incremental (24.7.2-r0) (14/130) Purging py3-automat-pyc (24.8.1-r0) (15/130) Purging py3-automat (24.8.1-r0) (16/130) Purging py3-six-pyc (1.17.0-r0) (17/130) Purging py3-six (1.17.0-r0) (18/130) Purging py3-hyperlink-pyc (21.0.0-r5) (19/130) Purging py3-hyperlink (21.0.0-r5) (20/130) Purging py3-typing-extensions-pyc (4.13.2-r0) (21/130) Purging py3-typing-extensions (4.13.2-r0) (22/130) Purging py3-pyhamcrest-pyc (2.1.0-r1) (23/130) Purging py3-pyhamcrest (2.1.0-r1) (24/130) Purging py3-service_identity-pyc (24.2.0-r0) (25/130) Purging py3-service_identity (24.2.0-r0) (26/130) Purging py3-asn1-modules-pyc (0.4.1-r0) (27/130) Purging py3-asn1-modules (0.4.1-r0) (28/130) Purging py3-asn1-pyc (0.6.1-r0) (29/130) Purging py3-asn1 (0.6.1-r0) (30/130) Purging py3-pyserial-pyc (3.5-r7) (31/130) Purging py3-pyserial (3.5-r7) (32/130) Purging py3-h2-pyc (4.1.0-r3) (33/130) Purging py3-h2 (4.1.0-r3) (34/130) Purging py3-hyperframe-pyc (6.1.0-r0) (35/130) Purging py3-hyperframe (6.1.0-r0) (36/130) Purging py3-hpack-pyc (4.1.0-r0) (37/130) Purging py3-hpack (4.1.0-r0) (38/130) Purging py3-sphinxcontrib-images-pyc (0.9.4-r4) (39/130) Purging py3-sphinxcontrib-images (0.9.4-r4) (40/130) Purging py3-sphinx-pyc (8.2.3-r1) (41/130) Purging py3-sphinx (8.2.3-r1) (42/130) Purging py3-babel-pyc (2.17.0-r0) (43/130) Purging py3-babel (2.17.0-r0) (44/130) Purging py3-tz-pyc (2025.2-r0) (45/130) Purging py3-tz (2025.2-r0) (46/130) Purging py3-docutils-pyc (0.21.2-r0) (47/130) Purging py3-docutils (0.21.2-r0) (48/130) Purging py3-imagesize-pyc (1.4.1-r4) (49/130) Purging py3-imagesize (1.4.1-r4) (50/130) Purging py3-jinja2-pyc (3.1.6-r0) (51/130) Purging py3-jinja2 (3.1.6-r0) (52/130) Purging py3-markupsafe-pyc (3.0.2-r0) (53/130) Purging py3-markupsafe (3.0.2-r0) (54/130) Purging py3-pygments-pyc (2.19.1-r1) (55/130) Purging py3-pygments (2.19.1-r1) (56/130) Purging py3-requests-pyc (2.32.5-r0) (57/130) Purging py3-requests (2.32.5-r0) (58/130) Purging py3-certifi-pyc (2025.4.26-r0) (59/130) Purging py3-certifi (2025.4.26-r0) (60/130) Purging py3-charset-normalizer-pyc (3.4.2-r0) (61/130) Purging py3-charset-normalizer (3.4.2-r0) (62/130) Purging py3-idna-pyc (3.10-r0) (63/130) Purging py3-idna (3.10-r0) (64/130) Purging py3-urllib3-pyc (1.26.20-r0) (65/130) Purging py3-urllib3 (1.26.20-r0) (66/130) Purging py3-snowballstemmer-pyc (2.2.0-r5) (67/130) Purging py3-snowballstemmer (2.2.0-r5) (68/130) Purging py3-alabaster-pyc (1.0.0-r0) (69/130) Purging py3-alabaster (1.0.0-r0) (70/130) Purging py3-roman-numerals-pyc (3.1.0-r0) (71/130) Purging py3-roman-numerals (3.1.0-r0) (72/130) Purging py3-sphinxcontrib-applehelp-pyc (1.0.4-r3) (73/130) Purging py3-sphinxcontrib-applehelp (1.0.4-r3) (74/130) Purging py3-sphinxcontrib-devhelp-pyc (1.0.5-r2) (75/130) Purging py3-sphinxcontrib-devhelp (1.0.5-r2) (76/130) Purging py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3) (77/130) Purging py3-sphinxcontrib-htmlhelp (2.0.1-r3) (78/130) Purging py3-sphinxcontrib-jsmath-pyc (1.0.1-r8) (79/130) Purging py3-sphinxcontrib-jsmath (1.0.1-r8) (80/130) Purging py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2) (81/130) Purging py3-sphinxcontrib-serializinghtml (1.1.9-r2) (82/130) Purging py3-sphinxcontrib-qthelp-pyc (2.0.0-r0) (83/130) Purging py3-sphinxcontrib-qthelp (2.0.0-r0) (84/130) Purging py3-pynacl-pyc (1.5.0-r6) (85/130) Purging py3-pynacl (1.5.0-r6) (86/130) Purging py3-gpep517-pyc (19-r0) (87/130) Purging py3-gpep517 (19-r0) (88/130) Purging py3-installer-pyc (0.7.0-r2) (89/130) Purging py3-installer (0.7.0-r2) (90/130) Purging py3-setuptools_scm-pyc (8.3.1-r0) (91/130) Purging py3-setuptools_scm (8.3.1-r0) (92/130) Purging py3-wheel-pyc (0.46.1-r0) (93/130) Purging py3-wheel (0.46.1-r0) (94/130) Purging py3-hypothesis-pyc (6.124.5-r0) (95/130) Purging py3-hypothesis (6.124.5-r0) (96/130) Purging py3-attrs-pyc (25.3.0-r0) (97/130) Purging py3-attrs (25.3.0-r0) (98/130) Purging py3-sortedcontainers-pyc (2.4.0-r5) (99/130) Purging py3-sortedcontainers (2.4.0-r5) (100/130) Purging py3-django-pyc (4.2.25-r0) (101/130) Purging py3-django (4.2.25-r0) (102/130) Purging py3-asgiref-pyc (3.8.1-r1) (103/130) Purging py3-asgiref (3.8.1-r1) (104/130) Purging py3-sqlparse-pyc (0.5.1-r0) (105/130) Purging py3-sqlparse (0.5.1-r0) (106/130) Purging tzdata (2025b-r0) (107/130) Purging py3-cryptography-pyc (44.0.3-r0) (108/130) Purging py3-cryptography (44.0.3-r0) (109/130) Purging py3-cffi-pyc (1.17.1-r1) (110/130) Purging py3-cffi (1.17.1-r1) (111/130) Purging py3-cparser-pyc (2.22-r1) (112/130) Purging py3-cparser (2.22-r1) (113/130) Purging py3-pytest-asyncio-pyc (0.25.0-r0) (114/130) Purging py3-pytest-asyncio (0.25.0-r0) (115/130) Purging py3-pytest-runner-pyc (6.0.1-r1) (116/130) Purging py3-pytest-runner (6.0.1-r1) (117/130) Purging py3-pytest-pyc (8.3.5-r0) (118/130) Purging py3-pytest (8.3.5-r0) (119/130) Purging py3-iniconfig-pyc (2.1.0-r0) (120/130) Purging py3-iniconfig (2.1.0-r0) (121/130) Purging py3-pluggy-pyc (1.5.0-r0) (122/130) Purging py3-pluggy (1.5.0-r0) (123/130) Purging py3-py-pyc (1.11.0-r4) (124/130) Purging py3-py (1.11.0-r4) (125/130) Purging py3-setuptools-pyc (80.9.0-r0) (126/130) Purging py3-setuptools (80.9.0-r0) (127/130) Purging py3-packaging-pyc (25.0-r0) (128/130) Purging py3-packaging (25.0-r0) (129/130) Purging py3-parsing-pyc (3.2.3-r0) (130/130) Purging py3-parsing (3.2.3-r0) Executing busybox-1.37.0-r19.trigger OK: 296 MiB in 89 packages