>>> py3-daphne: Building community/py3-daphne 4.2.1-r0 (using abuild 3.15.0-r0) started Sun, 12 Oct 2025 16:23:23 +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.162323) 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 16:23:26,068 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 16:23:26,126 root INFO running bdist_wheel 2025-10-12 16:23:26,140 root INFO running build 2025-10-12 16:23:26,140 root INFO running build_py 2025-10-12 16:23:26,143 root INFO creating build/lib/daphne 2025-10-12 16:23:26,143 root INFO copying daphne/access.py -> build/lib/daphne 2025-10-12 16:23:26,143 root INFO copying daphne/http_protocol.py -> build/lib/daphne 2025-10-12 16:23:26,143 root INFO copying daphne/endpoints.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/checks.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/testing.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/ws_protocol.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/utils.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/apps.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/server.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/__init__.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/__main__.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO copying daphne/cli.py -> build/lib/daphne 2025-10-12 16:23:26,144 root INFO creating build/lib/daphne/management 2025-10-12 16:23:26,144 root INFO copying daphne/management/__init__.py -> build/lib/daphne/management 2025-10-12 16:23:26,144 root INFO creating build/lib/daphne/management/commands 2025-10-12 16:23:26,145 root INFO copying daphne/management/commands/runserver.py -> build/lib/daphne/management/commands 2025-10-12 16:23:26,145 root INFO copying daphne/management/commands/__init__.py -> build/lib/daphne/management/commands 2025-10-12 16:23:26,145 root INFO creating build/lib/daphne/twisted/plugins 2025-10-12 16:23:26,145 root INFO copying daphne/twisted/plugins/fd_endpoint.py -> build/lib/daphne/twisted/plugins 2025-10-12 16:23:26,145 root INFO creating build/lib/twisted/plugins 2025-10-12 16:23:26,145 root INFO copying daphne/twisted/plugins/fd_endpoint.py -> build/lib/twisted/plugins 2025-10-12 16:23:26,145 root INFO running egg_info 2025-10-12 16:23:26,148 root INFO creating daphne.egg-info 2025-10-12 16:23:26,148 root INFO writing daphne.egg-info/PKG-INFO 2025-10-12 16:23:26,149 root INFO writing dependency_links to daphne.egg-info/dependency_links.txt 2025-10-12 16:23:26,149 root INFO writing entry points to daphne.egg-info/entry_points.txt 2025-10-12 16:23:26,149 root INFO writing requirements to daphne.egg-info/requires.txt 2025-10-12 16:23:26,149 root INFO writing top-level names to daphne.egg-info/top_level.txt 2025-10-12 16:23:26,149 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 16:23:26,161 root INFO reading manifest file 'daphne.egg-info/SOURCES.txt' 2025-10-12 16:23:26,162 root INFO reading manifest template 'MANIFEST.in' 2025-10-12 16:23:26,162 root INFO adding license file 'LICENSE' 2025-10-12 16:23:26,163 root INFO writing manifest file 'daphne.egg-info/SOURCES.txt' 2025-10-12 16:23:26,169 root INFO installing to build/bdist.linux-x86_64/wheel 2025-10-12 16:23:26,169 root INFO running install 2025-10-12 16:23:26,174 root INFO running install_lib 2025-10-12 16:23:26,177 root INFO creating build/bdist.linux-x86_64/wheel 2025-10-12 16:23:26,177 root INFO creating build/bdist.linux-x86_64/wheel/daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/access.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/http_protocol.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/endpoints.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/checks.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/testing.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/ws_protocol.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/utils.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/apps.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/server.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,177 root INFO creating build/bdist.linux-x86_64/wheel/daphne/management 2025-10-12 16:23:26,177 root INFO creating build/bdist.linux-x86_64/wheel/daphne/management/commands 2025-10-12 16:23:26,177 root INFO copying build/lib/daphne/management/commands/runserver.py -> build/bdist.linux-x86_64/wheel/./daphne/management/commands 2025-10-12 16:23:26,178 root INFO copying build/lib/daphne/management/commands/__init__.py -> build/bdist.linux-x86_64/wheel/./daphne/management/commands 2025-10-12 16:23:26,178 root INFO copying build/lib/daphne/management/__init__.py -> build/bdist.linux-x86_64/wheel/./daphne/management 2025-10-12 16:23:26,178 root INFO copying build/lib/daphne/__init__.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,178 root INFO copying build/lib/daphne/__main__.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,178 root INFO copying build/lib/daphne/cli.py -> build/bdist.linux-x86_64/wheel/./daphne 2025-10-12 16:23:26,178 root INFO creating build/bdist.linux-x86_64/wheel/daphne/twisted 2025-10-12 16:23:26,178 root INFO creating build/bdist.linux-x86_64/wheel/daphne/twisted/plugins 2025-10-12 16:23:26,178 root INFO copying build/lib/daphne/twisted/plugins/fd_endpoint.py -> build/bdist.linux-x86_64/wheel/./daphne/twisted/plugins 2025-10-12 16:23:26,178 root INFO creating build/bdist.linux-x86_64/wheel/twisted 2025-10-12 16:23:26,178 root INFO creating build/bdist.linux-x86_64/wheel/twisted/plugins 2025-10-12 16:23:26,178 root INFO copying build/lib/twisted/plugins/fd_endpoint.py -> build/bdist.linux-x86_64/wheel/./twisted/plugins 2025-10-12 16:23:26,178 root INFO running install_egg_info 2025-10-12 16:23:26,181 root INFO Copying daphne.egg-info to build/bdist.linux-x86_64/wheel/./daphne-4.2.1-py3.12.egg-info 2025-10-12 16:23:26,182 root INFO running install_scripts 2025-10-12 16:23:26,182 root INFO creating build/bdist.linux-x86_64/wheel/daphne-4.2.1.dist-info/WHEEL 2025-10-12 16:23:26,182 wheel INFO creating '/home/udu/aports/community/py3-daphne/src/daphne-4.2.1/.dist/.tmp-34y7zqar/daphne-4.2.1-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it 2025-10-12 16:23:26,182 wheel INFO adding 'daphne/__init__.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/__main__.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/access.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/apps.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/checks.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/cli.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/endpoints.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/http_protocol.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/server.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/testing.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/utils.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/ws_protocol.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/management/__init__.py' 2025-10-12 16:23:26,183 wheel INFO adding 'daphne/management/commands/__init__.py' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne/management/commands/runserver.py' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne/twisted/plugins/fd_endpoint.py' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne-4.2.1.dist-info/licenses/LICENSE' 2025-10-12 16:23:26,184 wheel INFO adding 'twisted/plugins/fd_endpoint.py' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne-4.2.1.dist-info/METADATA' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne-4.2.1.dist-info/WHEEL' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne-4.2.1.dist-info/entry_points.txt' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne-4.2.1.dist-info/top_level.txt' 2025-10-12 16:23:26,184 wheel INFO adding 'daphne-4.2.1.dist-info/RECORD' 2025-10-12 16:23:26,184 root INFO removing build/bdist.linux-x86_64/wheel 2025-10-12 16:23:26,185 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 (ASGI_THREADS environment variable not set.) [ 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-3953817-', 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-3953817-laiqu2jn' /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 - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_duplicate_headers - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_get_request - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_headers - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_headers_are_lowercased_and_stripped - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_invalid_header_name - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_kitchen_sink - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_minimal_request - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_post_request - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_raw_path - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_request_body_chunking - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_root_path_header - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_ignored - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_no_port - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_request.py::TestHTTPRequest::test_x_forwarded_for_parsed - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_body - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_chunked_response - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_chunked_response_empty - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_custom_status_code - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_headers - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_headers_type - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_headers_type_raw - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_minimal_response - PermissionError: [Errno 13] Permission denied FAILED tests/test_http_response.py::TestHTTPResponse::test_status_code_required - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_accept - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_application_checker_handles_asyncio_cancellederror - PermissionError: [Errno 13] Permission denied: '/dev/shm/pym-3953817-laiqu2jn' FAILED tests/test_websocket.py::TestWebsocket::test_binary_frames - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_http_bits - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_http_timeout - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_raw_path - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_reject - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_root_path - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_subprotocols - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_text_frames - PermissionError: [Errno 13] Permission denied FAILED tests/test_websocket.py::TestWebsocket::test_xff - PermissionError: [Errno 13] Permission denied ============================================================================================================================ 35 failed, 29 passed, 1 skipped in 68.30s (0:01:08) ============================================================================================================================= >>> ERROR: py3-daphne: check failed >>> py3-daphne: Uninstalling dependencies... (1/130) Purging .makedepends-py3-daphne (20251012.162323) (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