>>> py3-falcon: Building community/py3-falcon 4.0.2-r1 (using abuild 3.15.0_rc3-r3) started Sun, 11 May 2025 23:20:29 +0000 >>> py3-falcon: Validating /home/buildozer/aports/community/py3-falcon/APKBUILD... >>> py3-falcon: Analyzing dependencies... >>> py3-falcon: Installing for build: build-base python3 py3-gpep517 py3-setuptools py3-wheel python3-dev cython py3-coverage py3-pytest py3-pyaml py3-requests py3-pytest-asyncio py3-aiofiles py3-httpx py3-websockets py3-cbor2 py3-msgpack py3-mujson py3-ujson py3-rapidjson py3-orjson py3-gunicorn py3-daphne py3-waitress (1/171) Installing libbz2 (1.0.8-r6) (2/171) Installing libffi (3.4.8-r0) (3/171) Installing gdbm (1.24-r0) (4/171) Installing xz-libs (5.8.1-r0) (5/171) Installing mpdecimal (4.0.0-r0) (6/171) Installing libpanelw (6.5_p20250503-r0) (7/171) Installing sqlite-libs (3.49.2-r0) (8/171) Installing python3 (3.12.10-r0) (9/171) Installing python3-pycache-pyc0 (3.12.10-r0) (10/171) Installing pyc (3.12.10-r0) (11/171) Installing python3-pyc (3.12.10-r0) (12/171) Installing py3-installer (0.7.0-r2) (13/171) Installing py3-installer-pyc (0.7.0-r2) (14/171) Installing py3-gpep517 (19-r0) (15/171) Installing py3-gpep517-pyc (19-r0) (16/171) Installing py3-parsing (3.2.3-r0) (17/171) Installing py3-parsing-pyc (3.2.3-r0) (18/171) Installing py3-packaging (25.0-r0) (19/171) Installing py3-packaging-pyc (25.0-r0) (20/171) Installing py3-setuptools (80.5.0-r0) (21/171) Installing py3-setuptools-pyc (80.5.0-r0) (22/171) Installing py3-wheel (0.46.1-r0) (23/171) Installing py3-wheel-pyc (0.46.1-r0) (24/171) Installing python3-dev (3.12.10-r0) (25/171) Installing cython (3.0.12-r0) (26/171) Installing cython-pyc (3.0.12-r0) (27/171) Installing py3-coverage (7.6.10-r0) (28/171) Installing py3-coverage-pyc (7.6.10-r0) (29/171) Installing py3-iniconfig (2.1.0-r0) (30/171) Installing py3-iniconfig-pyc (2.1.0-r0) (31/171) Installing py3-pluggy (1.5.0-r0) (32/171) Installing py3-pluggy-pyc (1.5.0-r0) (33/171) Installing py3-py (1.11.0-r4) (34/171) Installing py3-py-pyc (1.11.0-r4) (35/171) Installing py3-pytest (8.3.5-r0) (36/171) Installing py3-pytest-pyc (8.3.5-r0) (37/171) Installing yaml (0.2.5-r2) (38/171) Installing py3-yaml (6.0.2-r0) (39/171) Installing py3-yaml-pyc (6.0.2-r0) (40/171) Installing py3-pyaml (25.1.0-r0) (41/171) Installing py3-pyaml-pyc (25.1.0-r0) (42/171) Installing py3-certifi (2025.4.26-r0) (43/171) Installing py3-certifi-pyc (2025.4.26-r0) (44/171) Installing py3-charset-normalizer (3.4.2-r0) (45/171) Installing py3-charset-normalizer-pyc (3.4.2-r0) (46/171) Installing py3-idna (3.10-r0) (47/171) Installing py3-idna-pyc (3.10-r0) (48/171) Installing py3-urllib3 (1.26.20-r0) (49/171) Installing py3-urllib3-pyc (1.26.20-r0) (50/171) Installing py3-requests (2.32.3-r0) (51/171) Installing py3-requests-pyc (2.32.3-r0) (52/171) Installing py3-pytest-asyncio (0.25.0-r0) (53/171) Installing py3-pytest-asyncio-pyc (0.25.0-r0) (54/171) Installing py3-aiofiles (24.1.0-r0) (55/171) Installing py3-aiofiles-pyc (24.1.0-r0) (56/171) Installing py3-curio (1.6-r2) (57/171) Installing py3-curio-pyc (1.6-r2) (58/171) Installing py3-sniffio (1.3.1-r1) (59/171) Installing py3-sniffio-pyc (1.3.1-r1) (60/171) Installing py3-anyio (4.3.0-r2) (61/171) Installing py3-anyio-pyc (4.3.0-r2) (62/171) Installing py3-h11 (0.14.0-r4) (63/171) Installing py3-h11-pyc (0.14.0-r4) (64/171) Installing py3-httpcore (1.0.7-r0) (65/171) Installing py3-httpcore-pyc (1.0.7-r0) (66/171) Installing py3-httpx (0.28.1-r0) (67/171) Installing py3-httpx-pyc (0.28.1-r0) (68/171) Installing py3-websockets (15.0.1-r0) (69/171) Installing py3-websockets-pyc (15.0.1-r0) (70/171) Installing py3-cbor2 (5.6.5-r0) (71/171) Installing py3-cbor2-pyc (5.6.5-r0) (72/171) Installing py3-msgpack (1.0.8-r1) (73/171) Installing py3-msgpack-pyc (1.0.8-r1) (74/171) Installing py3-mujson (1.4-r0) (75/171) Installing py3-mujson-pyc (1.4-r0) (76/171) Installing py3-ujson (5.10.0-r0) (77/171) Installing py3-rapidjson (1.20-r0) (78/171) Installing py3-orjson (3.10.18-r0) (79/171) Installing py3-orjson-pyc (3.10.18-r0) (80/171) Installing py3-gunicorn (23.0.0-r0) (81/171) Installing py3-gunicorn-pyc (23.0.0-r0) (82/171) Installing py3-cparser (2.22-r1) (83/171) Installing py3-cparser-pyc (2.22-r1) (84/171) Installing py3-cffi (1.17.1-r1) (85/171) Installing py3-cffi-pyc (1.17.1-r1) (86/171) Installing py3-cryptography (44.0.3-r0) (87/171) Installing py3-cryptography-pyc (44.0.3-r0) (88/171) Installing py3-zope-interface (7.2-r0) (89/171) Installing py3-zope-interface-pyc (7.2-r0) (90/171) Installing py3-constantly (23.10.4-r1) (91/171) Installing py3-constantly-pyc (23.10.4-r1) (92/171) Installing py3-incremental (24.7.2-r0) (93/171) Installing py3-incremental-pyc (24.7.2-r0) (94/171) Installing py3-attrs (25.3.0-r0) (95/171) Installing py3-attrs-pyc (25.3.0-r0) (96/171) Installing py3-six (1.17.0-r0) (97/171) Installing py3-six-pyc (1.17.0-r0) (98/171) Installing py3-automat (24.8.1-r0) (99/171) Installing py3-automat-pyc (24.8.1-r0) (100/171) Installing py3-hyperlink (21.0.0-r5) (101/171) Installing py3-hyperlink-pyc (21.0.0-r5) (102/171) Installing py3-typing-extensions (4.13.2-r0) (103/171) Installing py3-typing-extensions-pyc (4.13.2-r0) (104/171) Installing py3-pyhamcrest (2.1.0-r1) (105/171) Installing py3-pyhamcrest-pyc (2.1.0-r1) (106/171) Installing py3-asn1 (0.6.1-r0) (107/171) Installing py3-asn1-pyc (0.6.1-r0) (108/171) Installing py3-asn1-modules (0.4.1-r0) (109/171) Installing py3-asn1-modules-pyc (0.4.1-r0) (110/171) Installing py3-service_identity (24.2.0-r0) (111/171) Installing py3-service_identity-pyc (24.2.0-r0) (112/171) Installing py3-pyserial (3.5-r7) (113/171) Installing py3-pyserial-pyc (3.5-r7) (114/171) Installing py3-hyperframe (6.1.0-r0) (115/171) Installing py3-hyperframe-pyc (6.1.0-r0) (116/171) Installing py3-hpack (4.1.0-r0) (117/171) Installing py3-hpack-pyc (4.1.0-r0) (118/171) Installing py3-h2 (4.1.0-r3) (119/171) Installing py3-h2-pyc (4.1.0-r3) (120/171) Installing py3-twisted (24.11.0-r0) (121/171) Installing py3-twisted-pyc (24.11.0-r0) (122/171) Installing py3-txaio (23.1.1-r2) (123/171) Installing py3-txaio-pyc (23.1.1-r2) (124/171) Installing py3-tz (2025.2-r0) (125/171) Installing py3-tz-pyc (2025.2-r0) (126/171) Installing py3-babel (2.17.0-r0) (127/171) Installing py3-babel-pyc (2.17.0-r0) (128/171) Installing py3-docutils (0.21.2-r0) (129/171) Installing py3-docutils-pyc (0.21.2-r0) (130/171) Installing py3-imagesize (1.4.1-r4) (131/171) Installing py3-imagesize-pyc (1.4.1-r4) (132/171) Installing py3-markupsafe (3.0.2-r0) (133/171) Installing py3-markupsafe-pyc (3.0.2-r0) (134/171) Installing py3-jinja2 (3.1.6-r0) (135/171) Installing py3-jinja2-pyc (3.1.6-r0) (136/171) Installing py3-pygments (2.19.1-r1) (137/171) Installing py3-pygments-pyc (2.19.1-r1) (138/171) Installing py3-snowballstemmer (2.2.0-r5) (139/171) Installing py3-snowballstemmer-pyc (2.2.0-r5) (140/171) Installing py3-alabaster (1.0.0-r0) (141/171) Installing py3-alabaster-pyc (1.0.0-r0) (142/171) Installing py3-roman-numerals (3.1.0-r0) (143/171) Installing py3-roman-numerals-pyc (3.1.0-r0) (144/171) Installing py3-sphinxcontrib-applehelp (1.0.4-r3) (145/171) Installing py3-sphinxcontrib-applehelp-pyc (1.0.4-r3) (146/171) Installing py3-sphinxcontrib-devhelp (1.0.5-r2) (147/171) Installing py3-sphinxcontrib-devhelp-pyc (1.0.5-r2) (148/171) Installing py3-sphinxcontrib-htmlhelp (2.0.1-r3) (149/171) Installing py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3) (150/171) Installing py3-sphinxcontrib-jsmath (1.0.1-r8) (151/171) Installing py3-sphinxcontrib-jsmath-pyc (1.0.1-r8) (152/171) Installing py3-sphinxcontrib-serializinghtml (1.1.9-r2) (153/171) Installing py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2) (154/171) Installing py3-sphinxcontrib-qthelp (2.0.0-r0) (155/171) Installing py3-sphinxcontrib-qthelp-pyc (2.0.0-r0) (156/171) Installing py3-sphinx (8.2.3-r1) (157/171) Installing py3-sphinx-pyc (8.2.3-r1) (158/171) Installing py3-sphinxcontrib-images (0.9.4-r4) (159/171) Installing py3-sphinxcontrib-images-pyc (0.9.4-r4) (160/171) Installing py3-pynacl (1.5.0-r6) (161/171) Installing py3-pynacl-pyc (1.5.0-r6) (162/171) Installing py3-autobahn (23.6.2-r1) (163/171) Installing py3-autobahn-pyc (23.6.2-r1) (164/171) Installing py3-asgiref (3.8.1-r1) (165/171) Installing py3-asgiref-pyc (3.8.1-r1) (166/171) Installing py3-daphne (4.1.2-r0) (167/171) Installing py3-daphne-pyc (4.1.2-r0) (168/171) Installing py3-waitress (3.0.2-r0) (169/171) Installing py3-waitress-pyc (3.0.2-r0) (170/171) Installing .makedepends-py3-falcon (20250511.232030) (171/171) Installing py3-waitress-openrc (3.0.2-r0) Executing busybox-1.37.0-r17.trigger OK: 594 MiB in 275 packages >>> py3-falcon: Cleaning up srcdir >>> py3-falcon: Cleaning up pkgdir >>> py3-falcon: Cleaning up tmpdir >>> py3-falcon: Fetching https://distfiles.alpinelinux.org/distfiles/v3.22/py3-falcon-4.0.2.tar.gz Connecting to distfiles.alpinelinux.org (172.105.82.32:443) saving to '/var/cache/distfiles/v3.22/py3-falcon-4.0.2.tar.gz.part' py3-falcon-4.0.2.tar 100% |********************************| 1127k 0:00:00 ETA '/var/cache/distfiles/v3.22/py3-falcon-4.0.2.tar.gz.part' saved >>> py3-falcon: Fetching https://distfiles.alpinelinux.org/distfiles/v3.22/py3-falcon-4.0.2.tar.gz >>> py3-falcon: Checking sha512sums... py3-falcon-4.0.2.tar.gz: OK cf51816a2f7cd7a23d3e1129fe9418a5fc85d8be.patch: OK f5920fea1cea39fb2a1ce3fdee3ea335532f5ac4.patch: OK >>> py3-falcon: Unpacking /var/cache/distfiles/v3.22/py3-falcon-4.0.2.tar.gz... >>> py3-falcon: cf51816a2f7cd7a23d3e1129fe9418a5fc85d8be.patch patching file requirements/tests patching file tests/asgi/test_asgi_servers.py >>> py3-falcon: f5920fea1cea39fb2a1ce3fdee3ea335532f5ac4.patch patching file tests/asgi/test_asgi_servers.py 2025-05-11 23:20:33,186 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/setuptools/config/_apply_pyprojecttoml.py:55: SetuptoolsDeprecationWarning: 'tool.setuptools.license-files' is deprecated in favor of 'project.license-files' (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-files for details. ******************************************************************************** !! _apply_tool_table(dist, config, filename) /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 :: Apache Software 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:761: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: Apache Software License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 2025-05-11 23:20:33,403 root INFO running bdist_wheel 2025-05-11 23:20:33,454 root INFO running build 2025-05-11 23:20:33,455 root INFO running build_py 2025-05-11 23:20:33,468 root INFO creating build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,468 root INFO copying falcon/status_codes.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,469 root INFO copying falcon/inspect.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,469 root INFO copying falcon/hooks.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,469 root INFO copying falcon/response.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,470 root INFO copying falcon/app.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,471 root INFO copying falcon/uri.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,471 root INFO copying falcon/request.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,472 root INFO copying falcon/http_status.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,472 root INFO copying falcon/response_helpers.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,472 root INFO copying falcon/redirects.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,473 root INFO copying falcon/version.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,473 root INFO copying falcon/constants.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,473 root INFO copying falcon/__init__.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,474 root INFO copying falcon/request_helpers.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,474 root INFO copying falcon/_typing.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,474 root INFO copying falcon/app_helpers.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,475 root INFO copying falcon/forwarded.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,475 root INFO copying falcon/middleware.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,475 root INFO copying falcon/responders.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,476 root INFO copying falcon/stream.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,476 root INFO copying falcon/asgi_spec.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,476 root INFO copying falcon/http_error.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,477 root INFO copying falcon/typing.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,477 root INFO copying falcon/errors.py -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,478 root INFO creating build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,478 root INFO copying falcon/util/deprecation.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,478 root INFO copying falcon/util/reader.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,479 root INFO copying falcon/util/uri.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,479 root INFO copying falcon/util/__init__.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,480 root INFO copying falcon/util/structures.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,480 root INFO copying falcon/util/sync.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,480 root INFO copying falcon/util/mediatypes.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,481 root INFO copying falcon/util/time.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,481 root INFO copying falcon/util/misc.py -> build/lib.linux-i686-cpython-312/falcon/util 2025-05-11 23:20:33,482 root INFO creating build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,482 root INFO copying falcon/testing/srmock.py -> build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,482 root INFO copying falcon/testing/__init__.py -> build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,482 root INFO copying falcon/testing/client.py -> build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,483 root INFO copying falcon/testing/test_case.py -> build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,483 root INFO copying falcon/testing/helpers.py -> build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,484 root INFO copying falcon/testing/resource.py -> build/lib.linux-i686-cpython-312/falcon/testing 2025-05-11 23:20:33,484 root INFO creating build/lib.linux-i686-cpython-312/falcon/routing 2025-05-11 23:20:33,484 root INFO copying falcon/routing/converters.py -> build/lib.linux-i686-cpython-312/falcon/routing 2025-05-11 23:20:33,485 root INFO copying falcon/routing/util.py -> build/lib.linux-i686-cpython-312/falcon/routing 2025-05-11 23:20:33,485 root INFO copying falcon/routing/__init__.py -> build/lib.linux-i686-cpython-312/falcon/routing 2025-05-11 23:20:33,485 root INFO copying falcon/routing/compiled.py -> build/lib.linux-i686-cpython-312/falcon/routing 2025-05-11 23:20:33,486 root INFO copying falcon/routing/static.py -> build/lib.linux-i686-cpython-312/falcon/routing 2025-05-11 23:20:33,486 root INFO creating build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,486 root INFO copying falcon/media/base.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,487 root INFO copying falcon/media/__init__.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,487 root INFO copying falcon/media/multipart.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,487 root INFO copying falcon/media/msgpack.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,487 root INFO copying falcon/media/json.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,488 root INFO copying falcon/media/urlencoded.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,488 root INFO copying falcon/media/handlers.py -> build/lib.linux-i686-cpython-312/falcon/media 2025-05-11 23:20:33,489 root INFO creating build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,489 root INFO copying falcon/asgi/response.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,489 root INFO copying falcon/asgi/app.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,490 root INFO copying falcon/asgi/reader.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,490 root INFO copying falcon/asgi/request.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,490 root INFO copying falcon/asgi/_asgi_helpers.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,491 root INFO copying falcon/asgi/_request_helpers.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,491 root INFO copying falcon/asgi/__init__.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,491 root INFO copying falcon/asgi/ws.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,492 root INFO copying falcon/asgi/structures.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,492 root INFO copying falcon/asgi/multipart.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,492 root INFO copying falcon/asgi/stream.py -> build/lib.linux-i686-cpython-312/falcon/asgi 2025-05-11 23:20:33,493 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench 2025-05-11 23:20:33,493 root INFO copying falcon/bench/create.py -> build/lib.linux-i686-cpython-312/falcon/bench 2025-05-11 23:20:33,493 root INFO copying falcon/bench/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench 2025-05-11 23:20:33,493 root INFO copying falcon/bench/bench.py -> build/lib.linux-i686-cpython-312/falcon/bench 2025-05-11 23:20:33,494 root INFO creating build/lib.linux-i686-cpython-312/falcon/cyutil 2025-05-11 23:20:33,494 root INFO copying falcon/cyutil/__init__.py -> build/lib.linux-i686-cpython-312/falcon/cyutil 2025-05-11 23:20:33,494 root INFO creating build/lib.linux-i686-cpython-312/falcon/cmd 2025-05-11 23:20:33,495 root INFO copying falcon/cmd/__init__.py -> build/lib.linux-i686-cpython-312/falcon/cmd 2025-05-11 23:20:33,495 root INFO copying falcon/cmd/bench.py -> build/lib.linux-i686-cpython-312/falcon/cmd 2025-05-11 23:20:33,495 root INFO copying falcon/cmd/inspect_app.py -> build/lib.linux-i686-cpython-312/falcon/cmd 2025-05-11 23:20:33,496 root INFO creating build/lib.linux-i686-cpython-312/falcon/media/validators 2025-05-11 23:20:33,496 root INFO copying falcon/media/validators/__init__.py -> build/lib.linux-i686-cpython-312/falcon/media/validators 2025-05-11 23:20:33,496 root INFO copying falcon/media/validators/jsonschema.py -> build/lib.linux-i686-cpython-312/falcon/media/validators 2025-05-11 23:20:33,497 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,497 root INFO copying falcon/bench/queues/queues.py -> build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,497 root INFO copying falcon/bench/queues/stats.py -> build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,497 root INFO copying falcon/bench/queues/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,498 root INFO copying falcon/bench/queues/messages.py -> build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,498 root INFO copying falcon/bench/queues/api.py -> build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,498 root INFO copying falcon/bench/queues/claims.py -> build/lib.linux-i686-cpython-312/falcon/bench/queues 2025-05-11 23:20:33,499 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/nuts 2025-05-11 23:20:33,499 root INFO copying falcon/bench/nuts/setup.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts 2025-05-11 23:20:33,499 root INFO copying falcon/bench/nuts/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts 2025-05-11 23:20:33,500 root INFO copying falcon/bench/nuts/config.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts 2025-05-11 23:20:33,500 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/dj 2025-05-11 23:20:33,500 root INFO copying falcon/bench/dj/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj 2025-05-11 23:20:33,500 root INFO copying falcon/bench/dj/manage.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj 2025-05-11 23:20:33,501 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts 2025-05-11 23:20:33,501 root INFO copying falcon/bench/nuts/nuts/app.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts 2025-05-11 23:20:33,501 root INFO copying falcon/bench/nuts/nuts/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts 2025-05-11 23:20:33,502 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/model 2025-05-11 23:20:33,502 root INFO copying falcon/bench/nuts/nuts/model/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/model 2025-05-11 23:20:33,502 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/controllers 2025-05-11 23:20:33,503 root INFO copying falcon/bench/nuts/nuts/controllers/root.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/controllers 2025-05-11 23:20:33,503 root INFO copying falcon/bench/nuts/nuts/controllers/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/controllers 2025-05-11 23:20:33,503 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 23:20:33,504 root INFO copying falcon/bench/nuts/nuts/tests/test_units.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 23:20:33,504 root INFO copying falcon/bench/nuts/nuts/tests/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 23:20:33,504 root INFO copying falcon/bench/nuts/nuts/tests/test_functional.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 23:20:33,505 root INFO copying falcon/bench/nuts/nuts/tests/config.py -> build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 23:20:33,505 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,505 root INFO copying falcon/bench/dj/hello/tests.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,506 root INFO copying falcon/bench/dj/hello/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,506 root INFO copying falcon/bench/dj/hello/apps.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,506 root INFO copying falcon/bench/dj/hello/models.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,507 root INFO copying falcon/bench/dj/hello/admin.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,507 root INFO copying falcon/bench/dj/hello/views.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello 2025-05-11 23:20:33,507 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/dj/dj 2025-05-11 23:20:33,507 root INFO copying falcon/bench/dj/dj/settings.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/dj 2025-05-11 23:20:33,508 root INFO copying falcon/bench/dj/dj/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/dj 2025-05-11 23:20:33,508 root INFO copying falcon/bench/dj/dj/wsgi.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/dj 2025-05-11 23:20:33,508 root INFO copying falcon/bench/dj/dj/urls.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/dj 2025-05-11 23:20:33,509 root INFO creating build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/migrations 2025-05-11 23:20:33,509 root INFO copying falcon/bench/dj/hello/migrations/__init__.py -> build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/migrations 2025-05-11 23:20:33,509 root INFO running egg_info 2025-05-11 23:20:33,522 root INFO creating falcon.egg-info 2025-05-11 23:20:33,522 root INFO writing falcon.egg-info/PKG-INFO 2025-05-11 23:20:33,523 root INFO writing dependency_links to falcon.egg-info/dependency_links.txt 2025-05-11 23:20:33,524 root INFO writing entry points to falcon.egg-info/entry_points.txt 2025-05-11 23:20:33,524 root INFO writing requirements to falcon.egg-info/requires.txt 2025-05-11 23:20:33,525 root INFO writing top-level names to falcon.egg-info/top_level.txt 2025-05-11 23:20:33,525 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt' 2025-05-11 23:20:33,546 root INFO reading manifest file 'falcon.egg-info/SOURCES.txt' 2025-05-11 23:20:33,546 root INFO reading manifest template 'MANIFEST.in' 2025-05-11 23:20:33,572 root WARNING no previously-included directories found matching 'docs/_build' 2025-05-11 23:20:33,572 root INFO adding license file 'LICENSE' 2025-05-11 23:20:33,578 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt' 2025-05-11 23:20:33,584 root INFO copying falcon/py.typed -> build/lib.linux-i686-cpython-312/falcon 2025-05-11 23:20:33,584 root INFO copying falcon/cyutil/misc.pyx -> build/lib.linux-i686-cpython-312/falcon/cyutil 2025-05-11 23:20:33,585 root INFO copying falcon/cyutil/reader.pyx -> build/lib.linux-i686-cpython-312/falcon/cyutil 2025-05-11 23:20:33,585 root INFO copying falcon/cyutil/uri.pyx -> build/lib.linux-i686-cpython-312/falcon/cyutil 2025-05-11 23:20:33,588 root INFO running build_ext Compiling falcon/status_codes.py because it changed. [1/1] Cythonizing falcon/status_codes.py 2025-05-11 23:20:34,186 root INFO building 'falcon.status_codes' extension 2025-05-11 23:20:34,187 root INFO creating build/temp.linux-i686-cpython-312/falcon 2025-05-11 23:20:34,187 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/status_codes.c -o build/temp.linux-i686-cpython-312/falcon/status_codes.o 2025-05-11 23:20:41,573 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/status_codes.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/status_codes.cpython-312-i386-linux-musl.so Compiling falcon/response.py because it changed. [1/1] Cythonizing falcon/response.py 2025-05-11 23:20:41,884 root INFO building 'falcon.response' extension 2025-05-11 23:20:41,884 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/response.c -o build/temp.linux-i686-cpython-312/falcon/response.o 2025-05-11 23:20:52,299 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/response.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/response.cpython-312-i386-linux-musl.so Compiling falcon/app.py because it changed. [1/1] Cythonizing falcon/app.py 2025-05-11 23:20:52,628 root INFO building 'falcon.app' extension 2025-05-11 23:20:52,629 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/app.c -o build/temp.linux-i686-cpython-312/falcon/app.o 2025-05-11 23:21:03,934 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/app.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/app.cpython-312-i386-linux-musl.so Compiling falcon/uri.py because it changed. [1/1] Cythonizing falcon/uri.py 2025-05-11 23:21:03,968 root INFO building 'falcon.uri' extension 2025-05-11 23:21:03,968 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/uri.c -o build/temp.linux-i686-cpython-312/falcon/uri.o 2025-05-11 23:21:04,593 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/uri.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/uri.cpython-312-i386-linux-musl.so Compiling falcon/request.py because it changed. [1/1] Cythonizing falcon/request.py 2025-05-11 23:21:05,330 root INFO building 'falcon.request' extension 2025-05-11 23:21:05,330 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/request.c -o build/temp.linux-i686-cpython-312/falcon/request.o 2025-05-11 23:21:25,083 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/request.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/request.cpython-312-i386-linux-musl.so Compiling falcon/http_status.py because it changed. [1/1] Cythonizing falcon/http_status.py 2025-05-11 23:21:25,138 root INFO building 'falcon.http_status' extension 2025-05-11 23:21:25,138 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/http_status.c -o build/temp.linux-i686-cpython-312/falcon/http_status.o 2025-05-11 23:21:26,796 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/http_status.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/http_status.cpython-312-i386-linux-musl.so Compiling falcon/response_helpers.py because it changed. [1/1] Cythonizing falcon/response_helpers.py 2025-05-11 23:21:26,914 root INFO building 'falcon.response_helpers' extension 2025-05-11 23:21:26,914 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/response_helpers.c -o build/temp.linux-i686-cpython-312/falcon/response_helpers.o 2025-05-11 23:21:29,728 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/response_helpers.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/response_helpers.cpython-312-i386-linux-musl.so Compiling falcon/redirects.py because it changed. [1/1] Cythonizing falcon/redirects.py 2025-05-11 23:21:29,802 root INFO building 'falcon.redirects' extension 2025-05-11 23:21:29,802 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/redirects.c -o build/temp.linux-i686-cpython-312/falcon/redirects.o 2025-05-11 23:21:32,070 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/redirects.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/redirects.cpython-312-i386-linux-musl.so Compiling falcon/version.py because it changed. [1/1] Cythonizing falcon/version.py 2025-05-11 23:21:32,106 root INFO building 'falcon.version' extension 2025-05-11 23:21:32,106 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/version.c -o build/temp.linux-i686-cpython-312/falcon/version.o 2025-05-11 23:21:32,568 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/version.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/version.cpython-312-i386-linux-musl.so Compiling falcon/constants.py because it changed. [1/1] Cythonizing falcon/constants.py 2025-05-11 23:21:32,683 root INFO building 'falcon.constants' extension 2025-05-11 23:21:32,683 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/constants.c -o build/temp.linux-i686-cpython-312/falcon/constants.o 2025-05-11 23:21:36,283 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/constants.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/constants.cpython-312-i386-linux-musl.so Compiling falcon/request_helpers.py because it changed. [1/1] Cythonizing falcon/request_helpers.py 2025-05-11 23:21:36,461 root INFO building 'falcon.request_helpers' extension 2025-05-11 23:21:36,462 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/request_helpers.c -o build/temp.linux-i686-cpython-312/falcon/request_helpers.o 2025-05-11 23:21:39,009 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/request_helpers.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/request_helpers.cpython-312-i386-linux-musl.so Compiling falcon/_typing.py because it changed. [1/1] Cythonizing falcon/_typing.py 2025-05-11 23:21:39,144 root INFO building 'falcon._typing' extension 2025-05-11 23:21:39,144 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/_typing.c -o build/temp.linux-i686-cpython-312/falcon/_typing.o 2025-05-11 23:21:44,987 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/_typing.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/_typing.cpython-312-i386-linux-musl.so Compiling falcon/app_helpers.py because it changed. [1/1] Cythonizing falcon/app_helpers.py 2025-05-11 23:21:45,148 root INFO building 'falcon.app_helpers' extension 2025-05-11 23:21:45,148 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/app_helpers.c -o build/temp.linux-i686-cpython-312/falcon/app_helpers.o 2025-05-11 23:21:50,746 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/app_helpers.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/app_helpers.cpython-312-i386-linux-musl.so Compiling falcon/forwarded.py because it changed. [1/1] Cythonizing falcon/forwarded.py 2025-05-11 23:21:50,841 root INFO building 'falcon.forwarded' extension 2025-05-11 23:21:50,842 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/forwarded.c -o build/temp.linux-i686-cpython-312/falcon/forwarded.o 2025-05-11 23:21:54,102 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/forwarded.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/forwarded.cpython-312-i386-linux-musl.so Compiling falcon/middleware.py because it changed. [1/1] Cythonizing falcon/middleware.py 2025-05-11 23:21:54,185 root INFO building 'falcon.middleware' extension 2025-05-11 23:21:54,185 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/middleware.c -o build/temp.linux-i686-cpython-312/falcon/middleware.o 2025-05-11 23:21:57,157 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/middleware.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/middleware.cpython-312-i386-linux-musl.so Compiling falcon/stream.py because it changed. [1/1] Cythonizing falcon/stream.py 2025-05-11 23:21:57,296 root INFO building 'falcon.stream' extension 2025-05-11 23:21:57,296 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/stream.c -o build/temp.linux-i686-cpython-312/falcon/stream.o 2025-05-11 23:22:00,366 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/stream.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/stream.cpython-312-i386-linux-musl.so Compiling falcon/asgi_spec.py because it changed. [1/1] Cythonizing falcon/asgi_spec.py 2025-05-11 23:22:00,412 root INFO building 'falcon.asgi_spec' extension 2025-05-11 23:22:00,413 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/asgi_spec.c -o build/temp.linux-i686-cpython-312/falcon/asgi_spec.o 2025-05-11 23:22:01,752 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/asgi_spec.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/asgi_spec.cpython-312-i386-linux-musl.so Compiling falcon/http_error.py because it changed. [1/1] Cythonizing falcon/http_error.py 2025-05-11 23:22:01,909 root INFO building 'falcon.http_error' extension 2025-05-11 23:22:01,909 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/http_error.c -o build/temp.linux-i686-cpython-312/falcon/http_error.o 2025-05-11 23:22:05,394 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/http_error.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/http_error.cpython-312-i386-linux-musl.so Compiling falcon/typing.py because it changed. [1/1] Cythonizing falcon/typing.py 2025-05-11 23:22:05,461 root INFO building 'falcon.typing' extension 2025-05-11 23:22:05,461 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/typing.c -o build/temp.linux-i686-cpython-312/falcon/typing.o 2025-05-11 23:22:07,886 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/typing.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/typing.cpython-312-i386-linux-musl.so Compiling falcon/errors.py because it changed. [1/1] Cythonizing falcon/errors.py 2025-05-11 23:22:08,358 root INFO building 'falcon.errors' extension 2025-05-11 23:22:08,358 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/errors.c -o build/temp.linux-i686-cpython-312/falcon/errors.o 2025-05-11 23:22:20,625 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/errors.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/errors.cpython-312-i386-linux-musl.so Compiling falcon/cyutil/misc.pyx because it changed. [1/1] Cythonizing falcon/cyutil/misc.pyx 2025-05-11 23:22:20,682 root INFO building 'falcon.cyutil.misc' extension 2025-05-11 23:22:20,683 root INFO creating build/temp.linux-i686-cpython-312/falcon/cyutil 2025-05-11 23:22:20,683 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/cyutil/misc.c -o build/temp.linux-i686-cpython-312/falcon/cyutil/misc.o 2025-05-11 23:22:21,815 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/cyutil/misc.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/cyutil/misc.cpython-312-i386-linux-musl.so Compiling falcon/cyutil/reader.pyx because it changed. [1/1] Cythonizing falcon/cyutil/reader.pyx 2025-05-11 23:22:22,041 root INFO building 'falcon.cyutil.reader' extension 2025-05-11 23:22:22,042 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/cyutil/reader.c -o build/temp.linux-i686-cpython-312/falcon/cyutil/reader.o 2025-05-11 23:22:25,659 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/cyutil/reader.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/cyutil/reader.cpython-312-i386-linux-musl.so Compiling falcon/cyutil/uri.pyx because it changed. [1/1] Cythonizing falcon/cyutil/uri.pyx 2025-05-11 23:22:25,830 root INFO building 'falcon.cyutil.uri' extension 2025-05-11 23:22:25,830 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/cyutil/uri.c -o build/temp.linux-i686-cpython-312/falcon/cyutil/uri.o 2025-05-11 23:22:27,779 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/cyutil/uri.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/cyutil/uri.cpython-312-i386-linux-musl.so Compiling falcon/media/base.py because it changed. [1/1] Cythonizing falcon/media/base.py 2025-05-11 23:22:27,863 root INFO building 'falcon.media.base' extension 2025-05-11 23:22:27,863 root INFO creating build/temp.linux-i686-cpython-312/falcon/media 2025-05-11 23:22:27,863 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/base.c -o build/temp.linux-i686-cpython-312/falcon/media/base.o 2025-05-11 23:22:30,999 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/media/base.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/media/base.cpython-312-i386-linux-musl.so Compiling falcon/media/multipart.py because it changed. [1/1] Cythonizing falcon/media/multipart.py 2025-05-11 23:22:31,286 root INFO building 'falcon.media.multipart' extension 2025-05-11 23:22:31,286 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/multipart.c -o build/temp.linux-i686-cpython-312/falcon/media/multipart.o 2025-05-11 23:22:39,197 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/media/multipart.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/media/multipart.cpython-312-i386-linux-musl.so Compiling falcon/media/msgpack.py because it changed. [1/1] Cythonizing falcon/media/msgpack.py 2025-05-11 23:22:39,296 root INFO building 'falcon.media.msgpack' extension 2025-05-11 23:22:39,296 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/msgpack.c -o build/temp.linux-i686-cpython-312/falcon/media/msgpack.o 2025-05-11 23:22:43,030 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/media/msgpack.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/media/msgpack.cpython-312-i386-linux-musl.so Compiling falcon/media/json.py because it changed. [1/1] Cythonizing falcon/media/json.py 2025-05-11 23:22:43,196 root INFO building 'falcon.media.json' extension 2025-05-11 23:22:43,197 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/json.c -o build/temp.linux-i686-cpython-312/falcon/media/json.o 2025-05-11 23:22:47,320 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/media/json.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/media/json.cpython-312-i386-linux-musl.so Compiling falcon/media/urlencoded.py because it changed. [1/1] Cythonizing falcon/media/urlencoded.py 2025-05-11 23:22:47,396 root INFO building 'falcon.media.urlencoded' extension 2025-05-11 23:22:47,396 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/urlencoded.c -o build/temp.linux-i686-cpython-312/falcon/media/urlencoded.o 2025-05-11 23:22:50,379 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/media/urlencoded.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/media/urlencoded.cpython-312-i386-linux-musl.so Compiling falcon/media/handlers.py because it changed. [1/1] Cythonizing falcon/media/handlers.py 2025-05-11 23:22:50,499 root INFO building 'falcon.media.handlers' extension 2025-05-11 23:22:50,500 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/handlers.c -o build/temp.linux-i686-cpython-312/falcon/media/handlers.o 2025-05-11 23:22:54,940 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/media/handlers.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/media/handlers.cpython-312-i386-linux-musl.so Compiling falcon/routing/converters.py because it changed. [1/1] Cythonizing falcon/routing/converters.py 2025-05-11 23:22:55,052 root INFO building 'falcon.routing.converters' extension 2025-05-11 23:22:55,053 root INFO creating build/temp.linux-i686-cpython-312/falcon/routing 2025-05-11 23:22:55,053 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/converters.c -o build/temp.linux-i686-cpython-312/falcon/routing/converters.o 2025-05-11 23:22:58,920 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/routing/converters.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/routing/converters.cpython-312-i386-linux-musl.so Compiling falcon/routing/util.py because it changed. [1/1] Cythonizing falcon/routing/util.py 2025-05-11 23:22:58,990 root INFO building 'falcon.routing.util' extension 2025-05-11 23:22:58,990 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/util.c -o build/temp.linux-i686-cpython-312/falcon/routing/util.o 2025-05-11 23:23:01,099 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/routing/util.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/routing/util.cpython-312-i386-linux-musl.so Compiling falcon/routing/compiled.py because it changed. [1/1] Cythonizing falcon/routing/compiled.py 2025-05-11 23:23:01,622 root INFO building 'falcon.routing.compiled' extension 2025-05-11 23:23:01,623 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/compiled.c -o build/temp.linux-i686-cpython-312/falcon/routing/compiled.o 2025-05-11 23:23:17,738 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/routing/compiled.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/routing/compiled.cpython-312-i386-linux-musl.so Compiling falcon/routing/static.py because it changed. [1/1] Cythonizing falcon/routing/static.py 2025-05-11 23:23:17,906 root INFO building 'falcon.routing.static' extension 2025-05-11 23:23:17,906 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/static.c -o build/temp.linux-i686-cpython-312/falcon/routing/static.o 2025-05-11 23:23:24,232 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/routing/static.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/routing/static.cpython-312-i386-linux-musl.so Compiling falcon/util/deprecation.py because it changed. [1/1] Cythonizing falcon/util/deprecation.py 2025-05-11 23:23:24,318 root INFO building 'falcon.util.deprecation' extension 2025-05-11 23:23:24,318 root INFO creating build/temp.linux-i686-cpython-312/falcon/util 2025-05-11 23:23:24,319 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/deprecation.c -o build/temp.linux-i686-cpython-312/falcon/util/deprecation.o 2025-05-11 23:23:26,962 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/util/deprecation.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/util/deprecation.cpython-312-i386-linux-musl.so Compiling falcon/util/uri.py because it changed. [1/1] Cythonizing falcon/util/uri.py 2025-05-11 23:23:27,132 root INFO building 'falcon.util.uri' extension 2025-05-11 23:23:27,132 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/uri.c -o build/temp.linux-i686-cpython-312/falcon/util/uri.o 2025-05-11 23:23:32,210 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/util/uri.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/util/uri.cpython-312-i386-linux-musl.so Compiling falcon/util/structures.py because it changed. [1/1] Cythonizing falcon/util/structures.py 2025-05-11 23:23:32,454 root INFO building 'falcon.util.structures' extension 2025-05-11 23:23:32,454 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/structures.c -o build/temp.linux-i686-cpython-312/falcon/util/structures.o 2025-05-11 23:23:38,609 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/util/structures.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/util/structures.cpython-312-i386-linux-musl.so Compiling falcon/util/mediatypes.py because it changed. [1/1] Cythonizing falcon/util/mediatypes.py 2025-05-11 23:23:38,830 root INFO building 'falcon.util.mediatypes' extension 2025-05-11 23:23:38,831 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/mediatypes.c -o build/temp.linux-i686-cpython-312/falcon/util/mediatypes.o 2025-05-11 23:23:44,468 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/util/mediatypes.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/util/mediatypes.cpython-312-i386-linux-musl.so Compiling falcon/util/time.py because it changed. [1/1] Cythonizing falcon/util/time.py 2025-05-11 23:23:44,522 root INFO building 'falcon.util.time' extension 2025-05-11 23:23:44,522 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/time.c -o build/temp.linux-i686-cpython-312/falcon/util/time.o 2025-05-11 23:23:46,358 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/util/time.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/util/time.cpython-312-i386-linux-musl.so Compiling falcon/util/misc.py because it changed. [1/1] Cythonizing falcon/util/misc.py 2025-05-11 23:23:46,515 root INFO building 'falcon.util.misc' extension 2025-05-11 23:23:46,516 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/misc.c -o build/temp.linux-i686-cpython-312/falcon/util/misc.o 2025-05-11 23:23:51,566 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-i686-cpython-312/falcon/util/misc.o -L/usr/lib -o build/lib.linux-i686-cpython-312/falcon/util/misc.cpython-312-i386-linux-musl.so 2025-05-11 23:23:51,607 root INFO installing to build/bdist.linux-i686/wheel 2025-05-11 23:23:51,607 root INFO running install 2025-05-11 23:23:51,620 root INFO running install_lib 2025-05-11 23:23:51,633 root INFO creating build/bdist.linux-i686/wheel 2025-05-11 23:23:51,633 root INFO creating build/bdist.linux-i686/wheel/falcon 2025-05-11 23:23:51,633 root INFO copying build/lib.linux-i686-cpython-312/falcon/status_codes.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,634 root INFO copying build/lib.linux-i686-cpython-312/falcon/inspect.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,634 root INFO copying build/lib.linux-i686-cpython-312/falcon/hooks.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,634 root INFO copying build/lib.linux-i686-cpython-312/falcon/response.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,634 root INFO copying build/lib.linux-i686-cpython-312/falcon/app.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,635 root INFO creating build/bdist.linux-i686/wheel/falcon/util 2025-05-11 23:23:51,635 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/deprecation.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,635 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/time.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,635 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/reader.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,636 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/uri.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,636 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/uri.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,636 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/structures.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,637 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/misc.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,637 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/__init__.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,637 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/structures.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,638 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/deprecation.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,638 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/sync.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,638 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/mediatypes.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,638 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/mediatypes.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,639 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/time.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,639 root INFO copying build/lib.linux-i686-cpython-312/falcon/util/misc.py -> build/bdist.linux-i686/wheel/./falcon/util 2025-05-11 23:23:51,639 root INFO copying build/lib.linux-i686-cpython-312/falcon/uri.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,639 root INFO copying build/lib.linux-i686-cpython-312/falcon/request.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,640 root INFO copying build/lib.linux-i686-cpython-312/falcon/http_status.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,640 root INFO creating build/bdist.linux-i686/wheel/falcon/testing 2025-05-11 23:23:51,640 root INFO copying build/lib.linux-i686-cpython-312/falcon/testing/srmock.py -> build/bdist.linux-i686/wheel/./falcon/testing 2025-05-11 23:23:51,640 root INFO copying build/lib.linux-i686-cpython-312/falcon/testing/__init__.py -> build/bdist.linux-i686/wheel/./falcon/testing 2025-05-11 23:23:51,641 root INFO copying build/lib.linux-i686-cpython-312/falcon/testing/client.py -> build/bdist.linux-i686/wheel/./falcon/testing 2025-05-11 23:23:51,641 root INFO copying build/lib.linux-i686-cpython-312/falcon/testing/test_case.py -> build/bdist.linux-i686/wheel/./falcon/testing 2025-05-11 23:23:51,641 root INFO copying build/lib.linux-i686-cpython-312/falcon/testing/helpers.py -> build/bdist.linux-i686/wheel/./falcon/testing 2025-05-11 23:23:51,641 root INFO copying build/lib.linux-i686-cpython-312/falcon/testing/resource.py -> build/bdist.linux-i686/wheel/./falcon/testing 2025-05-11 23:23:51,642 root INFO copying build/lib.linux-i686-cpython-312/falcon/uri.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,642 root INFO copying build/lib.linux-i686-cpython-312/falcon/response_helpers.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,642 root INFO copying build/lib.linux-i686-cpython-312/falcon/constants.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,643 root INFO copying build/lib.linux-i686-cpython-312/falcon/http_error.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,643 root INFO copying build/lib.linux-i686-cpython-312/falcon/forwarded.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,643 root INFO copying build/lib.linux-i686-cpython-312/falcon/redirects.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,643 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi_spec.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,644 root INFO creating build/bdist.linux-i686/wheel/falcon/routing 2025-05-11 23:23:51,644 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/converters.py -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,644 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/util.py -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,644 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/converters.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,645 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/__init__.py -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,645 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/util.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,645 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/static.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,646 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/compiled.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,646 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/compiled.py -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,647 root INFO copying build/lib.linux-i686-cpython-312/falcon/routing/static.py -> build/bdist.linux-i686/wheel/./falcon/routing 2025-05-11 23:23:51,647 root INFO copying build/lib.linux-i686-cpython-312/falcon/response.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,647 root INFO copying build/lib.linux-i686-cpython-312/falcon/version.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,647 root INFO copying build/lib.linux-i686-cpython-312/falcon/constants.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,648 root INFO copying build/lib.linux-i686-cpython-312/falcon/response_helpers.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,648 root INFO copying build/lib.linux-i686-cpython-312/falcon/__init__.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,648 root INFO copying build/lib.linux-i686-cpython-312/falcon/middleware.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,649 root INFO copying build/lib.linux-i686-cpython-312/falcon/status_codes.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,649 root INFO copying build/lib.linux-i686-cpython-312/falcon/request_helpers.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,649 root INFO creating build/bdist.linux-i686/wheel/falcon/media 2025-05-11 23:23:51,650 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/msgpack.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,650 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/handlers.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,650 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/base.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,650 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/base.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,651 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/__init__.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,651 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/json.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,651 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/multipart.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,652 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/msgpack.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,652 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/json.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,652 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/urlencoded.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,652 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/handlers.py -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,653 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/multipart.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,653 root INFO creating build/bdist.linux-i686/wheel/falcon/media/validators 2025-05-11 23:23:51,653 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/validators/__init__.py -> build/bdist.linux-i686/wheel/./falcon/media/validators 2025-05-11 23:23:51,654 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/validators/jsonschema.py -> build/bdist.linux-i686/wheel/./falcon/media/validators 2025-05-11 23:23:51,654 root INFO copying build/lib.linux-i686-cpython-312/falcon/media/urlencoded.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/media 2025-05-11 23:23:51,654 root INFO copying build/lib.linux-i686-cpython-312/falcon/request_helpers.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,655 root INFO copying build/lib.linux-i686-cpython-312/falcon/_typing.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,655 root INFO copying build/lib.linux-i686-cpython-312/falcon/request.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,656 root INFO copying build/lib.linux-i686-cpython-312/falcon/_typing.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,656 root INFO creating build/bdist.linux-i686/wheel/falcon/asgi 2025-05-11 23:23:51,656 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/response.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,656 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/app.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,657 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/reader.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,657 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/request.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,657 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/_asgi_helpers.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,657 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/_request_helpers.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,658 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/__init__.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,658 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/ws.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,658 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/structures.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,658 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/multipart.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,659 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi/stream.py -> build/bdist.linux-i686/wheel/./falcon/asgi 2025-05-11 23:23:51,659 root INFO copying build/lib.linux-i686-cpython-312/falcon/app_helpers.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,659 root INFO copying build/lib.linux-i686-cpython-312/falcon/stream.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,659 root INFO copying build/lib.linux-i686-cpython-312/falcon/forwarded.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,660 root INFO copying build/lib.linux-i686-cpython-312/falcon/middleware.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,660 root INFO copying build/lib.linux-i686-cpython-312/falcon/responders.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,660 root INFO copying build/lib.linux-i686-cpython-312/falcon/typing.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,660 root INFO copying build/lib.linux-i686-cpython-312/falcon/app.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,661 root INFO copying build/lib.linux-i686-cpython-312/falcon/stream.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,661 root INFO copying build/lib.linux-i686-cpython-312/falcon/app_helpers.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,662 root INFO copying build/lib.linux-i686-cpython-312/falcon/redirects.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,662 root INFO copying build/lib.linux-i686-cpython-312/falcon/py.typed -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,662 root INFO creating build/bdist.linux-i686/wheel/falcon/bench 2025-05-11 23:23:51,662 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/create.py -> build/bdist.linux-i686/wheel/./falcon/bench 2025-05-11 23:23:51,663 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench 2025-05-11 23:23:51,663 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/bench.py -> build/bdist.linux-i686/wheel/./falcon/bench 2025-05-11 23:23:51,663 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/queues 2025-05-11 23:23:51,663 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/queues/queues.py -> build/bdist.linux-i686/wheel/./falcon/bench/queues 2025-05-11 23:23:51,664 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/queues/stats.py -> build/bdist.linux-i686/wheel/./falcon/bench/queues 2025-05-11 23:23:51,664 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/queues/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/queues 2025-05-11 23:23:51,664 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/queues/messages.py -> build/bdist.linux-i686/wheel/./falcon/bench/queues 2025-05-11 23:23:51,664 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/queues/api.py -> build/bdist.linux-i686/wheel/./falcon/bench/queues 2025-05-11 23:23:51,664 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/queues/claims.py -> build/bdist.linux-i686/wheel/./falcon/bench/queues 2025-05-11 23:23:51,665 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/nuts 2025-05-11 23:23:51,665 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/setup.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts 2025-05-11 23:23:51,665 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts 2025-05-11 23:23:51,665 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/nuts/nuts 2025-05-11 23:23:51,666 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/app.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts 2025-05-11 23:23:51,666 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/nuts/nuts/model 2025-05-11 23:23:51,666 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/model/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/model 2025-05-11 23:23:51,666 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts 2025-05-11 23:23:51,667 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/nuts/nuts/controllers 2025-05-11 23:23:51,667 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/controllers/root.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/controllers 2025-05-11 23:23:51,667 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/controllers/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/controllers 2025-05-11 23:23:51,667 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/nuts/nuts/tests 2025-05-11 23:23:51,668 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests/test_units.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 23:23:51,668 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 23:23:51,668 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests/test_functional.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 23:23:51,668 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/nuts/tests/config.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 23:23:51,668 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/nuts/config.py -> build/bdist.linux-i686/wheel/./falcon/bench/nuts 2025-05-11 23:23:51,669 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/dj 2025-05-11 23:23:51,669 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/dj/hello 2025-05-11 23:23:51,669 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/tests.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello 2025-05-11 23:23:51,670 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello 2025-05-11 23:23:51,670 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/apps.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello 2025-05-11 23:23:51,670 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/models.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello 2025-05-11 23:23:51,670 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/admin.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello 2025-05-11 23:23:51,670 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/dj/hello/migrations 2025-05-11 23:23:51,671 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/migrations/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello/migrations 2025-05-11 23:23:51,671 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/hello/views.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/hello 2025-05-11 23:23:51,671 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj 2025-05-11 23:23:51,671 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/manage.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj 2025-05-11 23:23:51,672 root INFO creating build/bdist.linux-i686/wheel/falcon/bench/dj/dj 2025-05-11 23:23:51,672 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/dj/settings.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/dj 2025-05-11 23:23:51,672 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/dj/__init__.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/dj 2025-05-11 23:23:51,672 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/dj/wsgi.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/dj 2025-05-11 23:23:51,673 root INFO copying build/lib.linux-i686-cpython-312/falcon/bench/dj/dj/urls.py -> build/bdist.linux-i686/wheel/./falcon/bench/dj/dj 2025-05-11 23:23:51,673 root INFO copying build/lib.linux-i686-cpython-312/falcon/asgi_spec.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,673 root INFO creating build/bdist.linux-i686/wheel/falcon/cyutil 2025-05-11 23:23:51,673 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/uri.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,674 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/misc.pyx -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,674 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/misc.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,674 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/__init__.py -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,674 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/reader.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,675 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/reader.pyx -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,675 root INFO copying build/lib.linux-i686-cpython-312/falcon/cyutil/uri.pyx -> build/bdist.linux-i686/wheel/./falcon/cyutil 2025-05-11 23:23:51,675 root INFO copying build/lib.linux-i686-cpython-312/falcon/http_error.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,675 root INFO copying build/lib.linux-i686-cpython-312/falcon/typing.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,676 root INFO copying build/lib.linux-i686-cpython-312/falcon/errors.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,676 root INFO copying build/lib.linux-i686-cpython-312/falcon/version.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,676 root INFO copying build/lib.linux-i686-cpython-312/falcon/http_status.cpython-312-i386-linux-musl.so -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,677 root INFO creating build/bdist.linux-i686/wheel/falcon/cmd 2025-05-11 23:23:51,677 root INFO copying build/lib.linux-i686-cpython-312/falcon/cmd/__init__.py -> build/bdist.linux-i686/wheel/./falcon/cmd 2025-05-11 23:23:51,677 root INFO copying build/lib.linux-i686-cpython-312/falcon/cmd/bench.py -> build/bdist.linux-i686/wheel/./falcon/cmd 2025-05-11 23:23:51,677 root INFO copying build/lib.linux-i686-cpython-312/falcon/cmd/inspect_app.py -> build/bdist.linux-i686/wheel/./falcon/cmd 2025-05-11 23:23:51,678 root INFO copying build/lib.linux-i686-cpython-312/falcon/errors.py -> build/bdist.linux-i686/wheel/./falcon 2025-05-11 23:23:51,678 root INFO running install_egg_info 2025-05-11 23:23:51,691 root INFO Copying falcon.egg-info to build/bdist.linux-i686/wheel/./falcon-4.0.2-py3.12.egg-info 2025-05-11 23:23:51,692 root INFO running install_scripts 2025-05-11 23:23:51,702 root INFO creating build/bdist.linux-i686/wheel/falcon-4.0.2.dist-info/WHEEL 2025-05-11 23:23:51,702 wheel INFO creating '/home/buildozer/aports/community/py3-falcon/src/falcon-4.0.2/dist/.tmp-3zaynmv6/falcon-4.0.2-cp312-cp312-linux_i686.whl' and adding 'build/bdist.linux-i686/wheel' to it 2025-05-11 23:23:51,703 wheel INFO adding 'falcon/__init__.py' 2025-05-11 23:23:51,704 wheel INFO adding 'falcon/_typing.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,705 wheel INFO adding 'falcon/_typing.py' 2025-05-11 23:23:51,705 wheel INFO adding 'falcon/app.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,707 wheel INFO adding 'falcon/app.py' 2025-05-11 23:23:51,707 wheel INFO adding 'falcon/app_helpers.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,708 wheel INFO adding 'falcon/app_helpers.py' 2025-05-11 23:23:51,709 wheel INFO adding 'falcon/asgi_spec.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,709 wheel INFO adding 'falcon/asgi_spec.py' 2025-05-11 23:23:51,709 wheel INFO adding 'falcon/constants.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,710 wheel INFO adding 'falcon/constants.py' 2025-05-11 23:23:51,711 wheel INFO adding 'falcon/errors.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,713 wheel INFO adding 'falcon/errors.py' 2025-05-11 23:23:51,713 wheel INFO adding 'falcon/forwarded.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,714 wheel INFO adding 'falcon/forwarded.py' 2025-05-11 23:23:51,714 wheel INFO adding 'falcon/hooks.py' 2025-05-11 23:23:51,715 wheel INFO adding 'falcon/http_error.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,715 wheel INFO adding 'falcon/http_error.py' 2025-05-11 23:23:51,716 wheel INFO adding 'falcon/http_status.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,716 wheel INFO adding 'falcon/http_status.py' 2025-05-11 23:23:51,717 wheel INFO adding 'falcon/inspect.py' 2025-05-11 23:23:51,717 wheel INFO adding 'falcon/middleware.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,718 wheel INFO adding 'falcon/middleware.py' 2025-05-11 23:23:51,718 wheel INFO adding 'falcon/py.typed' 2025-05-11 23:23:51,718 wheel INFO adding 'falcon/redirects.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,719 wheel INFO adding 'falcon/redirects.py' 2025-05-11 23:23:51,720 wheel INFO adding 'falcon/request.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,722 wheel INFO adding 'falcon/request.py' 2025-05-11 23:23:51,723 wheel INFO adding 'falcon/request_helpers.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,723 wheel INFO adding 'falcon/request_helpers.py' 2025-05-11 23:23:51,724 wheel INFO adding 'falcon/responders.py' 2025-05-11 23:23:51,724 wheel INFO adding 'falcon/response.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,726 wheel INFO adding 'falcon/response.py' 2025-05-11 23:23:51,726 wheel INFO adding 'falcon/response_helpers.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,727 wheel INFO adding 'falcon/response_helpers.py' 2025-05-11 23:23:51,727 wheel INFO adding 'falcon/status_codes.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,728 wheel INFO adding 'falcon/status_codes.py' 2025-05-11 23:23:51,728 wheel INFO adding 'falcon/stream.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,729 wheel INFO adding 'falcon/stream.py' 2025-05-11 23:23:51,729 wheel INFO adding 'falcon/typing.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,730 wheel INFO adding 'falcon/typing.py' 2025-05-11 23:23:51,730 wheel INFO adding 'falcon/uri.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,731 wheel INFO adding 'falcon/uri.py' 2025-05-11 23:23:51,731 wheel INFO adding 'falcon/version.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,731 wheel INFO adding 'falcon/version.py' 2025-05-11 23:23:51,732 wheel INFO adding 'falcon/asgi/__init__.py' 2025-05-11 23:23:51,732 wheel INFO adding 'falcon/asgi/_asgi_helpers.py' 2025-05-11 23:23:51,732 wheel INFO adding 'falcon/asgi/_request_helpers.py' 2025-05-11 23:23:51,733 wheel INFO adding 'falcon/asgi/app.py' 2025-05-11 23:23:51,733 wheel INFO adding 'falcon/asgi/multipart.py' 2025-05-11 23:23:51,733 wheel INFO adding 'falcon/asgi/reader.py' 2025-05-11 23:23:51,734 wheel INFO adding 'falcon/asgi/request.py' 2025-05-11 23:23:51,734 wheel INFO adding 'falcon/asgi/response.py' 2025-05-11 23:23:51,735 wheel INFO adding 'falcon/asgi/stream.py' 2025-05-11 23:23:51,735 wheel INFO adding 'falcon/asgi/structures.py' 2025-05-11 23:23:51,735 wheel INFO adding 'falcon/asgi/ws.py' 2025-05-11 23:23:51,736 wheel INFO adding 'falcon/bench/__init__.py' 2025-05-11 23:23:51,736 wheel INFO adding 'falcon/bench/bench.py' 2025-05-11 23:23:51,736 wheel INFO adding 'falcon/bench/create.py' 2025-05-11 23:23:51,736 wheel INFO adding 'falcon/bench/dj/__init__.py' 2025-05-11 23:23:51,737 wheel INFO adding 'falcon/bench/dj/manage.py' 2025-05-11 23:23:51,737 wheel INFO adding 'falcon/bench/dj/dj/__init__.py' 2025-05-11 23:23:51,737 wheel INFO adding 'falcon/bench/dj/dj/settings.py' 2025-05-11 23:23:51,738 wheel INFO adding 'falcon/bench/dj/dj/urls.py' 2025-05-11 23:23:51,738 wheel INFO adding 'falcon/bench/dj/dj/wsgi.py' 2025-05-11 23:23:51,738 wheel INFO adding 'falcon/bench/dj/hello/__init__.py' 2025-05-11 23:23:51,738 wheel INFO adding 'falcon/bench/dj/hello/admin.py' 2025-05-11 23:23:51,739 wheel INFO adding 'falcon/bench/dj/hello/apps.py' 2025-05-11 23:23:51,739 wheel INFO adding 'falcon/bench/dj/hello/models.py' 2025-05-11 23:23:51,739 wheel INFO adding 'falcon/bench/dj/hello/tests.py' 2025-05-11 23:23:51,739 wheel INFO adding 'falcon/bench/dj/hello/views.py' 2025-05-11 23:23:51,739 wheel INFO adding 'falcon/bench/dj/hello/migrations/__init__.py' 2025-05-11 23:23:51,740 wheel INFO adding 'falcon/bench/nuts/__init__.py' 2025-05-11 23:23:51,740 wheel INFO adding 'falcon/bench/nuts/config.py' 2025-05-11 23:23:51,740 wheel INFO adding 'falcon/bench/nuts/setup.py' 2025-05-11 23:23:51,741 wheel INFO adding 'falcon/bench/nuts/nuts/__init__.py' 2025-05-11 23:23:51,741 wheel INFO adding 'falcon/bench/nuts/nuts/app.py' 2025-05-11 23:23:51,741 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/__init__.py' 2025-05-11 23:23:51,741 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/root.py' 2025-05-11 23:23:51,742 wheel INFO adding 'falcon/bench/nuts/nuts/model/__init__.py' 2025-05-11 23:23:51,742 wheel INFO adding 'falcon/bench/nuts/nuts/tests/__init__.py' 2025-05-11 23:23:51,742 wheel INFO adding 'falcon/bench/nuts/nuts/tests/config.py' 2025-05-11 23:23:51,742 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_functional.py' 2025-05-11 23:23:51,743 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_units.py' 2025-05-11 23:23:51,743 wheel INFO adding 'falcon/bench/queues/__init__.py' 2025-05-11 23:23:51,743 wheel INFO adding 'falcon/bench/queues/api.py' 2025-05-11 23:23:51,743 wheel INFO adding 'falcon/bench/queues/claims.py' 2025-05-11 23:23:51,744 wheel INFO adding 'falcon/bench/queues/messages.py' 2025-05-11 23:23:51,744 wheel INFO adding 'falcon/bench/queues/queues.py' 2025-05-11 23:23:51,744 wheel INFO adding 'falcon/bench/queues/stats.py' 2025-05-11 23:23:51,744 wheel INFO adding 'falcon/cmd/__init__.py' 2025-05-11 23:23:51,745 wheel INFO adding 'falcon/cmd/bench.py' 2025-05-11 23:23:51,745 wheel INFO adding 'falcon/cmd/inspect_app.py' 2025-05-11 23:23:51,745 wheel INFO adding 'falcon/cyutil/__init__.py' 2025-05-11 23:23:51,745 wheel INFO adding 'falcon/cyutil/misc.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,746 wheel INFO adding 'falcon/cyutil/misc.pyx' 2025-05-11 23:23:51,746 wheel INFO adding 'falcon/cyutil/reader.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,747 wheel INFO adding 'falcon/cyutil/reader.pyx' 2025-05-11 23:23:51,747 wheel INFO adding 'falcon/cyutil/uri.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,748 wheel INFO adding 'falcon/cyutil/uri.pyx' 2025-05-11 23:23:51,748 wheel INFO adding 'falcon/media/__init__.py' 2025-05-11 23:23:51,749 wheel INFO adding 'falcon/media/base.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,749 wheel INFO adding 'falcon/media/base.py' 2025-05-11 23:23:51,750 wheel INFO adding 'falcon/media/handlers.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,751 wheel INFO adding 'falcon/media/handlers.py' 2025-05-11 23:23:51,751 wheel INFO adding 'falcon/media/json.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,752 wheel INFO adding 'falcon/media/json.py' 2025-05-11 23:23:51,752 wheel INFO adding 'falcon/media/msgpack.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,753 wheel INFO adding 'falcon/media/msgpack.py' 2025-05-11 23:23:51,754 wheel INFO adding 'falcon/media/multipart.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,755 wheel INFO adding 'falcon/media/multipart.py' 2025-05-11 23:23:51,755 wheel INFO adding 'falcon/media/urlencoded.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,756 wheel INFO adding 'falcon/media/urlencoded.py' 2025-05-11 23:23:51,756 wheel INFO adding 'falcon/media/validators/__init__.py' 2025-05-11 23:23:51,756 wheel INFO adding 'falcon/media/validators/jsonschema.py' 2025-05-11 23:23:51,757 wheel INFO adding 'falcon/routing/__init__.py' 2025-05-11 23:23:51,758 wheel INFO adding 'falcon/routing/compiled.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,759 wheel INFO adding 'falcon/routing/compiled.py' 2025-05-11 23:23:51,760 wheel INFO adding 'falcon/routing/converters.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,761 wheel INFO adding 'falcon/routing/converters.py' 2025-05-11 23:23:51,761 wheel INFO adding 'falcon/routing/static.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,762 wheel INFO adding 'falcon/routing/static.py' 2025-05-11 23:23:51,763 wheel INFO adding 'falcon/routing/util.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,763 wheel INFO adding 'falcon/routing/util.py' 2025-05-11 23:23:51,763 wheel INFO adding 'falcon/testing/__init__.py' 2025-05-11 23:23:51,764 wheel INFO adding 'falcon/testing/client.py' 2025-05-11 23:23:51,765 wheel INFO adding 'falcon/testing/helpers.py' 2025-05-11 23:23:51,765 wheel INFO adding 'falcon/testing/resource.py' 2025-05-11 23:23:51,765 wheel INFO adding 'falcon/testing/srmock.py' 2025-05-11 23:23:51,766 wheel INFO adding 'falcon/testing/test_case.py' 2025-05-11 23:23:51,766 wheel INFO adding 'falcon/util/__init__.py' 2025-05-11 23:23:51,767 wheel INFO adding 'falcon/util/deprecation.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,767 wheel INFO adding 'falcon/util/deprecation.py' 2025-05-11 23:23:51,768 wheel INFO adding 'falcon/util/mediatypes.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,769 wheel INFO adding 'falcon/util/mediatypes.py' 2025-05-11 23:23:51,769 wheel INFO adding 'falcon/util/misc.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,770 wheel INFO adding 'falcon/util/misc.py' 2025-05-11 23:23:51,770 wheel INFO adding 'falcon/util/reader.py' 2025-05-11 23:23:51,771 wheel INFO adding 'falcon/util/structures.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,772 wheel INFO adding 'falcon/util/structures.py' 2025-05-11 23:23:51,772 wheel INFO adding 'falcon/util/sync.py' 2025-05-11 23:23:51,772 wheel INFO adding 'falcon/util/time.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,773 wheel INFO adding 'falcon/util/time.py' 2025-05-11 23:23:51,773 wheel INFO adding 'falcon/util/uri.cpython-312-i386-linux-musl.so' 2025-05-11 23:23:51,774 wheel INFO adding 'falcon/util/uri.py' 2025-05-11 23:23:51,775 wheel INFO adding 'falcon-4.0.2.dist-info/licenses/LICENSE' 2025-05-11 23:23:51,775 wheel INFO adding 'falcon-4.0.2.dist-info/METADATA' 2025-05-11 23:23:51,775 wheel INFO adding 'falcon-4.0.2.dist-info/WHEEL' 2025-05-11 23:23:51,775 wheel INFO adding 'falcon-4.0.2.dist-info/entry_points.txt' 2025-05-11 23:23:51,776 wheel INFO adding 'falcon-4.0.2.dist-info/top_level.txt' 2025-05-11 23:23:51,776 wheel INFO adding 'falcon-4.0.2.dist-info/RECORD' 2025-05-11 23:23:51,777 root INFO removing build/bdist.linux-i686/wheel 2025-05-11 23:23:51,782 gpep517 INFO The backend produced dist/falcon-4.0.2-cp312-cp312-linux_i686.whl falcon-4.0.2-cp312-cp312-linux_i686.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.10, pytest-8.3.5, pluggy-1.5.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /home/buildozer/aports/community/py3-falcon/src/falcon-4.0.2 configfile: pyproject.toml plugins: anyio-0.0.0, asyncio-0.25.0 asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None collecting ... collected 4070 items tests/asgi/test_asgi_conductor.py::test_default_headers PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_generic_request[request] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_generic_request[simulate_request] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_wsgi_not_supported PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-get] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-head] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-post] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-put] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-options] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-patch] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[alias-delete] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-get] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-head] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-post] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-put] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-options] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-patch] PASSED [ 0%] tests/asgi/test_asgi_conductor.py::test_responders[simulate-delete] PASSED [ 0%] tests/asgi/test_asgi_helpers.py::test_intricate_app PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_get[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_get[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_get[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_put[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_put[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_put[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_head_405[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_head_405[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_head_405[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_multipart_form[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_multipart_form[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_multipart_form[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_multiple[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_multiple[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_multiple[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_invalid_content_length[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_invalid_content_length[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_invalid_content_length[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream[_uvicorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream[_daphne_factory] PASSED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream[_hypercorn_factory] SKIPPED [ 0%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_large[_uvicorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_large[_daphne_factory] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_large[_hypercorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_no_body[_uvicorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_no_body[_daphne_factory] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_no_body[_hypercorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_sse[_uvicorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_sse[_daphne_factory] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_sse[_hypercorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_sse_client_disconnects_early[_uvicorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_sse_client_disconnects_early[_daphne_factory] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_sse_client_disconnects_early[_hypercorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_stream_chunked_request[_uvicorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_stream_chunked_request[_daphne_factory] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestASGIServer::test_stream_chunked_request[_hypercorn_factory] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-0-None-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-0-None-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-0-4321-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-0-4321-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-4-None-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-4-None-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-4-4321-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-4-4321-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-17-None-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-17-None-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-17-4321-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-17-4321-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-0-None-True] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-0-None-False] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-0-4321-True] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-0-4321-False] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-4-None-True] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-4-None-False] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-4-4321-True] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-4-4321-False] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-17-None-True] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-17-None-False] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-17-4321-True] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-17-4321-False] PASSED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-0-None-True] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-0-None-False] SKIPPED [ 1%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-0-4321-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-0-4321-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-4-None-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-4-None-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-4-4321-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-4-4321-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-17-None-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-17-None-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-17-4321-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-17-4321-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-None-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-None-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-4040-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-4040-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_daphne_factory-None-True] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_daphne_factory-None-False] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_daphne_factory-4040-True] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_daphne_factory-4040-False] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_hypercorn_factory-None-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_hypercorn_factory-None-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_hypercorn_factory-4040-True] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_hypercorn_factory-4040-False] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_missing_responder[_uvicorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_missing_responder[_daphne_factory] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_missing_responder[_hypercorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_uvicorn_factory-*-amqp] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_uvicorn_factory-wamp-wamp] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_daphne_factory-*-amqp] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_daphne_factory-wamp-wamp] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_hypercorn_factory-*-amqp] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_hypercorn_factory-wamp-wamp] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_unknown[_uvicorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_unknown[_daphne_factory] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_unknown[_hypercorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_disconnecting_client_early[_uvicorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_disconnecting_client_early[_daphne_factory] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_disconnecting_client_early[_hypercorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_send_before_accept[_uvicorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_send_before_accept[_daphne_factory] PASSED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_send_before_accept[_hypercorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_recv_before_accept[_uvicorn_factory] SKIPPED [ 2%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_recv_before_accept[_daphne_factory] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_recv_before_accept[_hypercorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_invalid_close_code[_uvicorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_invalid_close_code[_daphne_factory] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_invalid_close_code[_hypercorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_error[_uvicorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_error[_daphne_factory] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_error[_hypercorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_http_error[_uvicorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_http_error[_daphne_factory] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_http_error[_hypercorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-text-send] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-text-recv] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-data-send] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-data-recv] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_daphne_factory-text-send] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_daphne_factory-text-recv] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_daphne_factory-data-send] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_daphne_factory-data-recv] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_hypercorn_factory-text-send] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_hypercorn_factory-text-recv] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_hypercorn_factory-data-send] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_hypercorn_factory-data-recv] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_passing_path_params[_uvicorn_factory] SKIPPED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_passing_path_params[_daphne_factory] PASSED [ 3%] tests/asgi/test_asgi_servers.py::TestWebSocket::test_passing_path_params[_hypercorn_factory] SKIPPED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-empty] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-null] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-null-ff] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-normal] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-long] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-random] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-True-random-large] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-empty] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-null] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-null-ff] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-normal] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-long] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-random] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[True-False-random-large] PASSED [ 3%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-empty] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-null] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-null-ff] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-normal] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-long] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-random] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-random-large] SKIPPEDhe parameter permutations) [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-empty] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-null] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-null-ff] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-normal] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-long] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-random] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_all[False-False-random-large] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_filelike PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_iterate_streaming_request PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1-empty] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1-null] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1-null-ff] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1-normal] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1-long] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1-random] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[2-empty] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[2-null] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[2-null-ff] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[2-normal] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[2-long] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[2-random] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10-empty] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10-null] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10-null-ff] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10-normal] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10-long] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10-random] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-empty] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-null] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-null-ff] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-normal] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-long] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-random] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-empty] PASSED [ 4%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-null] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-null-ff] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-normal] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-long] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-random] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1000-empty] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1000-null] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1000-null-ff] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1000-normal] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1000-long] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[1000-random] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10000-empty] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10000-null] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10000-null-ff] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10000-normal] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10000-long] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_read_chunks[10000-random] PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_exhaust_with_disconnect PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_exhaust PASSED [ 5%] tests/asgi/test_boundedstream_asgi.py::test_iteration_already_started PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_basic_aiter PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_aiter_from_buffer PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_delimit[H-expected0] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_delimit[Hello-expected1] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_delimit[o-expected2] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_delimit[ting-expected3] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_delimit[404-expected4] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_exhaust PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek[1] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek[2] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek[3] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek[5] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek[7] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek[8] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_peek_at_eof PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_pipe PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_pipe_until_delimiter_not_found PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_read[sizes0-expected0] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_read[sizes1-expected1] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_read[sizes2-expected2] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_read[sizes3-expected3] PASSED [ 5%] tests/asgi/test_buffered_reader.py::test_varying_read_size[1] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_varying_read_size[16777216] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_readall[0] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_readall[1] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_readall[8] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-, -4-Hell-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-, -4-Hell-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-, -5-Hello-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-, -5-Hello-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-, --1-Hello-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-, --1-Hello-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -4-esti-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -4-esti-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -5-estin-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -5-estin-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -6-esting-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -6-esting-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -20-esting-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -20-esting-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -None-esting-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[20- -None-esting-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-Hell-13--False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-Hell-13--True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[1-ell-13--False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[1-ell-13--True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[2-ll-13--False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[2-ll-13--True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[3-l-13--False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[3-l-13--True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[2-l-13--False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[2-l-13--True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-good-13-Hello, World!-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[0-good-13-Hello, World!-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-19-World!\nJust testing-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-19-World!\nJust testing-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-33-World!\nJust testing some iterator-False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-33-World!\nJust testing some iterator-True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-34-World!\nJust testing some iterator -False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-34-World!\nJust testing some iterator -True] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-1337-World!\nJust testing some iterator -False] PASSED [ 6%] tests/asgi/test_buffered_reader.py::test_read_until[7-good-1337-World!\nJust testing some iterator -True] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until[7-good--1-World!\nJust testing some iterator -False] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until[7-good--1-World!\nJust testing some iterator -True] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_with_buffer_edge_case PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_placeholder_methods PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_iteration_started PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_invalid_delimiter_length PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_irregular_large_read_until[11003077-22000721] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_irregular_large_read_until[13372477-51637898] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[46] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[47] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[48] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[49] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[50] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[51] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[52] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[53] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[54] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[55] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[56] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[57] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[58] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[59] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[60] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[61] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[62] PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_small_reads PASSED [ 7%] tests/asgi/test_buffered_reader.py::test_small_reads_with_delimiter PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method0] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method_async0] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method1] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method_async1] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method2] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method_async2] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method0] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method_async0] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method1] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method_async1] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method2] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method_async2] PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_jsonchema_validator PASSED [ 7%] tests/asgi/test_cythonized_asgi.py::test_scheduled_jobs PASSED [ 8%] tests/asgi/test_cythonized_asgi.py::test_scheduled_jobs_type_error PASSED [ 8%] tests/asgi/test_cythonized_asgi.py::test_hooks PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_env_headers_list_of_tuples PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_root_route PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_no_route PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/body-resource0-] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/bytes-resource1-] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/data-resource2-] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_no_body_on_head PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_stream_chunked PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_stream_known_len PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_genfunc_error PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_nongenfunc_error PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_closing[DataReader-True] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_closing[DataReaderWithoutClose-False] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_closing_aiofiles PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_using_helper PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[10-3-3\n3\n3\n1\n-None] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[10-7-7\n3\n-None] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[10-17-10\n-None] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[20-0--ZeroDivisionError] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_status_not_set PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_coroutine_required PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_noncoroutine_required PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_at_least_one_event_method_required PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_startup_only PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_startup_raises PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_shutdown_raises PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_shutdown_only PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_multiple_handlers PASSED [ 8%] tests/asgi/test_lifespan_handlers.py::test_asgi_conductor_raised_error_skips_shutdown PASSED [ 8%] tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware0] PASSED [ 8%] tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware1] PASSED [ 8%] tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware2] PASSED [ 8%] tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware3] PASSED [ 8%] tests/asgi/test_misc.py::test_http_status_not_impl PASSED [ 8%] tests/asgi/test_misc.py::test_http_error_not_impl PASSED [ 8%] tests/asgi/test_misc.py::test_python_error_not_impl PASSED [ 8%] tests/asgi/test_request_asgi.py::test_missing_server_in_scope PASSED [ 8%] tests/asgi/test_request_asgi.py::test_log_error_not_supported PASSED [ 9%] tests/asgi/test_request_asgi.py::test_env_not_supported PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_empty_body PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_tiny_body PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_tiny_body_overflow PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_content_length_smaller_than_body[1-0] PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_content_length_smaller_than_body[2-1] PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_content_length_smaller_than_body[3-2] PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_content_length_smaller_than_body[100-None] PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_content_length_smaller_than_body[100-50] PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_content_length_smaller_than_body[8192-50] PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_read_body PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_bounded_stream_alias PASSED [ 9%] tests/asgi/test_request_body_asgi.py::TestRequestBody::test_request_repr PASSED [ 9%] tests/asgi/test_request_context_asgi.py::TestRequestContext::test_default_request_context PASSED [ 9%] tests/asgi/test_request_context_asgi.py::TestRequestContext::test_custom_request_context PASSED [ 9%] tests/asgi/test_request_context_asgi.py::TestRequestContext::test_custom_request_context_failure PASSED [ 9%] tests/asgi/test_request_context_asgi.py::TestRequestContext::test_custom_request_context_request_access PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_json[*/*] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_json[application/json] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_json[application/json; charset=utf-8] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[I am a \u1d0a\ua731\u1d0f\u0274 string.] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[document2] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[document3] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[document4] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_msgpack[application/msgpack] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_msgpack[application/msgpack; charset=utf-8] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_msgpack[application/x-msgpack] PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_custom_media_handler PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_unknown_media_type PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_default_media_type PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_mimeparse_edgecases PASSED [ 9%] tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_text PASSED [ 9%] tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_data PASSED [ 9%] tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_data_masquerading_as_text PASSED [ 9%] tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_media PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_media_rendered_cached PASSED [ 9%] tests/asgi/test_response_media_asgi.py::test_custom_render_body PASSED [ 9%] tests/asgi/test_scheduled_callbacks.py::test_multiple PASSED [ 9%] tests/asgi/test_scheduled_callbacks.py::test_callback[GET-/-Hello, World!\n] PASSED [ 10%] tests/asgi/test_scheduled_callbacks.py::test_callback[HEAD-/-] PASSED [ 10%] tests/asgi/test_scheduled_callbacks.py::test_callback[GET-/sse-: ping\n\n] PASSED [ 10%] tests/asgi/test_scheduled_callbacks.py::test_callback[GET-/stream-One\nTwo\nThree\n] PASSED [ 10%] tests/asgi/test_scope.py::test_missing_asgi_version PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_http_version[0.9] PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_http_version[1.9] PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_http_version[4.0] PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_http_version[1337] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[3.0-True] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[3.1-True] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[3.10-True] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[30.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[31.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[4.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[4.1-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[4.10-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[40.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[41.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[2.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[2.1-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[2.10-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_asgi_version[None-False] PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_scope_type[tubes] PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_scope_type[http3] PASSED [ 10%] tests/asgi/test_scope.py::test_unsupported_scope_type[htt] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[0.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[1.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[11.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[2.0-True] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[2.1-True] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[2.10-True] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[20.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[22.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[3.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[3.1-False] PASSED [ 10%] tests/asgi/test_scope.py::test_supported_http_spec[30.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_lifespan_scope_default_version PASSED [ 10%] tests/asgi/test_scope.py::test_lifespan_scope_version[0.0-False] PASSED [ 10%] tests/asgi/test_scope.py::test_lifespan_scope_version[1.0-True] PASSED [ 10%] tests/asgi/test_scope.py::test_lifespan_scope_version[1.1-True] PASSED [ 10%] tests/asgi/test_scope.py::test_lifespan_scope_version[1.10-True] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[2.0-True] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[2.1-True] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[2.10-True] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[3.0-False] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[4.0-False] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[11.0-False] PASSED [ 11%] tests/asgi/test_scope.py::test_lifespan_scope_version[22.0-False] PASSED [ 11%] tests/asgi/test_scope.py::test_query_string_values PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[http-True] PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[https-True] PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[htt-False] PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[http:-False] PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[https:-False] PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[ftp-False] PASSED [ 11%] tests/asgi/test_scope.py::test_scheme[gopher-False] PASSED [ 11%] tests/asgi/test_scope.py::test_cookies[cookies0] PASSED [ 11%] tests/asgi/test_scope.py::test_cookies[cookies1] PASSED [ 11%] tests/asgi/test_scope.py::test_cookies_options_meathod PASSED [ 11%] tests/asgi/test_sse.py::test_no_events PASSED [ 11%] tests/asgi/test_sse.py::test_single_event PASSED [ 11%] tests/asgi/test_sse.py::test_multiple_events PASSED [ 11%] tests/asgi/test_sse.py::test_multiple_events_early_disconnect PASSED [ 11%] tests/asgi/test_sse.py::TestSerializeJson::test_use_media_handler_dumps PASSED [ 11%] tests/asgi/test_sse.py::TestSerializeJson::test_no_json_media_handler PASSED [ 11%] tests/asgi/test_sse.py::test_invalid_event_values PASSED [ 11%] tests/asgi/test_sse.py::test_non_iterable PASSED [ 11%] tests/asgi/test_sync.py::test_sync_helpers PASSED [ 11%] tests/asgi/test_sync.py::test_sync_asyncio_aliases PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_asgi_request_event_emitter_hang PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_ignore_extra_asgi_events PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_invalid_asgi_events PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_is_asgi_app_cls PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_cookies_jar PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_create_scope_default_ua PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_create_scope_default_ua_override PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_create_scope_default_ua_modify_global PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_missing_header_is_none PASSED [ 11%] tests/asgi/test_testing_asgi.py::test_immediate_disconnect PASSED [ 11%] tests/asgi/test_ws.py::test_ws_not_accepted[/ws/yes] PASSED [ 11%] tests/asgi/test_ws.py::test_ws_not_accepted[/ws/no] PASSED [ 11%] tests/asgi/test_ws.py::test_echo PASSED [ 12%] tests/asgi/test_ws.py::test_path_not_found PASSED [ 12%] tests/asgi/test_ws.py::test_responder_raises_unhandled_error[True] PASSED [ 12%] tests/asgi/test_ws.py::test_responder_raises_unhandled_error[False] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[True-True-send] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[True-True-receive] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[True-False-send] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[True-False-receive] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[False-True-send] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[False-True-receive] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[False-False-send] PASSED [ 12%] tests/asgi/test_ws.py::test_client_disconnect_early[False-False-receive] PASSED [ 12%] tests/asgi/test_ws.py::test_media[True-True] PASSED [ 12%] tests/asgi/test_ws.py::test_media[True-False] PASSED [ 12%] tests/asgi/test_ws.py::test_media[False-True] PASSED [ 12%] tests/asgi/test_ws.py::test_media[False-False] PASSED [ 12%] tests/asgi/test_ws.py::test_send_receive_data[123] PASSED [ 12%] tests/asgi/test_ws.py::test_send_receive_data[] PASSED [ 12%] tests/asgi/test_ws.py::test_send_receive_data[\xe1\x9a\xa0\xe1] PASSED [ 12%] tests/asgi/test_ws.py::test_send_receive_data[\x00] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol[subprotocols0] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol[subprotocols1] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol[subprotocols2] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol[None] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[None] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[headers1] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[headers2] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[headers3] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[headers4] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[headers5] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers[headers6] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_bad_headers[headers0] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_bad_headers[headers1] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_bad_headers[headers2] PASSED [ 12%] tests/asgi/test_ws.py::test_accept_with_headers_not_supported PASSED [ 12%] tests/asgi/test_ws.py::test_missing_ws_handler PASSED [ 12%] tests/asgi/test_ws.py::test_unexpected_param PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol_bad_type[DEADBEEF] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol1] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol2] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol3] PASSED [ 12%] tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol4] PASSED [ 13%] tests/asgi/test_ws.py::test_subprotocol_bad_type[OK] PASSED [ 13%] tests/asgi/test_ws.py::test_send_receive_wrong_type PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[999] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[100] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[0] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[-1] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1004] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1005] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1006] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1015] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1016] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1017] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1050] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1099] PASSED [ 13%] tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[NaN] PASSED [ 13%] tests/asgi/test_ws.py::test_mw_methods_must_be_coroutines PASSED [ 13%] tests/asgi/test_ws.py::test_bad_spec_version[1.9] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_spec_version[20.5] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_spec_version[3.0] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_spec_version[3.1] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_http_version[1.0] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_http_version[1] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_first_event[2.1] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_first_event[2.3] PASSED [ 13%] tests/asgi/test_ws.py::test_bad_first_event[2.10.3] PASSED [ 13%] tests/asgi/test_ws.py::test_missing_http_version PASSED [ 13%] tests/asgi/test_ws.py::test_missing_spec_version PASSED [ 13%] tests/asgi/test_ws.py::test_translate_webserver_error PASSED [ 13%] tests/asgi/test_ws.py::test_ws_base_not_implemented PASSED [ 13%] tests/asgi/test_ws.py::test_ws_context_timeout PASSED [ 13%] tests/asgi/test_ws.py::test_ws_simulator_client_require_accepted PASSED [ 13%] tests/asgi/test_ws.py::test_ws_simulator_collect_edge_cases PASSED [ 13%] tests/asgi/test_ws.py::test_ws_responder_never_ready PASSED [ 13%] tests/asgi/test_ws.py::test_msgpack_missing SKIPPED (test requires msgpack lib to be missing) [ 13%] tests/asgi/test_ws.py::test_client_close_with_reason[Client closing connection] PASSED [ 13%] tests/asgi/test_ws.py::test_client_close_with_reason[] PASSED [ 13%] tests/asgi/test_ws.py::test_client_close_with_reason[None] PASSED [ 13%] tests/asgi/test_ws.py::test_close_with_reason_no_cm[PEBCAK] PASSED [ 13%] tests/asgi/test_ws.py::test_close_with_reason_no_cm[wow such reason] PASSED [ 13%] tests/asgi/test_ws.py::test_close_with_reason_no_cm[] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason_no_cm[None] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.2-PEBCAK] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.2-wow such reason] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.2-] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.2-None] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.3-PEBCAK] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.3-wow such reason] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.3-] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.3-None] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.4-PEBCAK] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.4-wow such reason] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.4-] PASSED [ 14%] tests/asgi/test_ws.py::test_close_with_reason[2.4-None] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[None-Normal Closure-True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[None-Normal Closure-False] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[1011-Internal Server Error-True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[1011-Internal Server Error-False] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[3405-Method Not Allowed-True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[3405-Method Not Allowed-False] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[3701--True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[3701--False] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[3702-Emacs-True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[3702-Emacs-False] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[4042--True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[4042--False] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[4099-wow such reason-True] PASSED [ 14%] tests/asgi/test_ws.py::test_reason_mapping[4099-wow such reason-False] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-200] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-500] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-422] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-400] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-200] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-500] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-422] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-400] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-200] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-500] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-422] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-400] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPError-200] PASSED [ 14%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPError-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPError-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPError-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPStatus-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPStatus-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPStatus-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPStatus-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPError-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPError-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPError-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[request-HTTPError-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPStatus-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPStatus-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPStatus-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPStatus-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-422] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-400] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPError-200] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPError-500] PASSED [ 15%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPError-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPError-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPStatus-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPStatus-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPStatus-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPStatus-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPError-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPError-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPError-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPError-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-422] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-400] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPError-200] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPError-500] PASSED [ 16%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPError-422] PASSED [ 17%] tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPError-400] PASSED [ 17%] tests/asgi/test_ws.py::test_max_receive_queue_sizes[0] PASSED [ 17%] tests/asgi/test_ws.py::test_max_receive_queue_sizes[1] PASSED [ 17%] tests/asgi/test_ws.py::test_max_receive_queue_sizes[4] PASSED [ 17%] tests/asgi/test_ws.py::test_max_receive_queue_sizes[7] PASSED [ 17%] tests/asgi/test_ws.py::test_max_receive_queue_sizes[17] PASSED [ 17%] tests/test_after_hooks.py::test_output_validator[asgi] PASSED [ 17%] tests/test_after_hooks.py::test_output_validator[wsgi] PASSED [ 17%] tests/test_after_hooks.py::test_serializer[asgi] PASSED [ 17%] tests/test_after_hooks.py::test_serializer[wsgi] PASSED [ 17%] tests/test_after_hooks.py::test_hook_as_callable_class[asgi] PASSED [ 17%] tests/test_after_hooks.py::test_hook_as_callable_class[wsgi] PASSED [ 17%] tests/test_after_hooks.py::test_resource_with_uri_fields[asgi-resource0] PASSED [ 17%] tests/test_after_hooks.py::test_resource_with_uri_fields[asgi-resource1] PASSED [ 17%] tests/test_after_hooks.py::test_resource_with_uri_fields[wsgi-resource0] PASSED [ 17%] tests/test_after_hooks.py::test_resource_with_uri_fields[wsgi-resource1] PASSED [ 17%] tests/test_after_hooks.py::test_resource_with_uri_fields_async PASSED [ 17%] tests/test_after_hooks.py::test_wrapped_resource[asgi-resource0] PASSED [ 17%] tests/test_after_hooks.py::test_wrapped_resource[asgi-resource1] PASSED [ 17%] tests/test_after_hooks.py::test_wrapped_resource[wsgi-resource0] PASSED [ 17%] tests/test_after_hooks.py::test_wrapped_resource[wsgi-resource1] PASSED [ 17%] tests/test_after_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[asgi] PASSED [ 17%] tests/test_after_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[wsgi] PASSED [ 17%] tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[paper-/once-paper, rock, scissors] PASSED [ 17%] tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[scissors-/twice-scissors, paper, rock, scissors] PASSED [ 17%] tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[rock-/thrice-rock, scissors, paper, rock, scissors] PASSED [ 17%] tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[paper-/thrice-paper, rock, scissors, paper, rock] PASSED [ 17%] tests/test_alias.py::test_cookies PASSED [ 17%] tests/test_alias.py::test_alias_equals_to_app PASSED [ 17%] tests/test_app_initializers.py::test_api_media_type_overriding[App] PASSED [ 17%] tests/test_app_initializers.py::test_api_media_type_overriding[API] PASSED [ 17%] tests/test_before_hooks.py::test_multiple_resource_hooks[asgi-resource0] PASSED [ 17%] tests/test_before_hooks.py::test_multiple_resource_hooks[asgi-resource1] PASSED [ 17%] tests/test_before_hooks.py::test_multiple_resource_hooks[wsgi-resource0] PASSED [ 17%] tests/test_before_hooks.py::test_multiple_resource_hooks[wsgi-resource1] PASSED [ 17%] tests/test_before_hooks.py::test_input_validator[asgi] PASSED [ 17%] tests/test_before_hooks.py::test_input_validator[wsgi] PASSED [ 17%] tests/test_before_hooks.py::test_input_validator_inherited[asgi] PASSED [ 17%] tests/test_before_hooks.py::test_input_validator_inherited[wsgi] PASSED [ 17%] tests/test_before_hooks.py::test_param_validator[asgi] PASSED [ 17%] tests/test_before_hooks.py::test_param_validator[wsgi] PASSED [ 18%] tests/test_before_hooks.py::test_field_validator[asgi-resource0] PASSED [ 18%] tests/test_before_hooks.py::test_field_validator[asgi-resource1] PASSED [ 18%] tests/test_before_hooks.py::test_field_validator[asgi-resource2] PASSED [ 18%] tests/test_before_hooks.py::test_field_validator[wsgi-resource0] PASSED [ 18%] tests/test_before_hooks.py::test_field_validator[wsgi-resource1] PASSED [ 18%] tests/test_before_hooks.py::test_field_validator[wsgi-resource2] PASSED [ 18%] tests/test_before_hooks.py::test_parser_sync[{"animal": "falcon"}-doc0] PASSED [ 18%] tests/test_before_hooks.py::test_parser_sync[{}-doc1] PASSED [ 18%] tests/test_before_hooks.py::test_parser_sync[-None] PASSED [ 18%] tests/test_before_hooks.py::test_parser_sync[None-None] PASSED [ 18%] tests/test_before_hooks.py::test_parser_async[{"animal": "falcon"}-doc0] PASSED [ 18%] tests/test_before_hooks.py::test_parser_async[{}-doc1] PASSED [ 18%] tests/test_before_hooks.py::test_parser_async[-None] PASSED [ 18%] tests/test_before_hooks.py::test_parser_async[None-None] PASSED [ 18%] tests/test_before_hooks.py::test_wrapped_resource[asgi] PASSED [ 18%] tests/test_before_hooks.py::test_wrapped_resource[wsgi] PASSED [ 18%] tests/test_before_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[asgi] PASSED [ 18%] tests/test_before_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[wsgi] PASSED [ 18%] tests/test_before_hooks.py::test_piggybacking_resource_post_item[asgi] PASSED [ 18%] tests/test_before_hooks.py::test_piggybacking_resource_post_item[wsgi] PASSED [ 18%] tests/test_before_hooks.py::test_piggybacking_resource_post_and_delete[asgi] PASSED [ 18%] tests/test_before_hooks.py::test_piggybacking_resource_post_and_delete[wsgi] PASSED [ 18%] tests/test_before_hooks.py::test_decorable_name_pattern PASSED [ 18%] tests/test_boundedstream.py::test_not_writable PASSED [ 18%] tests/test_boundedstream.py::test_exhausted PASSED [ 18%] tests/test_buffered_reader.py::test_peek PASSED [ 18%] tests/test_buffered_reader.py::test_peek_eof PASSED [ 18%] tests/test_buffered_reader.py::test_bounded_read PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[0] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[1] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[2] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[7] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[62] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[63] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[64] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[65] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[126] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[127] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[128] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[129] PASSED [ 18%] tests/test_buffered_reader.py::test_read_from_buffer[1000] PASSED [ 19%] tests/test_buffered_reader.py::test_read_from_buffer[10000] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_delimiter_size_check PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[0] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[1] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[2] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[7] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[62] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[63] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[64] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[65] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[126] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[127] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[128] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[129] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[1000] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_with_size[10000] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until PASSED [ 19%] tests/test_buffered_reader.py::test_irregular_large_read_until[11003077-22000721] PASSED [ 19%] tests/test_buffered_reader.py::test_irregular_large_read_until[13372477-51637898] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[0] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[1] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[2] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[7] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[62] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[63] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[64] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[65] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[126] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[127] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[128] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[129] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_from_buffer[1000] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_missing_delimiter PASSED [ 19%] tests/test_buffered_reader.py::test_consume_delimiter PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_shared_boundary[46] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_shared_boundary[47] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_shared_boundary[48] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_shared_boundary[49] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_shared_boundary[50] PASSED [ 19%] tests/test_buffered_reader.py::test_read_until_shared_boundary[51] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[52] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[53] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[54] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[55] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[56] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[57] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[58] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[59] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[60] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[61] PASSED [ 20%] tests/test_buffered_reader.py::test_read_until_shared_boundary[62] PASSED [ 20%] tests/test_buffered_reader.py::test_pipe PASSED [ 20%] tests/test_buffered_reader.py::test_pipe_until PASSED [ 20%] tests/test_buffered_reader.py::test_pipe_until_without_destination PASSED [ 20%] tests/test_buffered_reader.py::test_exhaust PASSED [ 20%] tests/test_buffered_reader.py::test_readline PASSED [ 20%] tests/test_buffered_reader.py::test_readline_with_size PASSED [ 20%] tests/test_buffered_reader.py::test_readlines PASSED [ 20%] tests/test_buffered_reader.py::test_readlines_hint[8] PASSED [ 20%] tests/test_buffered_reader.py::test_readlines_hint[16] PASSED [ 20%] tests/test_buffered_reader.py::test_readlines_hint[256] PASSED [ 20%] tests/test_buffered_reader.py::test_readlines_hint[1024] PASSED [ 20%] tests/test_buffered_reader.py::test_readlines_hint[65536] PASSED [ 20%] tests/test_buffered_reader.py::test_duck_compatibility_with_io_base PASSED [ 20%] tests/test_buffered_reader.py::test_fragmented_reads PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args0-exp0] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args1-exp1] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args2-exp2] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args3-exp3] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args4-exp4] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args5-exp5] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args6-exp6] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args7-exp7] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser_error PASSED [ 20%] tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app[_APP] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app[make_app] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_error[foo] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_error[_MODULE] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_error[DummyResource] PASSED [ 20%] tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_module_error PASSED [ 20%] tests/test_cmd_inspect_app.py::TestMain::test_routes_only[internal-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_routes_only[internal-not-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_routes_only[not-internal-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_routes_only[not-internal-not-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_inspect[internal-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_inspect[internal-not-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_inspect[not-internal-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::TestMain::test_inspect[not-internal-not-verbose] PASSED [ 21%] tests/test_cmd_inspect_app.py::test_route_main PASSED [ 21%] tests/test_compiled_router.py::test_find_src PASSED [ 21%] tests/test_compiled_router.py::test_no_compile_kw[kwargs0] PASSED [ 21%] tests/test_compiled_router.py::test_no_compile_kw[kwargs1] PASSED [ 21%] tests/test_compiled_router.py::test_no_compile_kw[kwargs2] PASSED [ 21%] tests/test_compiled_router.py::test_no_compile_kw[kwargs3] PASSED [ 21%] tests/test_compiled_router.py::test_compile PASSED [ 21%] tests/test_compiled_router.py::test_add_route_after_first_request PASSED [ 21%] tests/test_compiled_router.py::test_multithread_compile PASSED [ 21%] tests/test_compiled_router.py::test_cannot_replace_compiled PASSED [ 21%] tests/test_compiled_router.py::test_converter_not_subclass PASSED [ 21%] tests/test_compiled_router.py::test_base_classes PASSED [ 21%] tests/test_cookies.py::test_response_base_case[asgi] PASSED [ 21%] tests/test_cookies.py::test_response_base_case[wsgi] PASSED [ 21%] tests/test_cookies.py::test_response_disable_secure_globally[asgi] PASSED [ 21%] tests/test_cookies.py::test_response_disable_secure_globally[wsgi] PASSED [ 21%] tests/test_cookies.py::test_response_complex_case[asgi] PASSED [ 21%] tests/test_cookies.py::test_response_complex_case[wsgi] PASSED [ 21%] tests/test_cookies.py::test_unset_cookies[asgi] PASSED [ 21%] tests/test_cookies.py::test_unset_cookies[wsgi] PASSED [ 21%] tests/test_cookies.py::test_unset_cookies_samesite[asgi] PASSED [ 21%] tests/test_cookies.py::test_unset_cookies_samesite[wsgi] PASSED [ 21%] tests/test_cookies.py::test_cookie_expires_naive[asgi] PASSED [ 21%] tests/test_cookies.py::test_cookie_expires_naive[wsgi] PASSED [ 21%] tests/test_cookies.py::test_cookie_expires_aware[asgi] PASSED [ 21%] tests/test_cookies.py::test_cookie_expires_aware[wsgi] PASSED [ 21%] tests/test_cookies.py::test_cookies_setable PASSED [ 21%] tests/test_cookies.py::test_cookie_max_age_float_and_string[asgi-foofloat] PASSED [ 21%] tests/test_cookies.py::test_cookie_max_age_float_and_string[asgi-foostring] PASSED [ 21%] tests/test_cookies.py::test_cookie_max_age_float_and_string[wsgi-foofloat] PASSED [ 21%] tests/test_cookies.py::test_cookie_max_age_float_and_string[wsgi-foostring] PASSED [ 21%] tests/test_cookies.py::test_response_unset_cookie PASSED [ 21%] tests/test_cookies.py::test_request_cookie_parsing PASSED [ 21%] tests/test_cookies.py::test_invalid_cookies_are_ignored PASSED [ 22%] tests/test_cookies.py::test_duplicate_cookie PASSED [ 22%] tests/test_cookies.py::test_cookie_header_is_missing PASSED [ 22%] tests/test_cookies.py::test_unicode_inside_ascii_range PASSED [ 22%] tests/test_cookies.py::test_non_ascii_name[Unicode_\xc3\xa6\xc3\xb8] PASSED [ 22%] tests/test_cookies.py::test_non_ascii_name[Unicode_\xc3\x83\xc2\xa6\xc3\x83\xc2\xb8] PASSED [ 22%] tests/test_cookies.py::test_non_ascii_name[42] PASSED [ 22%] tests/test_cookies.py::test_non_ascii_value[Unicode_\xc3\xa6\xc3\xb8] PASSED [ 22%] tests/test_cookies.py::test_non_ascii_value[Unicode_\xc3\x83\xc2\xa6\xc3\x83\xc2\xb8] PASSED [ 22%] tests/test_cookies.py::test_non_ascii_value[42] PASSED [ 22%] tests/test_cookies.py::test_lax_same_site_value[asgi] PASSED [ 22%] tests/test_cookies.py::test_lax_same_site_value[wsgi] PASSED [ 22%] tests/test_cookies.py::test_strict_same_site_value[asgi] PASSED [ 22%] tests/test_cookies.py::test_strict_same_site_value[wsgi] PASSED [ 22%] tests/test_cookies.py::test_none_same_site_value[asgi] PASSED [ 22%] tests/test_cookies.py::test_none_same_site_value[wsgi] PASSED [ 22%] tests/test_cookies.py::test_same_site_empty_string[asgi] PASSED [ 22%] tests/test_cookies.py::test_same_site_empty_string[wsgi] PASSED [ 22%] tests/test_cookies.py::test_same_site_value_case_insensitive[laX] PASSED [ 22%] tests/test_cookies.py::test_same_site_value_case_insensitive[lax] PASSED [ 22%] tests/test_cookies.py::test_same_site_value_case_insensitive[STRICT] PASSED [ 22%] tests/test_cookies.py::test_same_site_value_case_insensitive[strict] PASSED [ 22%] tests/test_cookies.py::test_same_site_value_case_insensitive[None] PASSED [ 22%] tests/test_cookies.py::test_same_site_value_case_insensitive[none] PASSED [ 22%] tests/test_cookies.py::test_invalid_same_site_value[bogus] PASSED [ 22%] tests/test_cookies.py::test_invalid_same_site_value[laxx] PASSED [ 22%] tests/test_cookies.py::test_invalid_same_site_value[stric] PASSED [ 22%] tests/test_cookies.py::test_partitioned_value[asgi] PASSED [ 22%] tests/test_cookies.py::test_partitioned_value[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_disabled_cors_should_not_add_any_extra_headers[asgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_disabled_cors_should_not_add_any_extra_headers[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_no_origin[asgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_no_origin[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_add_extra_headers_on_response[asgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_add_extra_headers_on_response[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_accept_all_origins_requests[asgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_accept_all_origins_requests[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting[asgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflight_custom_option[asgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflight_custom_option[wsgi] PASSED [ 22%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting_no_headers_in_req[asgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting_no_headers_in_req[wsgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_static_route[asgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_static_route[wsgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_sink_route[asgi-True] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_sink_route[asgi-False] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_sink_route[wsgi-True] PASSED [ 23%] tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_sink_route[wsgi-False] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_raises PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[asgi-*-fail_origins0-success_origins0] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[asgi-test-fail_origins1-success_origins1] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[asgi-allow2-fail_origins2-success_origins2] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[wsgi-*-fail_origins0-success_origins0] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[wsgi-test-fail_origins1-success_origins1] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[wsgi-allow2-fail_origins2-success_origins2] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_wildcard[asgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_wildcard[wsgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[asgi-allow0-successOrigin0] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[asgi-foo-successOrigin1] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[wsgi-allow0-successOrigin0] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[wsgi-foo-successOrigin1] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_existing_origin[asgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_existing_origin[wsgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin_allow_credential[asgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin_allow_credential[wsgi] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[asgi-foo-foo] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[asgi-foo, bar-foo, bar] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[asgi-attr2-foo, bar] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[wsgi-foo-foo] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[wsgi-foo, bar-foo, bar] PASSED [ 23%] tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[wsgi-attr2-foo, bar] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_add_route_should_be_used[asgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_add_route_should_be_used[wsgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_find_should_be_used[asgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_find_should_be_used[wsgi] PASSED [ 23%] tests/test_custom_router.py::test_can_pass_additional_params_to_add_route[asgi] PASSED [ 23%] tests/test_custom_router.py::test_can_pass_additional_params_to_add_route[wsgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_takes_req_positional_argument[asgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_takes_req_positional_argument[wsgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_takes_req_keyword_argument[asgi] PASSED [ 23%] tests/test_custom_router.py::test_custom_router_takes_req_keyword_argument[wsgi] PASSED [ 24%] tests/test_cython.py::TestCythonized::test_imported_from_c_modules PASSED [ 24%] tests/test_cython.py::TestCythonized::test_stream_has_private_read PASSED [ 24%] tests/test_default_router.py::test_user_regression_versioned_url PASSED [ 24%] tests/test_default_router.py::test_user_regression_recipes PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People|{field}-/serviceRoot/People|susie-expected_params0] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People[{field}]-/serviceRoot/People['calvin']-expected_params1] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People({field})-/serviceRoot/People('hobbes')-expected_params2] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People({field})-/serviceRoot/People('hob)bes')-expected_params3] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People({field})(z)-/serviceRoot/People(hobbes)(z)-expected_params4] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People('{field}')-/serviceRoot/People('rosalyn')-expected_params5] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/^{field}-/^42-expected_params6] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/+{field}-/+42-expected_params7] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/foo/{first}_{second}/bar-/foo/abc_def_ghijk/bar-expected_params8] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/items/{x}?{y}-/items/1080?768-expected_params9] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/items/{x}|{y}-/items/1080|768-expected_params10] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/items/{x},{y}-/items/1080,768-expected_params11] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/items/{x}^^{y}-/items/1080^^768-expected_params12] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/items/{x}*{y}*-/items/1080*768*-expected_params13] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/thing-2/something+{field}+-/thing-2/something+42+-expected_params14] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/thing-2/something*{field}/notes-/thing-2/something*42/notes-expected_params15] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[/thing-2/something+{field}|{q}/notes-/thing-2/something+else|z/notes-expected_params16] PASSED [ 24%] tests/test_default_router.py::test_user_regression_special_chars[serviceRoot/$metadata#Airports('{field}')/Name-serviceRoot/$metadata#Airports('KSFO')/Name-expected_params17] PASSED [ 24%] tests/test_default_router.py::test_not_str[asgi-uri_template0] PASSED [ 24%] tests/test_default_router.py::test_not_str[asgi-uri_template1] PASSED [ 24%] tests/test_default_router.py::test_not_str[asgi-uri_template2] PASSED [ 24%] tests/test_default_router.py::test_not_str[wsgi-uri_template0] PASSED [ 24%] tests/test_default_router.py::test_not_str[wsgi-uri_template1] PASSED [ 24%] tests/test_default_router.py::test_not_str[wsgi-uri_template2] PASSED [ 24%] tests/test_default_router.py::test_root_path PASSED [ 24%] tests/test_default_router.py::test_duplicate_field_names[/{field}{field}] PASSED [ 24%] tests/test_default_router.py::test_duplicate_field_names[/{field}...{field}] PASSED [ 24%] tests/test_default_router.py::test_duplicate_field_names[/{field}/{another}/{field}] PASSED [ 24%] tests/test_default_router.py::test_duplicate_field_names[/{field}/something/something/{field}/something] PASSED [ 24%] tests/test_default_router.py::test_match_entire_path[/items/thing-/items/t] PASSED [ 24%] tests/test_default_router.py::test_match_entire_path[/items/{x}|{y}|-/items/1080|768] PASSED [ 24%] tests/test_default_router.py::test_match_entire_path[/items/{x}*{y}foo-/items/1080*768foobar] PASSED [ 24%] tests/test_default_router.py::test_match_entire_path[/items/{x}*768*-/items/1080*768***] PASSED [ 24%] tests/test_default_router.py::test_conflict[/teams/{conflict}] PASSED [ 24%] tests/test_default_router.py::test_conflict[/emojis/signs/{id_too}] PASSED [ 24%] tests/test_default_router.py::test_conflict[/repos/{org}/{repo}/compare/{complex}:{vs}...{complex2}:{conflict}] PASSED [ 24%] tests/test_default_router.py::test_conflict[/teams/{id:int}/settings] PASSED [ 25%] tests/test_default_router.py::test_non_conflict[/repos/{org}/{repo}/compare/{simple_vs_complex}] PASSED [ 25%] tests/test_default_router.py::test_non_conflict[/repos/{complex}.{vs}.{simple}] PASSED [ 25%] tests/test_default_router.py::test_non_conflict[/repos/{org}/{repo}/compare/{complex}:{vs}...{complex2}/full] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{org}/{repo}/compare/{}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{}.{thing}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{9v}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{524hello}/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/hello/{1world}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{9v}.{thing}/etc] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{*kgriffs}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{@kgriffs}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{v}.{@thing}/etc] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{-kgriffs}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{-v}.{thing}/etc] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{simple-thing}/etc] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/this and that] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/this\tand\tthat/this\nand\nthat/{thing }/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{thing\t}/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{\nthing}/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{th\x0bing}/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{ thing}/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{ thing }/world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{thing}/wo rld] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/{thing} /world] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{or g}/{repo}/compare/{thing}] PASSED [ 25%] tests/test_default_router.py::test_invalid_field_name[/repos/{org}/{repo}/compare/{th\ting}] PASSED [ 25%] tests/test_default_router.py::test_print_src PASSED [ 25%] tests/test_default_router.py::test_override PASSED [ 25%] tests/test_default_router.py::test_literal_segment PASSED [ 25%] tests/test_default_router.py::test_dead_segment[/teams] PASSED [ 25%] tests/test_default_router.py::test_dead_segment[/emojis/signs] PASSED [ 25%] tests/test_default_router.py::test_dead_segment[/gists] PASSED [ 25%] tests/test_default_router.py::test_dead_segment[/gists/42] PASSED [ 25%] tests/test_default_router.py::test_malformed_pattern[/repos/racker/falcon/compare/foo] PASSED [ 25%] tests/test_default_router.py::test_malformed_pattern[/repos/racker/falcon/compare/foo/full] PASSED [ 25%] tests/test_default_router.py::test_literal PASSED [ 25%] tests/test_default_router.py::test_converters[/cvt/teams/007-expected_params0] PASSED [ 25%] tests/test_default_router.py::test_converters[/cvt/teams/1234/members-expected_params1] PASSED [ 25%] tests/test_default_router.py::test_converters[/cvt/teams/default/members/700-5-expected_params2] PASSED [ 25%] tests/test_default_router.py::test_converters[/cvt/repos/org/repo/compare/xkcd:353-expected_params3] PASSED [ 26%] tests/test_default_router.py::test_converters[/cvt/repos/org/repo/compare/gunmachan:1234...kumamon:5678/part-expected_params4] PASSED [ 26%] tests/test_default_router.py::test_converters[/cvt/repos/xkcd/353/compare/susan:0001/full-expected_params5] PASSED [ 26%] tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(0)}] PASSED [ 26%] tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(num_digits=0)}] PASSED [ 26%] tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(-1)}/baz] PASSED [ 26%] tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(num_digits=-1)}/baz] PASSED [ 26%] tests/test_default_router.py::test_converters_malformed_specification[/foo/{bar:}] PASSED [ 26%] tests/test_default_router.py::test_converters_malformed_specification[/foo/{bar:unknown}/baz] PASSED [ 26%] tests/test_default_router.py::test_variable PASSED [ 26%] tests/test_default_router.py::test_single_character_field_name PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/teams/default-19] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/teams/default/members-7] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/cvt/teams/default-31] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/cvt/teams/default/members/1234-10-32] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/teams/1234-6] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/teams/1234/members-7] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/gists/first-20] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/gists/first/raw-18] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/gists/first/pdf-21] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/gists/1776/pdf-21] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78-13] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78/small.png-24] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78/small(png)-25] PASSED [ 26%] tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78/small_png-26] PASSED [ 26%] tests/test_default_router.py::test_not_found[/this/does/not/exist] PASSED [ 26%] tests/test_default_router.py::test_not_found[/user/bogus] PASSED [ 26%] tests/test_default_router.py::test_not_found[/repos/racker/falcon/compare/johndoe:master...janedoe:dev/bogus] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/42/members/undefined] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/42/undefined] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/42/undefined/segments] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/default/members/undefined] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/default/members/thing/undefined] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/default/members/thing/undefined/segments] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/default/undefined] PASSED [ 26%] tests/test_default_router.py::test_not_found[/teams/default/undefined/segments] PASSED [ 26%] tests/test_default_router.py::test_not_found[/cvt/teams/default/members] PASSED [ 26%] tests/test_default_router.py::test_not_found[/cvt/teams/NaN] PASSED [ 26%] tests/test_default_router.py::test_not_found[/cvt/teams/default/members/NaN] PASSED [ 26%] tests/test_default_router.py::test_not_found[/emojis/signs] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/0/small] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/0/undefined] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/0/undefined/segments] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/20/small] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/20/undefined] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/42/undefined] PASSED [ 27%] tests/test_default_router.py::test_not_found[/emojis/signs/78/undefined] PASSED [ 27%] tests/test_default_router.py::test_subsegment_not_found PASSED [ 27%] tests/test_default_router.py::test_multivar PASSED [ 27%] tests/test_default_router.py::test_complex[-5] PASSED [ 27%] tests/test_default_router.py::test_complex[/full-10] PASSED [ 27%] tests/test_default_router.py::test_complex[/part-15] PASSED [ 27%] tests/test_default_router.py::test_complex_alt[-16-/repos/{org}/{repo}/compare/{usr0}:{branch0}] PASSED [ 27%] tests/test_default_router.py::test_complex_alt[/full-17-/repos/{org}/{repo}/compare/{usr0}:{branch0}/full] PASSED [ 27%] tests/test_default_router.py::test_options_converters_set PASSED [ 27%] tests/test_default_router.py::test_options_converters_update[spam] PASSED [ 27%] tests/test_default_router.py::test_options_converters_update[spam_2] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[has whitespace] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[whitespace ] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[ whitespace ] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[ whitespace] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[funky$character] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[42istheanswer] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name[with-hyphen] PASSED [ 27%] tests/test_default_router.py::test_options_converters_invalid_name_on_update PASSED [ 27%] tests/test_default_router.py::test_params_in_non_taken_branches[/c/foo/arg/baz-expected0-1] PASSED [ 27%] tests/test_default_router.py::test_params_in_non_taken_branches[/c/foo/bar/other-expected1-2] PASSED [ 27%] tests/test_default_router.py::test_params_in_non_taken_branches[/c/foo/42-7/baz-expected2-1] PASSED [ 27%] tests/test_default_router.py::test_params_in_non_taken_branches[/upload/youtube/auth/token-expected3-4] PASSED [ 27%] tests/test_default_router.py::test_params_in_non_taken_branches[/x/y/o.o/w-expected4-7] PASSED [ 27%] tests/test_default_router.py::test_capture_path_no_children PASSED [ 27%] tests/test_default_router.py::test_capture_path_complex[/foo/{bar:path}-x] PASSED [ 27%] tests/test_default_router.py::test_capture_path_complex[/foo/x-{bar:path}] PASSED [ 27%] tests/test_default_router.py::test_capture_path_complex[/foo/{x}-{bar:path}] PASSED [ 27%] tests/test_default_router.py::test_capture_path_complex[/foo/{bar:path}-{x}] PASSED [ 27%] tests/test_default_router.py::test_capture_path[/foo/bar/baz-expected0-1] PASSED [ 27%] tests/test_default_router.py::test_capture_path[/foo/some/path/here-expected1-2] PASSED [ 27%] tests/test_default_router.py::test_capture_path[/foo/bar/bar-expected2-3] PASSED [ 27%] tests/test_default_router.py::test_capture_path[/foo/bar/bar-1/2/3/4/5/5/6/7/8/98/9/0/-/9/-expected3-3] PASSED [ 27%] tests/test_default_router.py::test_capture_path[/x/1/2/3-expected4-5] PASSED [ 27%] tests/test_default_router.py::test_capture_path[/x/1/2/3/4/5/6-expected5-5] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/upload/youtube/auth/token-expected6-4] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/x/y/o.o/w-expected7-4] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/foo-expected8-4] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/foo/-expected9-2] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/foo/bar-expected10-2] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/foo/bar/-expected11-3] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/foo/bar/baz/other-expected12-3] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/y/1/2/3-expected13-6] PASSED [ 28%] tests/test_default_router.py::test_capture_path[/y/1/a/3-expected14-4] PASSED [ 28%] tests/test_default_router.py::test_capture_path_no_match PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPBadRequest-400 Bad Request] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPUnauthorized-401 Unauthorized] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPForbidden-403 Forbidden] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPNotFound-404 Not Found] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPRouteNotFound-404 Not Found] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPNotAcceptable-406 Not Acceptable] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPConflict-409 Conflict] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPGone-410 Gone] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPLengthRequired-411 Length Required] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPPreconditionFailed-412 Precondition Failed] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPContentTooLarge-413 Content Too Large] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPUriTooLong-414 URI Too Long] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPUnsupportedMediaType-415 Unsupported Media Type] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPUnprocessableEntity-422 Unprocessable Entity] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPLocked-423 Locked] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPFailedDependency-424 Failed Dependency] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPPreconditionRequired-428 Precondition Required] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPTooManyRequests-429 Too Many Requests] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPRequestHeaderFieldsTooLarge-431 Request Header Fields Too Large] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPUnavailableForLegalReasons-451 Unavailable For Legal Reasons] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPInternalServerError-500 Internal Server Error] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPNotImplemented-501 Not Implemented] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPBadGateway-502 Bad Gateway] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPServiceUnavailable-503 Service Unavailable] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPGatewayTimeout-504 Gateway Timeout] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPVersionNotSupported-505 HTTP Version Not Supported] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPInsufficientStorage-507 Insufficient Storage] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPLoopDetected-508 Loop Detected] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc[HTTPNetworkAuthenticationRequired-511 Network Authentication Required] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc_args[HTTPMethodNotAllowed-405 Method Not Allowed-args0] PASSED [ 28%] tests/test_error.py::test_with_default_title_and_desc_args[HTTPRangeNotSatisfiable-416 Range Not Satisfiable-args1] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPBadRequest] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPUnauthorized] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPForbidden] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPNotFound] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPRouteNotFound] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPNotAcceptable] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPConflict] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPGone] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPLengthRequired] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPPreconditionFailed] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPContentTooLarge] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPUriTooLong] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPUnsupportedMediaType] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPUnprocessableEntity] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPLocked] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPFailedDependency] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPPreconditionRequired] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPTooManyRequests] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPRequestHeaderFieldsTooLarge] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPUnavailableForLegalReasons] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPInternalServerError] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPNotImplemented] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPBadGateway] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPServiceUnavailable] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPGatewayTimeout] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPVersionNotSupported] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPInsufficientStorage] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPLoopDetected] PASSED [ 29%] tests/test_error.py::test_with_title_desc_and_headers[HTTPNetworkAuthenticationRequired] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPBadRequest] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPUnauthorized] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPForbidden] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPNotFound] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPRouteNotFound] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPNotAcceptable] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPConflict] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPGone] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPLengthRequired] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPPreconditionFailed] PASSED [ 29%] tests/test_error.py::test_kw_only[HTTPContentTooLarge] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPUriTooLong] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPUnsupportedMediaType] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPUnprocessableEntity] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPLocked] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPFailedDependency] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPPreconditionRequired] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPTooManyRequests] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPRequestHeaderFieldsTooLarge] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPUnavailableForLegalReasons] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPInternalServerError] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPNotImplemented] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPBadGateway] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPServiceUnavailable] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPGatewayTimeout] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPVersionNotSupported] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPInsufficientStorage] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPLoopDetected] PASSED [ 30%] tests/test_error.py::test_kw_only[HTTPNetworkAuthenticationRequired] PASSED [ 30%] tests/test_error.py::test_with_title_desc_and_headers_args[HTTPMethodNotAllowed-args0] PASSED [ 30%] tests/test_error.py::test_with_title_desc_and_headers_args[HTTPRangeNotSatisfiable-args1] PASSED [ 30%] tests/test_error.py::test_args_kw_only[HTTPMethodNotAllowed-args0] PASSED [ 30%] tests/test_error.py::test_args_kw_only[HTTPRangeNotSatisfiable-args1] PASSED [ 30%] tests/test_error.py::test_args_kw_only[HTTPInvalidHeader-args2] PASSED [ 30%] tests/test_error.py::test_args_kw_only[HTTPMissingHeader-args3] PASSED [ 30%] tests/test_error.py::test_args_kw_only[HTTPInvalidParam-args4] PASSED [ 30%] tests/test_error.py::test_args_kw_only[HTTPMissingParam-args5] PASSED [ 30%] tests/test_error.py::test_with_retry_after[HTTPServiceUnavailable] PASSED [ 30%] tests/test_error.py::test_with_retry_after[HTTPTooManyRequests] PASSED [ 30%] tests/test_error.py::test_with_retry_after[HTTPContentTooLarge] PASSED [ 30%] tests/test_error.py::test_with_retry_after_and_headers[HTTPServiceUnavailable] PASSED [ 30%] tests/test_error.py::test_with_retry_after_and_headers[HTTPTooManyRequests] PASSED [ 30%] tests/test_error.py::test_with_retry_after_and_headers[HTTPContentTooLarge] PASSED [ 30%] tests/test_error.py::test_http_error_repr PASSED [ 30%] tests/test_error.py::test_custom_400[HTTPInvalidHeader-args0-Invalid header value-The value provided for the "bar" header is invalid. foo] PASSED [ 30%] tests/test_error.py::test_custom_400[HTTPMissingHeader-args1-Missing header value-The "foo" header is required.] PASSED [ 30%] tests/test_error.py::test_custom_400[HTTPInvalidParam-args2-Invalid parameter-The "bar" parameter is invalid. foo] PASSED [ 30%] tests/test_error.py::test_custom_400[HTTPMissingParam-args3-Missing parameter-The "foo" parameter is required.] PASSED [ 30%] tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 30%] tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 30%] tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPContentTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 30%] tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPContentTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPContentTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPContentTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPContentTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 31%] tests/test_error.py::test_http_payload_too_large_deprecation PASSED [ 31%] tests/test_error_handlers.py::TestErrorHandler::test_caught_error[asgi] PASSED [ 31%] tests/test_error_handlers.py::TestErrorHandler::test_caught_error[wsgi] PASSED [ 31%] tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[asgi-None-application/json-{"] PASSED [ 31%] tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[asgi-get_headers1-application/json-{"] PASSED [ 31%] tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[asgi-get_headers2-application/xml-; rel=alternate] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-anonymous-; rel=alternate; crossorigin] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-Anonymous-; rel=alternate; crossorigin] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-AnOnYmOUs-; rel=alternate; crossorigin] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-Use-Credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-use-credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-None-; rel=alternate] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-anonymous-; rel=alternate; crossorigin] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-Anonymous-; rel=alternate; crossorigin] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-AnOnYmOUs-; rel=alternate; crossorigin] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-Use-Credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-use-credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[*] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[Allow-all] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[Lax] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[MUST-REVALIDATE] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[Strict] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[deny] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_with_link_extension[asgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_append_link_with_link_extension[wsgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_content_length_options[asgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_content_length_options[wsgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_set_headers_with_custom_class[asgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_set_headers_with_custom_class[wsgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_headers_with_custom_class_not_callable[asgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_headers_with_custom_class_not_callable[wsgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_request_multiple_header[asgi] PASSED [ 36%] tests/test_headers.py::TestHeaders::test_request_multiple_header[wsgi] PASSED [ 36%] tests/test_hello.py::TestHelloWorld::test_env_headers_list_of_tuples PASSED [ 36%] tests/test_hello.py::TestHelloWorld::test_root_route PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_no_route PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_body[/body-resource0-] PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_body[/bytes-resource1-] PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_body[/data-resource2-] PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_no_body_on_head PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_stream_chunked PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_stream_known_len PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_filelike PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_filelike_closing[ClosingBytesIO-True] PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_filelike_closing[NonClosingBytesIO-False] PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_filelike_using_helper PASSED [ 37%] tests/test_hello.py::TestHelloWorld::test_status_not_set PASSED [ 37%] tests/test_http_custom_method_routing.py::test_map_http_methods[asgi] PASSED [ 37%] tests/test_http_custom_method_routing.py::test_map_http_methods[wsgi] PASSED [ 37%] tests/test_http_custom_method_routing.py::test_environment_override[foo-expected0] SKIPPED [ 37%] tests/test_http_custom_method_routing.py::test_environment_override[FOO-expected1] SKIPPED [ 37%] tests/test_http_custom_method_routing.py::test_environment_override[FOO,-expected2] SKIPPED [ 37%] tests/test_http_custom_method_routing.py::test_environment_override[FOO,BAR-expected3] SKIPPED [ 37%] tests/test_http_custom_method_routing.py::test_environment_override[FOO, BAR-expected4] SKIPPED [ 37%] tests/test_http_custom_method_routing.py::test_environment_override[ foo , BAR -expected5] SKIPPED [ 37%] tests/test_http_custom_method_routing.py::test_foo[asgi] PASSED [ 37%] tests/test_http_custom_method_routing.py::test_foo[wsgi] PASSED [ 37%] tests/test_http_custom_method_routing.py::test_bar[asgi] PASSED [ 37%] tests/test_http_custom_method_routing.py::test_bar[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_get[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_get[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_put[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_put[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_post_not_allowed[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_post_not_allowed[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_report[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_report[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_misc[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_misc[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_simple[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_simple[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_complex[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_complex[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_method_not_allowed_with_param[asgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_method_not_allowed_with_param[wsgi] PASSED [ 37%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_default_on_options[asgi] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_default_on_options[wsgi] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_on_options[asgi] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_on_options[wsgi] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[asgi-WEBSOCKET] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[asgi-SETECASTRONOMY] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[wsgi-WEBSOCKET] PASSED [ 38%] tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[wsgi-SETECASTRONOMY] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_base_class[asgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_base_class[wsgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_no_description_json[asgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_no_description_json[wsgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_no_description_xml[asgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_no_description_xml[wsgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[with_xml-asgi-True] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[with_xml-asgi-False] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[with_xml-wsgi-True] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[with_xml-wsgi-False] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[without_xml-asgi-True] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[without_xml-asgi-False] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[without_xml-wsgi-True] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[without_xml-wsgi-False] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[default_xml-asgi-True] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[default_xml-asgi-False] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[default_xml-wsgi-True] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_xml_enable[default_xml-wsgi-False] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_to_xml_deprecated PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_json_or_xml[asgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_json_or_xml[wsgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer[asgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer[wsgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-GET-/404-404] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-GET-/notfound-404] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-REPORT-/404-405] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-BREW-/notfound-400] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-GET-/404-404] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-GET-/notfound-404] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-REPORT-/404-405] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-BREW-/notfound-400] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_serializer_no_representation[asgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_custom_serializer_no_representation[wsgi] PASSED [ 38%] tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_anything[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_anything[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_forbidden[asgi-application/json] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_forbidden[asgi-application/vnd.company.system.project.resource+json;v=1.1] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_forbidden[asgi-application/json-patch+json] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_forbidden[wsgi-application/json] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_forbidden[wsgi-application/vnd.company.system.project.resource+json;v=1.1] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_forbidden[wsgi-application/json-patch+json] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_json[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_json[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-text/xml] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-application/xml] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-application/vnd.company.system.project.resource+xml;v=1.1] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-application/atom+xml] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-text/xml] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-application/xml] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-application/vnd.company.system.project.resource+xml;v=1.1] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-application/atom+xml] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_unicode_json[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_unicode_json[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_unicode_xml[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_unicode_xml[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_401[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_401[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_404_without_body[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_404_without_body[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_404_with_body[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_404_with_body[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_without_body[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_without_body[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers_double_check[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers_double_check[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_with_body[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_405_with_body[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_410_without_body[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_410_without_body[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_410_with_body[asgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_410_with_body[wsgi] PASSED [ 39%] tests/test_httperror.py::TestHTTPError::test_411[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_411[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_413[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_413[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_temporary_413_integer_retry_after[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_temporary_413_integer_retry_after[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_temporary_413_datetime_retry_after[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_temporary_413_datetime_retry_after[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414_with_title[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414_with_title[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414_with_description[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414_with_description[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414_with_custom_kwargs[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_414_with_custom_kwargs[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_416[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_416[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_429_no_retry_after[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_429_no_retry_after[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_429[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_429[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_429_datetime[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_429_datetime[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_503_integer_retry_after[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_503_integer_retry_after[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_503_datetime_retry_after[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_503_datetime_retry_after[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_invalid_header[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_invalid_header[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_missing_header[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_missing_header[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_invalid_param[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_invalid_param[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_missing_param[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_missing_param[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_misc[asgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_misc[wsgi] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi-503 Service Unavailable-str] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi-503 Service Unavailable-bytes] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi-503-int] PASSED [ 40%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi-503-str] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi-503-bytes] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi-503-HTTPStatus] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi-503 Service Unavailable-str] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi-503 Service Unavailable-bytes] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi-503-int] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi-503-str] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi-503-bytes] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi-503-HTTPStatus] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_to_json_dumps PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_serialize_error_uses_media_handler[asgi] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_serialize_error_uses_media_handler[wsgi] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_serialize_no_json_media_handler[asgi] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_serialize_no_json_media_handler[wsgi] PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_MediaMalformedError PASSED [ 41%] tests/test_httperror.py::TestHTTPError::test_kw_only PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_unknown_accept[asgi] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_unknown_accept[wsgi] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_defaults_to_json[asgi-True] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_defaults_to_json[asgi-False] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_defaults_to_json[wsgi-True] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_defaults_to_json[wsgi-False] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-application/json-application/json-{"title": "410 Gone"}] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-application/xml-application/xml-410 Gone] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-custom/any+json-application/json-{"title": "410 Gone"}] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-custom/any+xml-application/xml-410 Gone] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-application/yaml-application/yaml-title: 410 Gone!] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-application/only_async-application/only_async-this is async] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[asgi-application/async_with_sync-application/async_with_sync-this is sync instead] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-application/json-application/json-{"title": "410 Gone"}] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-application/xml-application/xml-410 Gone] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-custom/any+json-application/json-{"title": "410 Gone"}] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-custom/any+xml-application/xml-410 Gone] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-application/yaml-application/yaml-title: 410 Gone!] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-application/only_async-application/only_async-this is async] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_serializes_error_to_preferred_by_sender[wsgi-application/async_with_sync-application/async_with_sync-this is sync instead] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_json_async_only_error PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[with_xml-asgi-application/xml] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[with_xml-asgi-application/xhtml+xml] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[with_xml-wsgi-application/xml] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[with_xml-wsgi-application/xhtml+xml] PASSED [ 41%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[without_xml-asgi-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[without_xml-asgi-application/xhtml+xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[without_xml-wsgi-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[without_xml-wsgi-application/xhtml+xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[default_xml-asgi-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[default_xml-asgi-application/xhtml+xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[default_xml-wsgi-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_add_xml_handler[default_xml-wsgi-application/xhtml+xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-asgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-asgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-asgi-text/html, application/xhtml+xml, image/jxr, */*-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-asgi-text/html,application/yaml;q=0.8,*/*;q=0.7-application/yaml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-asgi-text/html,application/yaml;q=0.8,application/json;q=0.8-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-wsgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-wsgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-wsgi-text/html, application/xhtml+xml, image/jxr, */*-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-wsgi-text/html,application/yaml;q=0.8,*/*;q=0.7-application/yaml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[with_xml-wsgi-text/html,application/yaml;q=0.8,application/json;q=0.8-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-asgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-asgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-asgi-text/html, application/xhtml+xml, image/jxr, */*-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-asgi-text/html,application/yaml;q=0.8,*/*;q=0.7-application/yaml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-asgi-text/html,application/yaml;q=0.8,application/json;q=0.8-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-wsgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-wsgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-wsgi-text/html, application/xhtml+xml, image/jxr, */*-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-wsgi-text/html,application/yaml;q=0.8,*/*;q=0.7-application/yaml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[without_xml-wsgi-text/html,application/yaml;q=0.8,application/json;q=0.8-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-asgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-asgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-asgi-text/html, application/xhtml+xml, image/jxr, */*-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-asgi-text/html,application/yaml;q=0.8,*/*;q=0.7-application/yaml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-asgi-text/html,application/yaml;q=0.8,application/json;q=0.8-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-wsgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-wsgi-text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8-application/xml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-wsgi-text/html, application/xhtml+xml, image/jxr, */*-application/json] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-wsgi-text/html,application/yaml;q=0.8,*/*;q=0.7-application/yaml] PASSED [ 42%] tests/test_httperror.py::TestDefaultSerializeError::test_hard_content_types[default_xml-wsgi-text/html,application/yaml;q=0.8,application/json;q=0.8-application/json] PASSED [ 42%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_before_hook[asgi] PASSED [ 42%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_before_hook[wsgi] PASSED [ 42%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_responder[asgi] PASSED [ 42%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_responder[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_runs_after_hooks[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_runs_after_hooks[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_survives_after_hooks[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_survives_after_hooks[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_empty_body[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_empty_body[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_request[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_request[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_resource[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_resource[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_runs_process_response[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_runs_process_response[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestNoBodyWithStatus::test_data_is_set[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestNoBodyWithStatus::test_data_is_set[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestNoBodyWithStatus::test_media_is_set[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestNoBodyWithStatus::test_media_is_set[wsgi] PASSED [ 43%] tests/test_httpstatus.py::TestNoBodyWithStatus::test_body_is_set[asgi] PASSED [ 43%] tests/test_httpstatus.py::TestNoBodyWithStatus::test_body_is_set[wsgi] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-200-200_0] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-202-202] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-403-403] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-500-500_0] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-200-200_1] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-305-305] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-404-404] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-501-501] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-200-200_2] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-307-307] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-500-500_1] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-702-702] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-200 OK-200] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[asgi-702 Emacs-702] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-200-200_0] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-202-202] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-403-403] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-500-500_0] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-200-200_1] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-305-305] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-404-404] PASSED [ 43%] tests/test_httpstatus.py::test_non_string_status[wsgi-501-501] PASSED [ 44%] tests/test_httpstatus.py::test_non_string_status[wsgi-200-200_2] PASSED [ 44%] tests/test_httpstatus.py::test_non_string_status[wsgi-307-307] PASSED [ 44%] tests/test_httpstatus.py::test_non_string_status[wsgi-500-500_1] PASSED [ 44%] tests/test_httpstatus.py::test_non_string_status[wsgi-702-702] PASSED [ 44%] tests/test_httpstatus.py::test_non_string_status[wsgi-200 OK-200] PASSED [ 44%] tests/test_httpstatus.py::test_non_string_status[wsgi-702 Emacs-702] PASSED [ 44%] tests/test_httpstatus.py::test_deprecated_body PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_empty_app[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_empty_app[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_dependent_middleware[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_dependent_middleware[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_app[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_app[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_routes[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_routes[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_routes_empty_paths[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_routes_empty_paths[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_static_routes[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_static_routes[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_sink[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_sink[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_error_handler[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_error_handler[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_middleware[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_middleware[wsgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_middleware_tree[asgi] PASSED [ 44%] tests/test_inspect.py::TestInspectApp::test_middleware_tree[wsgi] PASSED [ 44%] tests/test_inspect.py::test_route_method_info_suffix PASSED [ 44%] tests/test_inspect.py::TestRouter::test_compiled_partial PASSED [ 44%] tests/test_inspect.py::TestRouter::test_compiled_no_method_map PASSED [ 44%] tests/test_inspect.py::TestRouter::test_register_router_not_found PASSED [ 44%] tests/test_inspect.py::TestRouter::test_register_other_router PASSED [ 44%] tests/test_inspect.py::TestRouter::test_register_router_multiple_time PASSED [ 44%] tests/test_inspect.py::test_info_class_repr_to_string PASSED [ 44%] tests/test_inspect.py::TestInspectVisitor::test_inspect_visitor PASSED [ 44%] tests/test_inspect.py::TestInspectVisitor::test_process PASSED [ 44%] tests/test_inspect.py::test_string_visitor_class PASSED [ 44%] tests/test_inspect.py::TestStringVisitor::test_route_method[True] PASSED [ 44%] tests/test_inspect.py::TestStringVisitor::test_route_method[False] PASSED [ 44%] tests/test_inspect.py::TestStringVisitor::test_route_method_verbose[True] PASSED [ 44%] tests/test_inspect.py::TestStringVisitor::test_route_method_verbose[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_route[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_route[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_route_verbose[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_route_verbose[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_route_no_methods[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_route_no_methods[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_static_route[True-True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_static_route[True-False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_static_route[False-True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_static_route[False-False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_sink[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_sink[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_sink_verbose[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_sink_verbose[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_error_handler[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_error_handler[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_error_handler_verbose[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_error_handler_verbose[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_method[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_method[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_method_verbose[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_method_verbose[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_class[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_class[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_class_verbose[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_class_verbose[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_class_no_methods[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_class_no_methods[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[True-True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[True-False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[False-True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[False-False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree[True-True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree[True-False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree[False-True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree[False-False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_response_only[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_response_only[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_response[True] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_response[False] PASSED [ 45%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_resource[True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_resource[False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_middleware[True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_middleware[False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_middleware_verbose[True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_middleware_verbose[False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app[True-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app[True-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app[False-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app[False-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_routes[True-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_routes[True-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_routes[False-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_routes[False-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[True-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[True-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[False-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[False-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_static_routes[True-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_static_routes[True-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_static_routes[False-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_static_routes[False-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_sink[True-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_sink[True-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_sink[False-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_sink[False-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_errors[True-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_errors[True-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_errors[False-True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_no_errors[False-False] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_name[True] PASSED [ 46%] tests/test_inspect.py::TestStringVisitor::test_app_name[False] PASSED [ 46%] tests/test_inspect.py::test_is_internal PASSED [ 46%] tests/test_media_handlers.py::test_check_json_library[mujson] PASSED [ 46%] tests/test_media_handlers.py::test_check_json_library[orjson] PASSED [ 46%] tests/test_media_handlers.py::test_check_json_library[rapidjson] PASSED [ 46%] tests/test_media_handlers.py::test_check_json_library[ujson] PASSED [ 46%] tests/test_media_handlers.py::test_serialization[asgi-None-body0-{"test":"value"}] PASSED [ 46%] tests/test_media_handlers.py::test_serialization[asgi-func1-body1-[{"test":"value"},{"ensure_ascii":true}]] PASSED [ 46%] tests/test_media_handlers.py::test_serialization[asgi-None-body2-{"yen":"\xc2\xa5"}] PASSED [ 46%] tests/test_media_handlers.py::test_serialization[asgi-func3-body3-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[asgi-dumps-body4-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[asgi-dumps-body5-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[asgi-dumps-body6-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-None-body0-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-func1-body1-[{"test":"value"},{"ensure_ascii":true}]] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-None-body2-{"yen":"\xc2\xa5"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-func3-body3-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-dumps-body4-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-dumps-body5-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_serialization[wsgi-dumps-body6-{"test":"value"}] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[asgi-None-[1, 2]-expected0] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[asgi-func1-{"key": "value"}-expected1] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[asgi-temp_json_func-{"test": "value"}-expected2] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[asgi-loads-{"test": "value"}-expected3] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[asgi-loads-{"test": "value"}-expected4] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[asgi-loads-{"test": "value"}-expected5] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[wsgi-None-[1, 2]-expected0] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[wsgi-func1-{"key": "value"}-expected1] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[wsgi-temp_json_func-{"test": "value"}-expected2] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[wsgi-loads-{"test": "value"}-expected3] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[wsgi-loads-{"test": "value"}-expected4] PASSED [ 47%] tests/test_media_handlers.py::test_deserialization[wsgi-loads-{"test": "value"}-expected5] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-True-stdlib] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-True-mujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-True-orjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-True-rapidjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-True-ujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-False-stdlib] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-False-mujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-False-orjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-False-rapidjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[asgi-False-ujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-True-stdlib] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-True-mujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-True-orjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-True-rapidjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-True-ujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-False-stdlib] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-False-mujson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-False-orjson] PASSED [ 47%] tests/test_media_handlers.py::test_full_app[wsgi-False-rapidjson] PASSED [ 48%] tests/test_media_handlers.py::test_full_app[wsgi-False-ujson] PASSED [ 48%] tests/test_media_handlers.py::test_deserialization_raises[asgi-application/json] PASSED [ 48%] tests/test_media_handlers.py::test_deserialization_raises[asgi-application/json; answer=42] PASSED [ 48%] tests/test_media_handlers.py::test_deserialization_raises[wsgi-application/json] PASSED [ 48%] tests/test_media_handlers.py::test_deserialization_raises[wsgi-application/json; answer=42] PASSED [ 48%] tests/test_media_handlers.py::test_sync_methods_not_overridden[asgi] PASSED [ 48%] tests/test_media_handlers.py::test_sync_methods_not_overridden[wsgi] PASSED [ 48%] tests/test_media_handlers.py::test_async_methods_not_overridden PASSED [ 48%] tests/test_media_handlers.py::test_async_handler_returning_none PASSED [ 48%] tests/test_media_handlers.py::test_json_err_no_handler[asgi] PASSED [ 48%] tests/test_media_handlers.py::test_json_err_no_handler[wsgi] PASSED [ 48%] tests/test_media_handlers.py::test_handlers_include_new_media_handlers_in_resolving PASSED [ 48%] tests/test_media_handlers.py::TestBaseHandler::test_defaultError PASSED [ 48%] tests/test_media_handlers.py::TestBaseHandler::test_json PASSED [ 48%] tests/test_media_multipart.py::test_parse[5b11af82ab65407ba8cdccf37d2a9c4f] PASSED [ 48%] tests/test_media_multipart.py::test_parse[---------------------------1574247108204320607285918568] PASSED [ 48%] tests/test_media_multipart.py::test_parse[BOUNDARY] PASSED [ 48%] tests/test_media_multipart.py::test_parse[boundary] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-7] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-8] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-9] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-10] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-32] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-64] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-128] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[32-256] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-7] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-8] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-9] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-10] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-32] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-64] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-128] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[64-256] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-7] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-8] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-9] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-10] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-32] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-64] PASSED [ 48%] tests/test_media_multipart.py::test_parsing_correctness[128-128] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[128-256] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-7] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-8] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-9] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-10] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-32] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-64] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-128] PASSED [ 49%] tests/test_media_multipart.py::test_parsing_correctness[256-256] PASSED [ 49%] tests/test_media_multipart.py::test_missing_boundary PASSED [ 49%] tests/test_media_multipart.py::test_empty_input PASSED [ 49%] tests/test_media_multipart.py::test_serialize PASSED [ 49%] tests/test_media_multipart.py::test_invalid_text_or_charset[utf-8-Impossible byte: \xff] PASSED [ 49%] tests/test_media_multipart.py::test_invalid_text_or_charset[utf-8-Overlong... \xfc\x83\xbf\xbf\xbf\xbf ... sequence] PASSED [ 49%] tests/test_media_multipart.py::test_invalid_text_or_charset[ascii-\x80\x80\x80] PASSED [ 49%] tests/test_media_multipart.py::test_invalid_text_or_charset[pecyn-AAHEHlRoZSBGYWxjb24gV2ViIEZyYW1ld29yaywgMjAxOQ==] PASSED [ 49%] tests/test_media_multipart.py::test_unknown_header PASSED [ 49%] tests/test_media_multipart.py::test_from_buffered_stream PASSED [ 49%] tests/test_media_multipart.py::test_body_part_media PASSED [ 49%] tests/test_media_multipart.py::test_body_part_properties PASSED [ 49%] tests/test_media_multipart.py::test_empty_or_missing_filename PASSED [ 49%] tests/test_media_multipart.py::test_upload_multipart[asgi] PASSED [ 49%] tests/test_media_multipart.py::test_upload_multipart[wsgi] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[asgi-] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[asgi---] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[asgi-\n] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[asgi-\n\n] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[asgi- <-- no CRLF] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[asgi-\U0001f4a5] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[wsgi-] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[wsgi---] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[wsgi-\n] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[wsgi-\n\n] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[wsgi- <-- no CRLF] PASSED [ 49%] tests/test_media_multipart.py::test_epilogue[wsgi-\U0001f4a5] PASSED [ 49%] tests/test_media_multipart.py::test_truncated_form[asgi-1] PASSED [ 49%] tests/test_media_multipart.py::test_truncated_form[asgi-2] PASSED [ 49%] tests/test_media_multipart.py::test_truncated_form[asgi-3] PASSED [ 49%] tests/test_media_multipart.py::test_truncated_form[asgi-4] PASSED [ 49%] tests/test_media_multipart.py::test_truncated_form[wsgi-1] PASSED [ 50%] tests/test_media_multipart.py::test_truncated_form[wsgi-2] PASSED [ 50%] tests/test_media_multipart.py::test_truncated_form[wsgi-3] PASSED [ 50%] tests/test_media_multipart.py::test_truncated_form[wsgi-4] PASSED [ 50%] tests/test_media_multipart.py::test_unexpected_form_structure[asgi] PASSED [ 50%] tests/test_media_multipart.py::test_unexpected_form_structure[wsgi] PASSED [ 50%] tests/test_media_multipart.py::test_data_too_large[asgi] PASSED [ 50%] tests/test_media_multipart.py::test_data_too_large[wsgi] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-0] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-1] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-2] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-3] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-4] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-5] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-6] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-100] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[asgi-1000] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-0] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-1] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-2] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-3] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-4] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-5] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-6] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-100] PASSED [ 50%] tests/test_media_multipart.py::test_too_many_body_parts[wsgi-1000] PASSED [ 50%] tests/test_media_multipart.py::test_random_form[asgi---] PASSED [ 50%] tests/test_media_multipart.py::test_random_form[asgi---\r\n] PASSED [ 50%] tests/test_media_multipart.py::test_random_form[wsgi---] PASSED [ 50%] tests/test_media_multipart.py::test_random_form[wsgi---\r\n] PASSED [ 50%] tests/test_media_multipart.py::test_invalid_random_form[asgi] PASSED [ 50%] tests/test_media_multipart.py::test_invalid_random_form[wsgi] PASSED [ 50%] tests/test_media_multipart.py::test_nested_multipart_mixed PASSED [ 50%] tests/test_media_multipart.py::test_content_transfer_encoding_header[asgi] PASSED [ 50%] tests/test_media_multipart.py::test_content_transfer_encoding_header[wsgi] PASSED [ 50%] tests/test_media_multipart.py::test_unsupported_charset[asgi] PASSED [ 50%] tests/test_media_multipart.py::test_unsupported_charset[wsgi] PASSED [ 50%] tests/test_media_multipart.py::test_filename_star[asgi] PASSED [ 50%] tests/test_media_multipart.py::test_filename_star[wsgi] PASSED [ 50%] tests/test_media_multipart.py::test_headers_edge_cases[asgi-64] PASSED [ 50%] tests/test_media_multipart.py::test_headers_edge_cases[asgi-140] PASSED [ 50%] tests/test_media_multipart.py::test_headers_edge_cases[asgi-141] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[asgi-142] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[asgi-256] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[asgi-1024] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[wsgi-64] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[wsgi-140] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[wsgi-141] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[wsgi-142] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[wsgi-256] PASSED [ 51%] tests/test_media_multipart.py::test_headers_edge_cases[wsgi-1024] PASSED [ 51%] tests/test_media_multipart.py::test_deserialize_part_media[asgi] PASSED [ 51%] tests/test_media_multipart.py::test_deserialize_part_media[wsgi] PASSED [ 51%] tests/test_media_multipart.py::test_deserialize_custom_media[asgi] PASSED [ 51%] tests/test_media_multipart.py::test_deserialize_custom_media[wsgi] PASSED [ 51%] tests/test_media_multipart.py::test_multipart_parse_options_default_handlers_unique PASSED [ 51%] tests/test_media_urlencoded.py::test_deserialize_empty_form PASSED [ 51%] tests/test_media_urlencoded.py::test_deserialize_invalid_unicode PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form_handler_serialize[data0-hello=world] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form_handler_serialize[data1-number=1&number=2] PASSED [ 51%] tests/test_media_urlencoded.py::test_empty_form[asgi] PASSED [ 51%] tests/test_media_urlencoded.py::test_empty_form[wsgi] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[asgi-a=1&b=&c=3-expected0] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[asgi-param=undefined-expected1] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[asgi-color=green&color=black-expected2] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[asgi-food=hamburger+%28%F0%9F%8D%94%29&sauce=BBQ-expected3] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[asgi-flag%1&flag%2&flag%1&flag%2-expected4] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-a=1&b=&c=3-expected0] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-param=undefined-expected1] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-color=green&color=black-expected2] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-food=hamburger+%28%F0%9F%8D%94%29&sauce=BBQ-expected3] PASSED [ 51%] tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-flag%1&flag%2&flag%1&flag%2-expected4] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[-expected0] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[strange-expected1] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[text/plain-expected2] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[text/plain -expected3] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[ text/plain-expected4] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[ text/plain -expected5] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[ text/plain -expected6] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[falcon/peregrine; key1; key2=value; key3-expected7] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[audio/pcm;rate=48000;encoding=float;bits=32-expected8] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header[falcon/*; genus=falco; family=falconidae; class=aves; -expected9] PASSED [ 51%] tests/test_mediatypes.py::test_parse_header["falcon/peregrine" ; key="value"-expected10] PASSED [ 52%] tests/test_mediatypes.py::test_parse_header[falcon/peregrine; empty=""-expected11] PASSED [ 52%] tests/test_mediatypes.py::test_parse_header[falcon/peregrine; quote="-expected12] PASSED [ 52%] tests/test_mediatypes.py::test_parse_header[text/plain; charset=utf-8-expected13] PASSED [ 52%] tests/test_mediatypes.py::test_parse_header[stuff/strange; missing-value; missing-another-expected14] PASSED [ 52%] tests/test_mediatypes.py::test_parse_header[stuff/strange; missing-value\\missing-another-expected15] PASSED [ 52%] tests/test_mediatypes.py::test_parse_header[application/falcon; P1 = "key; value"; P2="\\""-expected16] PASSED [ 52%] tests/test_mediatypes.py::test_media_type_private_cls PASSED [ 52%] tests/test_mediatypes.py::test_media_range_private_cls PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-7231-text/html;level=1-1.0] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-7231-text/html-0.7] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-7231-text/plain-0.3] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-7231-image/jpeg-0.5] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-7231-text/html;level=2-0.4] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-7231-text/html;level=3-0.7] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-9110-text/html;level=1-1.0] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-9110-text/html-0.7] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-9110-text/plain-0.3] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-9110-image/jpeg-0.5] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-9110-text/html;level=2-0.4] PASSED [ 52%] tests/test_mediatypes.py::test_quality_rfc_examples[RFC-9110-text/html;level=3-0.7] PASSED [ 52%] tests/test_mediatypes.py::test_quality[application/*, */wildcard; q=0.7, */*; q=0.25-test/wildcard; expect=pass-0.7] PASSED [ 52%] tests/test_mediatypes.py::test_quality[application/*, */wildcard; q=0.7, */*; q=0.25-application/wildcard; expect=pass-1.0] PASSED [ 52%] tests/test_mediatypes.py::test_quality[application/*, */wildcard; q=0.7, */*; q=0.25-test/something; expect=pass-0.25] PASSED [ 52%] tests/test_mediatypes.py::test_quality[text/x-python, text/*; q=0.33, text/plain; format=fixed-text/plain; format=flowed-0.33] PASSED [ 52%] tests/test_mediatypes.py::test_quality[text/*;q=0.3, text/html;level=1, text/html;q=0.7, text/html;level=2;q=0.4, */*;q=0.5-text/html; level=3-0.7] PASSED [ 52%] tests/test_mediatypes.py::test_quality_prefer_exact_match[foo/bar, test/app; q=0.2, test/app; p=1; q=0.9, test/app;p=1;r=2-test/app] PASSED [ 52%] tests/test_mediatypes.py::test_quality_prefer_exact_match[test/app; q=0.1, test/app; p=1; q=0.2, test/app;p=1;r=2-test/app; p=1] PASSED [ 52%] tests/test_mediatypes.py::test_quality_prefer_exact_match[*/app; q=0.1, simple/app; test=true; q=0.2, simple/app; color=blue-simple/app; test=true] PASSED [ 52%] tests/test_mediatypes.py::test_quality_none_matches[application/json-application/yaml] PASSED [ 52%] tests/test_mediatypes.py::test_quality_none_matches[audio/*; q=0.2, audio/basic-video/mp3] PASSED [ 52%] tests/test_mediatypes.py::test_quality_none_matches[falcon/peregrine; speed=high; unladen=true-falcon/peregrine; speed=average] PASSED [ 52%] tests/test_mediatypes.py::test_quality_none_matches[text/html, text/plain-text/x-python] PASSED [ 52%] tests/test_mediatypes.py::test_quality_none_matches[*/json; q=0.2, application/json-application/msgpack] PASSED [ 52%] tests/test_mediatypes.py::test_quality_none_matches[text/x-python, image/*; q=0.33, text/plain; format=fixed-text/plain; format=flowed] PASSED [ 52%] tests/test_mediatypes.py::test_best_match[media_types0-application/json-application/json] PASSED [ 52%] tests/test_mediatypes.py::test_best_match[media_types1-application/json; charset=utf-8-application/json] PASSED [ 52%] tests/test_mediatypes.py::test_best_match[media_types2-application/json, */*; q=0.2-application/json] PASSED [ 52%] tests/test_mediatypes.py::test_best_match_none_matches[media_types0-application/yaml] PASSED [ 52%] tests/test_mediatypes.py::test_best_match_none_matches[media_types1-video/mp3] PASSED [ 52%] tests/test_mediatypes.py::test_best_match_none_matches[media_types2-falcon/peregrine; speed=average] PASSED [ 52%] tests/test_mediatypes.py::test_best_match_none_matches[media_types3-text/x-python] PASSED [ 53%] tests/test_mediatypes.py::test_best_match_none_matches[media_types4-application/msgpack] PASSED [ 53%] tests/test_mediatypes.py::test_best_match_none_matches[media_types5-text/plain; format=flowed] PASSED [ 53%] tests/test_mediatypes.py::test_best_match_none_matches[media_types6-application/xml, text/*; q=0.7] PASSED [ 53%] tests/test_mediatypes.py::test_best_match_none_matches[media_types7-falcon/peregrine; load=heavy] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_type[] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_type[word document] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_type[text] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[word document] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[text] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[text/plain; q=high] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[*/*; q=inf] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[*/*; q=-inf] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[*/*; q=nan] PASSED [ 53%] tests/test_mediatypes.py::test_invalid_media_range[application/very-important; q=1337.0] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[media_types0-*/*] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[media_types0-application/xml, text/*; q=0.7, */*; q=0.3] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[media_types1-*/*] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[media_types1-application/xml, text/*; q=0.7, */*; q=0.3] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[media_types2-*/*] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[media_types2-application/xml, text/*; q=0.7, */*; q=0.3] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[_generate_strings-*/*] PASSED [ 53%] tests/test_mediatypes.py::test_empty_media_types[_generate_strings-application/xml, text/*; q=0.7, */*; q=0.3] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_skip_process_resource[asgi] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_skip_process_resource[wsgi] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_add_invalid_middleware[asgi] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_add_invalid_middleware[wsgi] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_response_middleware_raises_exception[asgi] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_response_middleware_raises_exception[wsgi] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[asgi-True] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[asgi-False] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[wsgi-True] PASSED [ 53%] tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[wsgi-False] PASSED [ 53%] tests/test_middleware.py::TestTransactionIdMiddleware::test_generate_trans_id_with_request[asgi] PASSED [ 53%] tests/test_middleware.py::TestTransactionIdMiddleware::test_generate_trans_id_with_request[wsgi] PASSED [ 53%] tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[asgi-True] PASSED [ 53%] tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[asgi-False] PASSED [ 53%] tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[wsgi-True] PASSED [ 53%] tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[wsgi-False] PASSED [ 53%] tests/test_middleware.py::TestSeveralMiddlewares::test_legacy_middleware_called_with_correct_args[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_legacy_middleware_called_with_correct_args[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_middleware_execution_order[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_middleware_execution_order[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_independent_middleware_execution_order[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_independent_middleware_execution_order[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_multiple_response_mw_throw_exception[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_multiple_response_mw_throw_exception[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_inner_mw_throw_exception[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_inner_mw_throw_exception[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_inner_mw_throw_exception_while_processing_resp[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_inner_mw_throw_exception_while_processing_resp[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_inner_mw_with_ex_handler_throw_exception[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_inner_mw_with_ex_handler_throw_exception[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_outer_mw_with_ex_handler_throw_exception[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_outer_mw_with_ex_handler_throw_exception[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_resp[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_resp[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_resp[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_resp[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_req[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_req[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_req[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_req[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_rsrc[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_rsrc[wsgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_rsrc[asgi] PASSED [ 54%] tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_rsrc[wsgi] PASSED [ 54%] tests/test_middleware.py::TestRemoveBasePathMiddleware::test_base_path_is_removed_before_routing[asgi] PASSED [ 54%] tests/test_middleware.py::TestRemoveBasePathMiddleware::test_base_path_is_removed_before_routing[wsgi] PASSED [ 54%] tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[asgi-True] PASSED [ 54%] tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[asgi-False] PASSED [ 54%] tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[wsgi-True] PASSED [ 54%] tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[wsgi-False] PASSED [ 54%] tests/test_middleware.py::TestEmptySignatureMiddleware::test_dont_need_params_in_signature[asgi] PASSED [ 54%] tests/test_middleware.py::TestEmptySignatureMiddleware::test_dont_need_params_in_signature[wsgi] PASSED [ 54%] tests/test_middleware.py::TestErrorHandling::test_error_composed_before_resp_middleware_called[asgi] PASSED [ 54%] tests/test_middleware.py::TestErrorHandling::test_error_composed_before_resp_middleware_called[wsgi] PASSED [ 54%] tests/test_middleware.py::TestErrorHandling::test_http_status_raised_from_error_handler[asgi] PASSED [ 54%] tests/test_middleware.py::TestErrorHandling::test_http_status_raised_from_error_handler[wsgi] PASSED [ 54%] tests/test_middleware.py::TestShortCircuiting::test_process_request_not_cached[asgi] PASSED [ 54%] tests/test_middleware.py::TestShortCircuiting::test_process_request_not_cached[wsgi] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_request_cached[asgi-True] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_request_cached[asgi-False] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_request_cached[wsgi-True] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_request_cached[wsgi-False] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_resource_cached[asgi-True] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_resource_cached[asgi-False] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_resource_cached[wsgi-True] PASSED [ 55%] tests/test_middleware.py::TestShortCircuiting::test_process_resource_cached[wsgi-False] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw0-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw1-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw2-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw3-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw4-False] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw5-False] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw0-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw1-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw2-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw3-True] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw4-False] PASSED [ 55%] tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw5-False] PASSED [ 55%] tests/test_middleware.py::test_async_postfix_method_must_be_coroutine SKIPPED [ 55%] tests/test_options.py::TestRequestOptions::test_option_defaults PASSED [ 55%] tests/test_options.py::TestRequestOptions::test_options_toggle[keep_blank_qs_values] PASSED [ 55%] tests/test_options.py::TestRequestOptions::test_options_toggle[auto_parse_form_urlencoded] PASSED [ 55%] tests/test_options.py::TestRequestOptions::test_options_toggle[auto_parse_qs_csv] PASSED [ 55%] tests/test_options.py::TestRequestOptions::test_options_toggle[strip_url_path_trailing_slash] PASSED [ 55%] tests/test_options.py::TestRequestOptions::test_incorrect_options PASSED [ 55%] tests/test_python_version_requirements.py::test_asgi PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_none[simulate_request_get_query_params-asgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_none[simulate_request_get_query_params-wsgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_default[simulate_request_get_query_params-asgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_default[simulate_request_get_query_params-wsgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_get_query_params-asgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_get_query_params-wsgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_get_query_params-asgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_get_query_params-wsgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_get_query_params-asgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_get_query_params-wsgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_get_query_params-asgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_get_query_params-wsgi] PASSED [ 55%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_true[simulate_request_get_query_params-asgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_true[simulate_request_get_query_params-wsgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_false[simulate_request_get_query_params-asgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_false[simulate_request_get_query_params-wsgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1&t=3,4-False-expected0] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1&t=2&t=3,4-False-expected1] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1,2&t=3,4-False-expected2] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1,,2&t=3,4-False-expected3] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1,,2&t=3,4-True-expected4] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1,2&t=3,4,,5-False-expected5] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1&t=,1,4,,5-False-expected6] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1&t=,1,4,,5-True-expected7] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-asgi-t=1&t=,1,4,,5&t=a,b,c-True-expected8] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1&t=3,4-False-expected0] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1&t=2&t=3,4-False-expected1] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1,2&t=3,4-False-expected2] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1,,2&t=3,4-False-expected3] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1,,2&t=3,4-True-expected4] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1,2&t=3,4,,5-False-expected5] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1&t=,1,4,,5-False-expected6] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1&t=,1,4,,5-True-expected7] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_get_query_params-wsgi-t=1&t=,1,4,,5&t=a,b,c-True-expected8] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_get_query_params-asgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_get_query_params-wsgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_get_query_params-asgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_get_query_params-wsgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_get_query_params-asgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_get_query_params-wsgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_get_query_params-asgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_get_query_params-wsgi] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_int] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_float] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_uuid] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_bool] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_list] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_int] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_float] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_uuid] PASSED [ 56%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_bool] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_list] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_int[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_int[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_float[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_float[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_get_query_params-wsgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_get_query_params-asgi] PASSED [ 57%] tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-asgi-%Y%m%d %H:%M:%S-20150420 10:10:10-expected0] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-asgi-%Y-%m-%dT%H:%M:%SZ-2015-04-20T10:10:10Z-expected1] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-asgi-%Y%m%dT%H:%M:%S.%fZ-20150420T10:10:10.133701Z-expected2] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-wsgi-%Y%m%d %H:%M:%S-20150420 10:10:10-expected0] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-wsgi-%Y-%m-%dT%H:%M:%SZ-2015-04-20T10:10:10Z-expected1] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-wsgi-%Y%m%dT%H:%M:%S.%fZ-20150420T10:10:10.133701Z-expected2] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_get_query_params-asgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_get_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_none[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_none[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_default[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_default[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_true[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 58%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_true[simulate_request_post_query_params-wsgi] PASSED [ 58%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_false[simulate_request_post_query_params-asgi] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_false[simulate_request_post_query_params-wsgi] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1&t=3,4-False-expected0] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1&t=2&t=3,4-False-expected1] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1,2&t=3,4-False-expected2] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1,,2&t=3,4-False-expected3] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1,,2&t=3,4-True-expected4] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1,2&t=3,4,,5-False-expected5] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1&t=,1,4,,5-False-expected6] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1&t=,1,4,,5-True-expected7] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-asgi-t=1&t=,1,4,,5&t=a,b,c-True-expected8] SKIPPED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1&t=3,4-False-expected0] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1&t=2&t=3,4-False-expected1] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1,2&t=3,4-False-expected2] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1,,2&t=3,4-False-expected3] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1,,2&t=3,4-True-expected4] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1,2&t=3,4,,5-False-expected5] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1&t=,1,4,,5-False-expected6] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1&t=,1,4,,5-True-expected7] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_true[simulate_request_post_query_params-wsgi-t=1&t=,1,4,,5&t=a,b,c-True-expected8] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_post_query_params-wsgi] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_post_query_params-wsgi] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_post_query_params-wsgi] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_post_query_params-wsgi] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_int] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_float] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_uuid] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_bool] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_list] SKIPPEDm_urlencoded) [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_int] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_float] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_uuid] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_bool] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_list] PASSED [ 59%] tests/test_query_params.py::TestQueryParams::test_int[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_int[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_float[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_float[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_post_query_params-wsgi] PASSED [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%] tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-asgi-%Y%m%d %H:%M:%S-20150420 10:10:10-expected0] SKIPPED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-asgi-%Y-%m-%dT%H:%M:%SZ-2015-04-20T10:10:10Z-expected1] SKIPPED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-asgi-%Y%m%dT%H:%M:%S.%fZ-20150420T10:10:10.133701Z-expected2] SKIPPED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-wsgi-%Y%m%d %H:%M:%S-20150420 10:10:10-expected0] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-wsgi-%Y-%m-%dT%H:%M:%SZ-2015-04-20T10:10:10Z-expected1] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-wsgi-%Y%m%dT%H:%M:%S.%fZ-20150420T10:10:10.133701Z-expected2] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_post_query_params-wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_param_as_json_handler_json[asgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_param_as_json_handler_json[wsgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_param_as_json_no_handler_json[asgi] PASSED [ 61%] tests/test_query_params.py::TestQueryParams::test_get_param_as_json_no_handler_json[wsgi] PASSED [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-POST] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-PUT] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-PATCH] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-DELETE] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-OPTIONS] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-POST] PASSED [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-PUT] PASSED [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-PATCH] PASSED [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-DELETE] PASSED [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-OPTIONS] PASSED [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[asgi-GET] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[asgi-HEAD] SKIPPEDm_urlencoded) [ 61%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[wsgi-GET] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[wsgi-HEAD] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParams::test_non_ascii[asgi] SKIPPEDm_urlencoded) [ 62%] tests/test_query_params.py::TestPostQueryParams::test_non_ascii[wsgi] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParams::test_empty_body[asgi] SKIPPEDm_urlencoded) [ 62%] tests/test_query_params.py::TestPostQueryParams::test_empty_body[wsgi] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParams::test_empty_body_no_content_length[asgi] SKIPPEDm_urlencoded) [ 62%] tests/test_query_params.py::TestPostQueryParams::test_empty_body_no_content_length[wsgi] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParams::test_explicitly_disable_auto_parse[asgi] SKIPPEDm_urlencoded) [ 62%] tests/test_query_params.py::TestPostQueryParams::test_explicitly_disable_auto_parse[wsgi] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParams::test_asgi_raises_error PASSED [ 62%] tests/test_query_params.py::TestPostQueryParamsDefaultBehavior::test_dont_auto_parse_by_default[asgi] PASSED [ 62%] tests/test_query_params.py::TestPostQueryParamsDefaultBehavior::test_dont_auto_parse_by_default[wsgi] PASSED [ 62%] tests/test_recipes.py::TestMultipartMixed::test_parse PASSED [ 62%] tests/test_recipes.py::TestOutputCSV::test_csv_output[asgi-simple] PASSED [ 62%] tests/test_recipes.py::TestOutputCSV::test_csv_output[asgi-stream] PASSED [ 62%] tests/test_recipes.py::TestOutputCSV::test_csv_output[wsgi-simple] PASSED [ 62%] tests/test_recipes.py::TestOutputCSV::test_csv_output[wsgi-stream] PASSED [ 62%] tests/test_recipes.py::TestPrettyJSON::test_optional_indent PASSED [ 62%] tests/test_recipes.py::TestRawURLPath::test_raw_path[asgi] PASSED [ 62%] tests/test_recipes.py::TestRawURLPath::test_raw_path[wsgi] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[asgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[asgi-POST-302 Found-/found] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[asgi-PUT-303 See Other-/see/other] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[asgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[asgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[wsgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[wsgi-POST-302 Found-/found] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[wsgi-PUT-303 See Other-/see/other] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[wsgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect[wsgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-POST-302 Found-/found] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-PUT-303 See Other-/see/other] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-POST-302 Found-/found] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-PUT-303 See Other-/see/other] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 62%] tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 62%] tests/test_request_access_route.py::test_remote_addr_default[asgi] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr_default[wsgi] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr_non_default[asgi] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr_non_default[wsgi] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr_only[asgi] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr_only[wsgi] PASSED [ 63%] tests/test_request_access_route.py::test_rfc_forwarded[asgi] PASSED [ 63%] tests/test_request_access_route.py::test_rfc_forwarded[wsgi] PASSED [ 63%] tests/test_request_access_route.py::test_malformed_rfc_forwarded[asgi] PASSED [ 63%] tests/test_request_access_route.py::test_malformed_rfc_forwarded[wsgi] PASSED [ 63%] tests/test_request_access_route.py::test_x_forwarded_for[asgi-True] PASSED [ 63%] tests/test_request_access_route.py::test_x_forwarded_for[asgi-False] PASSED [ 63%] tests/test_request_access_route.py::test_x_forwarded_for[wsgi-True] PASSED [ 63%] tests/test_request_access_route.py::test_x_forwarded_for[wsgi-False] PASSED [ 63%] tests/test_request_access_route.py::test_x_real_ip[asgi] PASSED [ 63%] tests/test_request_access_route.py::test_x_real_ip[wsgi] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr[asgi-10.0.0.1] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr[asgi-98.245.211.177] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr[wsgi-10.0.0.1] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr[wsgi-98.245.211.177] PASSED [ 63%] tests/test_request_access_route.py::test_remote_addr_missing PASSED [ 63%] tests/test_request_attrs.py::test_missing_qs PASSED [ 63%] tests/test_request_attrs.py::test_app_missing PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_empty[asgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_empty[wsgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_host[asgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_host[wsgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_subdomain[asgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_subdomain[wsgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_reconstruct_url[asgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_reconstruct_url[wsgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[asgi-/hello_\u043f\u0440\u0438\u0432\u0435\u0442] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[asgi-/test/%E5%BB%B6%E5%AE%89] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[asgi-/test/%C3%A4%C3%B6%C3%BC%C3%9F%E2%82%AC] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[wsgi-/hello_\u043f\u0440\u0438\u0432\u0435\u0442] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[wsgi-/test/%E5%BB%B6%E5%AE%89] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[wsgi-/test/%C3%A4%C3%B6%C3%BC%C3%9F%E2%82%AC] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_uri[asgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_uri[wsgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_uri_https[asgi] PASSED [ 63%] tests/test_request_attrs.py::TestRequestAttributes::test_uri_https[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_uri_http_1_0[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_uri_http_1_0[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_relative_uri[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_relative_uri[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_bogus[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_bogus[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_props[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_props[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_prefers[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_client_prefers[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_range[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_range[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_range_unit[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_range_unit[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_range_invalid[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_range_invalid[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_missing_attribute_header[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_missing_attribute_header[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_content_length[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_content_length[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_nan[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_nan[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_neg[asgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_neg[wsgi] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date[asgi-Date-date] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date[asgi-If-Modified-Since-if_modified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date[asgi-If-Unmodified-Since-if_unmodified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date[wsgi-Date-date] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date[wsgi-If-Modified-Since-if_modified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date[wsgi-If-Unmodified-Since-if_unmodified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[asgi-Date-date] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[asgi-If-Modified-Since-if_modified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[asgi-If-Unmodified-Since-if_unmodified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[wsgi-Date-date] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[wsgi-If-Modified-Since-if_modified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[wsgi-If-Unmodified-Since-if_unmodified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[asgi-date] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[asgi-if_modified_since] PASSED [ 64%] tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[asgi-if_unmodified_since] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[wsgi-date] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[wsgi-if_modified_since] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[wsgi-if_unmodified_since] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-Accept-x-falcon-accept-*/*] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-Authorization-HMAC_SHA1 c590afa9bb59191ffab30f223791e82d3fd3e3af-auth-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-Content-Type-text/plain-content_type-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-Expect-100-continue-expect-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-If-Range-Wed, 21 Oct 2015 07:28:00 GMT-if_range-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-User-Agent-testing/3.0-user_agent-falcon-client/4.0.2] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[asgi-Referer-https://www.google.com/-referer-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-Accept-x-falcon-accept-*/*] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-Authorization-HMAC_SHA1 c590afa9bb59191ffab30f223791e82d3fd3e3af-auth-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-Content-Type-text/plain-content_type-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-Expect-100-continue-expect-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-If-Range-Wed, 21 Oct 2015 07:28:00 GMT-if_range-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-User-Agent-testing/3.0-user_agent-falcon-client/4.0.2] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[wsgi-Referer-https://www.google.com/-referer-None] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_method[asgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_method[wsgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_empty_path[asgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_empty_path[wsgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_content_type_method[asgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_content_type_method[wsgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_content_length_method[asgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_content_length_method[wsgi] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[asgi-1.0] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[asgi-1.1] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[asgi-2] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[wsgi-1.0] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[wsgi-1.1] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[wsgi-2] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[asgi-1.0] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[asgi-1.1] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[asgi-2] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[wsgi-1.0] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[wsgi-1.1] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[wsgi-2] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[asgi-1.0-True] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[asgi-1.0-False] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[asgi-1.1-True] PASSED [ 65%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[asgi-1.1-False] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[asgi-2-True] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[asgi-2-False] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[wsgi-1.0-True] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[wsgi-1.0-False] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[wsgi-1.1-True] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[wsgi-1.1-False] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[wsgi-2-True] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[wsgi-2-False] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[asgi-1.0] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[asgi-1.1] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[asgi-2] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[wsgi-1.0] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[wsgi-1.1] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[wsgi-2] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[asgi-1.0] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[asgi-1.1] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[asgi-2] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[wsgi-1.0] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[wsgi-1.1] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[wsgi-2] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[asgi-1.0] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[asgi-1.1] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[asgi-2] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[wsgi-1.0] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[wsgi-1.1] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[wsgi-2] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_app_present[asgi] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_app_present[wsgi] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_app_blank[asgi] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_app_blank[wsgi] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match--None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- -None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- -None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-\t-None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- \t-None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-,-None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-,,-None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-,, -None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-, , -None] PASSED [ 66%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-*-expected_value9] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-W/"67ab43"-expected_value10] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-w/"67ab43"-expected_value11] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- w/"67ab43"-expected_value12] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-w/"67ab43" -expected_value13] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-w/"67ab43 " -expected_value14] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-"67ab43"-expected_value15] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- "67ab43"-expected_value16] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- "67ab43" -expected_value17] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-"67ab43" -expected_value18] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-" 67ab43" -expected_value19] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-67ab43"-expected_value20] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-"67ab43-expected_value21] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-67ab43-expected_value22] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-67ab43 -expected_value23] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- 67ab43 -expected_value24] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match- 67ab43-expected_value25] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-Match-if_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match--None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- -None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- -None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-\t-None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- \t-None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-,-None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-,,-None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-,, -None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-, , -None] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-*-expected_value9] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-W/"67ab43"-expected_value10] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-w/"67ab43"-expected_value11] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- w/"67ab43"-expected_value12] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-w/"67ab43" -expected_value13] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-w/"67ab43 " -expected_value14] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-"67ab43"-expected_value15] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- "67ab43"-expected_value16] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- "67ab43" -expected_value17] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-"67ab43" -expected_value18] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-" 67ab43" -expected_value19] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-67ab43"-expected_value20] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-"67ab43-expected_value21] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-67ab43-expected_value22] PASSED [ 67%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-67ab43 -expected_value23] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- 67ab43 -expected_value24] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match- 67ab43-expected_value25] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[asgi-If-None-Match-if_none_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match--None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-\t-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- \t-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-,-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-,,-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-,, -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-, , -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-*-expected_value9] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-W/"67ab43"-expected_value10] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-w/"67ab43"-expected_value11] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- w/"67ab43"-expected_value12] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-w/"67ab43" -expected_value13] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-w/"67ab43 " -expected_value14] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-"67ab43"-expected_value15] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- "67ab43"-expected_value16] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- "67ab43" -expected_value17] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-"67ab43" -expected_value18] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-" 67ab43" -expected_value19] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-67ab43"-expected_value20] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-"67ab43-expected_value21] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-67ab43-expected_value22] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-67ab43 -expected_value23] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- 67ab43 -expected_value24] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match- 67ab43-expected_value25] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-Match-if_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match--None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-\t-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- \t-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-,-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-,,-None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-,, -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-, , -None] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-*-expected_value9] PASSED [ 68%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-W/"67ab43"-expected_value10] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-w/"67ab43"-expected_value11] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- w/"67ab43"-expected_value12] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-w/"67ab43" -expected_value13] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-w/"67ab43 " -expected_value14] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-"67ab43"-expected_value15] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- "67ab43"-expected_value16] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- "67ab43" -expected_value17] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-"67ab43" -expected_value18] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-" 67ab43" -expected_value19] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-67ab43"-expected_value20] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-"67ab43-expected_value21] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-67ab43-expected_value22] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-67ab43 -expected_value23] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- 67ab43 -expected_value24] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match- 67ab43-expected_value25] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag[wsgi-If-None-Match-if_none_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_is_missing[asgi] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_is_missing[wsgi] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[asgi-] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[asgi- ] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[asgi- ] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[wsgi-] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[wsgi- ] PASSED [ 69%] tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[wsgi- ] PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_empty_body PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_tiny_body PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_tiny_body_overflow PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_read_body PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_bounded_stream_property_empty_body PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_body_stream_wrapper PASSED [ 69%] tests/test_request_body.py::TestRequestBody::test_request_repr PASSED [ 69%] tests/test_request_context.py::TestRequestContext::test_default_request_context PASSED [ 69%] tests/test_request_context.py::TestRequestContext::test_custom_request_context PASSED [ 69%] tests/test_request_context.py::TestRequestContext::test_custom_request_context_failure PASSED [ 69%] tests/test_request_context.py::TestRequestContext::test_custom_request_context_request_access PASSED [ 69%] tests/test_request_forwarded.py::test_no_forwarded_headers[asgi] PASSED [ 69%] tests/test_request_forwarded.py::test_no_forwarded_headers[wsgi] PASSED [ 69%] tests/test_request_forwarded.py::test_no_forwarded_headers_with_port[asgi] PASSED [ 69%] tests/test_request_forwarded.py::test_no_forwarded_headers_with_port[wsgi] PASSED [ 69%] tests/test_request_forwarded.py::test_x_forwarded_host[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_x_forwarded_host[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_x_forwarded_host_with_port[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_x_forwarded_host_with_port[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_x_forwarded_proto[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_x_forwarded_proto[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_host[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_host[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_invalid[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_invalid[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_multiple_params[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_multiple_params[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_missing_first_hop_host[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_missing_first_hop_host[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_quote_escaping[asgi] PASSED [ 70%] tests/test_request_forwarded.py::test_forwarded_quote_escaping[wsgi] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by="-None] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by=4\\.3.2.1thing=blah-4] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by="\\4.3.2.1"thing=blah-4.3.2.1] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by="4.3.2.\\1"thing="blah"-4.3.2.1] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by="4.3.\\2\\.1" thing="blah"-4.3.2.1] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by="-None] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by=4\\.3.2.1thing=blah-4] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by="\\4.3.2.1"thing=blah-4.3.2.1] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by="4.3.2.\\1"thing="blah"-4.3.2.1] PASSED [ 70%] tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by="4.3.\\2\\.1" thing="blah"-4.3.2.1] PASSED [ 70%] tests/test_request_media.py::test_json[asgi-None] PASSED [ 70%] tests/test_request_media.py::test_json[asgi-*/*] PASSED [ 70%] tests/test_request_media.py::test_json[asgi-application/json] PASSED [ 70%] tests/test_request_media.py::test_json[asgi-application/json; charset=utf-8] PASSED [ 70%] tests/test_request_media.py::test_json[wsgi-None] PASSED [ 70%] tests/test_request_media.py::test_json[wsgi-*/*] PASSED [ 70%] tests/test_request_media.py::test_json[wsgi-application/json] PASSED [ 70%] tests/test_request_media.py::test_json[wsgi-application/json; charset=utf-8] PASSED [ 70%] tests/test_request_media.py::test_msgpack[asgi-application/msgpack] PASSED [ 70%] tests/test_request_media.py::test_msgpack[asgi-application/msgpack; charset=utf-8] PASSED [ 70%] tests/test_request_media.py::test_msgpack[asgi-application/x-msgpack] PASSED [ 70%] tests/test_request_media.py::test_msgpack[wsgi-application/msgpack] PASSED [ 70%] tests/test_request_media.py::test_msgpack[wsgi-application/msgpack; charset=utf-8] PASSED [ 70%] tests/test_request_media.py::test_msgpack[wsgi-application/x-msgpack] PASSED [ 70%] tests/test_request_media.py::test_unknown_media_type[asgi-nope/json] PASSED [ 70%] tests/test_request_media.py::test_unknown_media_type[wsgi-nope/json] PASSED [ 71%] tests/test_request_media.py::test_empty_body[asgi-application/json] PASSED [ 71%] tests/test_request_media.py::test_empty_body[asgi-application/msgpack] PASSED [ 71%] tests/test_request_media.py::test_empty_body[wsgi-application/json] PASSED [ 71%] tests/test_request_media.py::test_empty_body[wsgi-application/msgpack] PASSED [ 71%] tests/test_request_media.py::test_invalid_json[asgi] PASSED [ 71%] tests/test_request_media.py::test_invalid_json[wsgi] PASSED [ 71%] tests/test_request_media.py::test_invalid_msgpack[asgi] PASSED [ 71%] tests/test_request_media.py::test_invalid_msgpack[wsgi] PASSED [ 71%] tests/test_request_media.py::test_complete_consumption[asgi] PASSED [ 71%] tests/test_request_media.py::test_complete_consumption[wsgi] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[asgi-False] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[asgi-0] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[asgi-0.0] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[asgi-] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[asgi-payload4] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[asgi-payload5] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[wsgi-False] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[wsgi-0] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[wsgi-0.0] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[wsgi-] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[wsgi-payload4] PASSED [ 71%] tests/test_request_media.py::test_empty_json_media[wsgi-payload5] PASSED [ 71%] tests/test_request_media.py::test_null_json_media[asgi] PASSED [ 71%] tests/test_request_media.py::test_null_json_media[wsgi] PASSED [ 71%] tests/test_request_media.py::test_fallback[asgi] PASSED [ 71%] tests/test_request_media.py::test_fallback[wsgi] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[asgi-True-True] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[asgi-True-False] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[asgi-False-True] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[asgi-False-False] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-True-True] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-True-False] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-False-True] PASSED [ 71%] tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-False-False] PASSED [ 71%] tests/test_request_media.py::test_fallback_does_not_override_media_default[asgi] PASSED [ 71%] tests/test_request_media.py::test_fallback_does_not_override_media_default[wsgi] PASSED [ 71%] tests/test_request_media.py::test_repeated_error[asgi-{] PASSED [ 71%] tests/test_request_media.py::test_repeated_error[asgi-] PASSED [ 71%] tests/test_request_media.py::test_repeated_error[wsgi-{] PASSED [ 71%] tests/test_request_media.py::test_repeated_error[wsgi-] PASSED [ 71%] tests/test_request_media.py::test_error_after_first_default[asgi] PASSED [ 72%] tests/test_request_media.py::test_error_after_first_default[wsgi] PASSED [ 72%] tests/test_response.py::test_response_set_content_type_set[asgi] PASSED [ 72%] tests/test_response.py::test_response_set_content_type_set[wsgi] PASSED [ 72%] tests/test_response.py::test_response_set_content_type_not_set[asgi] PASSED [ 72%] tests/test_response.py::test_response_set_content_type_not_set[wsgi] PASSED [ 72%] tests/test_response.py::test_response_get_headers[asgi] PASSED [ 72%] tests/test_response.py::test_response_get_headers[wsgi] PASSED [ 72%] tests/test_response.py::test_add_link_removed[asgi] PASSED [ 72%] tests/test_response.py::test_add_link_removed[wsgi] PASSED [ 72%] tests/test_response.py::test_body_removed[asgi] PASSED [ 72%] tests/test_response.py::test_body_removed[wsgi] PASSED [ 72%] tests/test_response.py::test_response_attempt_to_set_read_only_headers[asgi] PASSED [ 72%] tests/test_response.py::test_response_attempt_to_set_read_only_headers[wsgi] PASSED [ 72%] tests/test_response.py::test_response_option_mimetype_init PASSED [ 72%] tests/test_response.py::test_response_set_stream[asgi-] PASSED [ 72%] tests/test_response.py::test_response_set_stream[asgi-dummy content] PASSED [ 72%] tests/test_response.py::test_response_set_stream[wsgi-] PASSED [ 72%] tests/test_response.py::test_response_set_stream[wsgi-dummy content] PASSED [ 72%] tests/test_response_body.py::test_append_body[asgi] PASSED [ 72%] tests/test_response_body.py::test_append_body[wsgi] PASSED [ 72%] tests/test_response_body.py::test_response_repr[asgi] PASSED [ 72%] tests/test_response_body.py::test_response_repr[wsgi] PASSED [ 72%] tests/test_response_body.py::test_content_length_set_on_head_with_no_body[asgi] PASSED [ 72%] tests/test_response_body.py::test_content_length_set_on_head_with_no_body[wsgi] PASSED [ 72%] tests/test_response_body.py::test_content_length_not_set_when_streaming_response[asgi-GET] PASSED [ 72%] tests/test_response_body.py::test_content_length_not_set_when_streaming_response[asgi-HEAD] PASSED [ 72%] tests/test_response_body.py::test_content_length_not_set_when_streaming_response[wsgi-GET] PASSED [ 72%] tests/test_response_body.py::test_content_length_not_set_when_streaming_response[wsgi-HEAD] PASSED [ 72%] tests/test_response_body.py::test_unsupported_response_content_type[asgi] PASSED [ 72%] tests/test_response_body.py::test_unsupported_response_content_type[wsgi] PASSED [ 72%] tests/test_response_body.py::test_response_body_rendition_error[asgi] PASSED [ 72%] tests/test_response_body.py::test_response_body_rendition_error[wsgi] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_default_response_context[asgi.Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_default_response_context[Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_custom_response_context[asgi.Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_custom_response_context[Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_custom_response_context_failure[asgi.Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_custom_response_context_failure[Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_custom_response_context_factory[asgi.Response] PASSED [ 72%] tests/test_response_context.py::TestResponseContext::test_custom_response_context_factory[Response] PASSED [ 72%] tests/test_response_media.py::test_json[*/*] PASSED [ 73%] tests/test_response_media.py::test_json[application/json] PASSED [ 73%] tests/test_response_media.py::test_json[application/json; charset=utf-8] PASSED [ 73%] tests/test_response_media.py::test_non_ascii_json_serialization[] PASSED [ 73%] tests/test_response_media.py::test_non_ascii_json_serialization[I am a \u1d0a\ua731\u1d0f\u0274 string.] PASSED [ 73%] tests/test_response_media.py::test_non_ascii_json_serialization[document2] PASSED [ 73%] tests/test_response_media.py::test_non_ascii_json_serialization[document3] PASSED [ 73%] tests/test_response_media.py::test_non_ascii_json_serialization[document4] PASSED [ 73%] tests/test_response_media.py::test_msgpack[application/msgpack] PASSED [ 73%] tests/test_response_media.py::test_msgpack[application/msgpack; charset=utf-8] PASSED [ 73%] tests/test_response_media.py::test_msgpack[application/x-msgpack] PASSED [ 73%] tests/test_response_media.py::test_unknown_media_type PASSED [ 73%] tests/test_response_media.py::test_use_cached_media PASSED [ 73%] tests/test_response_media.py::test_default_media_type PASSED [ 73%] tests/test_response_media.py::test_mimeparse_edgecases PASSED [ 73%] tests/test_response_media.py::TestRenderBodyPrecedence::test_text PASSED [ 73%] tests/test_response_media.py::TestRenderBodyPrecedence::test_data PASSED [ 73%] tests/test_response_media.py::TestRenderBodyPrecedence::test_media PASSED [ 73%] tests/test_response_media.py::test_media_rendered_cached PASSED [ 73%] tests/test_sink_and_static.py::test_sink_before_static_route[asgi] PASSED [ 73%] tests/test_sink_and_static.py::test_sink_before_static_route[wsgi] PASSED [ 73%] tests/test_sink_and_static.py::test_sink_after_static_route[asgi] PASSED [ 73%] tests/test_sink_and_static.py::test_sink_after_static_route[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_single_default_pattern[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_single_default_pattern[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_single_simple_pattern[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_single_simple_pattern[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_single_compiled_pattern[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_single_compiled_pattern[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_named_groups[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_named_groups[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_multiple_patterns[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_multiple_patterns[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_with_route[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_with_route[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_route_precedence[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_route_precedence[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_id[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_id[wsgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_both_id[asgi] PASSED [ 73%] tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_both_id[wsgi] PASSED [ 74%] tests/test_sinks.py::TestSinkMethodCompatibility::test_add_async_sink[asgi] PASSED [ 74%] tests/test_sinks.py::TestSinkMethodCompatibility::test_add_async_sink[wsgi] PASSED [ 74%] tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink[asgi] PASSED [ 74%] tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink[wsgi] PASSED [ 74%] tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink_with_wrapping[asgi] PASSED [ 74%] tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink_with_wrapping[wsgi] PASSED [ 74%] tests/test_slots.py::TestSlots::test_slots_request[asgi] PASSED [ 74%] tests/test_slots.py::TestSlots::test_slots_request[wsgi] PASSED [ 74%] tests/test_slots.py::TestSlots::test_slots_response[asgi] PASSED [ 74%] tests/test_slots.py::TestSlots::test_slots_response[wsgi] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/..] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/../.] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.././etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/../etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/css/../../secret] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/css/../../etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/./../etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/css/../.\\056/etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/./\\056./etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/\\056\\056/etc/passwd] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static//test.css] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static//COM10] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/path//test.css] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/path///test.css] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/path////test.css] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/path/foo//test.css] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.\x00ssh/authorized_keys] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.\x1fssh/authorized_keys] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.\x80ssh/authorized_keys] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.\x9fssh/authorized_keys] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/~/.ssh/authorized_keys] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key?] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key>foo] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key|foo] PASSED [ 74%] tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_keyfoo] PASSED [ 75%] tests/test_static.py::test_bad_path[wsgi-/static/.ssh/authorized_key|foo] PASSED [ 75%] tests/test_static.py::test_bad_path[wsgi-/static/.ssh/authorized_key>> py3-falcon: Entering fakeroot... >>> py3-falcon-pyc*: Running split function pyc... 'usr/lib/python3.12/site-packages/falcon/util/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/util/__pycache__' 'usr/lib/python3.12/site-packages/falcon/testing/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/testing/__pycache__' 'usr/lib/python3.12/site-packages/falcon/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/__pycache__' 'usr/lib/python3.12/site-packages/falcon/routing/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/routing/__pycache__' 'usr/lib/python3.12/site-packages/falcon/media/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/media/__pycache__' 'usr/lib/python3.12/site-packages/falcon/media/validators/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/media/validators/__pycache__' 'usr/lib/python3.12/site-packages/falcon/asgi/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/asgi/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/queues/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/queues/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/nuts/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/model/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/model/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/controllers/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/controllers/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/tests/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/tests/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/dj/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/dj/hello/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/hello/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/dj/hello/migrations/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/hello/migrations/__pycache__' 'usr/lib/python3.12/site-packages/falcon/bench/dj/dj/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/dj/__pycache__' 'usr/lib/python3.12/site-packages/falcon/cyutil/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/cyutil/__pycache__' 'usr/lib/python3.12/site-packages/falcon/cmd/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/cmd/__pycache__' >>> py3-falcon-pyc*: Preparing subpackage py3-falcon-pyc... >>> py3-falcon-pyc*: Running postcheck for py3-falcon-pyc >>> py3-falcon*: Running postcheck for py3-falcon >>> py3-falcon*: Preparing package py3-falcon... >>> py3-falcon*: Stripping binaries >>> py3-falcon-pyc*: Scanning shared objects >>> py3-falcon*: Scanning shared objects >>> py3-falcon-pyc*: Tracing dependencies... python3 python3~3.12 >>> py3-falcon-pyc*: Package size: 1.0 MB >>> py3-falcon-pyc*: Compressing data... >>> py3-falcon-pyc*: Create checksum... >>> py3-falcon-pyc*: Create py3-falcon-pyc-4.0.2-r1.apk >>> py3-falcon*: Tracing dependencies... python3 python3~3.12 so:libc.musl-x86.so.1 >>> py3-falcon*: Package size: 5.1 MB >>> py3-falcon*: Compressing data... >>> py3-falcon*: Create checksum... >>> py3-falcon*: Create py3-falcon-4.0.2-r1.apk >>> py3-falcon: Build complete at Sun, 11 May 2025 23:25:48 +0000 elapsed time 0h 5m 19s >>> py3-falcon: Cleaning up srcdir >>> py3-falcon: Cleaning up pkgdir >>> py3-falcon: Uninstalling dependencies... (1/171) Purging .makedepends-py3-falcon (20250511.232030) (2/171) Purging py3-gpep517-pyc (19-r0) (3/171) Purging py3-gpep517 (19-r0) (4/171) Purging py3-installer-pyc (0.7.0-r2) (5/171) Purging py3-installer (0.7.0-r2) (6/171) Purging py3-wheel-pyc (0.46.1-r0) (7/171) Purging py3-wheel (0.46.1-r0) (8/171) Purging python3-dev (3.12.10-r0) (9/171) Purging cython-pyc (3.0.12-r0) (10/171) Purging cython (3.0.12-r0) (11/171) Purging py3-coverage-pyc (7.6.10-r0) (12/171) Purging py3-coverage (7.6.10-r0) (13/171) Purging py3-pyaml-pyc (25.1.0-r0) (14/171) Purging py3-pyaml (25.1.0-r0) (15/171) Purging py3-yaml-pyc (6.0.2-r0) (16/171) Purging py3-yaml (6.0.2-r0) (17/171) Purging py3-pytest-asyncio-pyc (0.25.0-r0) (18/171) Purging py3-pytest-asyncio (0.25.0-r0) (19/171) Purging py3-pytest-pyc (8.3.5-r0) (20/171) Purging py3-pytest (8.3.5-r0) (21/171) Purging py3-iniconfig-pyc (2.1.0-r0) (22/171) Purging py3-iniconfig (2.1.0-r0) (23/171) Purging py3-pluggy-pyc (1.5.0-r0) (24/171) Purging py3-pluggy (1.5.0-r0) (25/171) Purging py3-py-pyc (1.11.0-r4) (26/171) Purging py3-py (1.11.0-r4) (27/171) Purging py3-aiofiles-pyc (24.1.0-r0) (28/171) Purging py3-aiofiles (24.1.0-r0) (29/171) Purging py3-httpx-pyc (0.28.1-r0) (30/171) Purging py3-httpx (0.28.1-r0) (31/171) Purging py3-httpcore-pyc (1.0.7-r0) (32/171) Purging py3-httpcore (1.0.7-r0) (33/171) Purging py3-anyio-pyc (4.3.0-r2) (34/171) Purging py3-anyio (4.3.0-r2) (35/171) Purging py3-h11-pyc (0.14.0-r4) (36/171) Purging py3-h11 (0.14.0-r4) (37/171) Purging py3-sniffio-pyc (1.3.1-r1) (38/171) Purging py3-sniffio (1.3.1-r1) (39/171) Purging py3-curio-pyc (1.6-r2) (40/171) Purging py3-curio (1.6-r2) (41/171) Purging py3-websockets-pyc (15.0.1-r0) (42/171) Purging py3-websockets (15.0.1-r0) (43/171) Purging py3-cbor2-pyc (5.6.5-r0) (44/171) Purging py3-cbor2 (5.6.5-r0) (45/171) Purging py3-msgpack-pyc (1.0.8-r1) (46/171) Purging py3-msgpack (1.0.8-r1) (47/171) Purging py3-mujson-pyc (1.4-r0) (48/171) Purging py3-mujson (1.4-r0) (49/171) Purging py3-ujson (5.10.0-r0) (50/171) Purging py3-rapidjson (1.20-r0) (51/171) Purging py3-orjson-pyc (3.10.18-r0) (52/171) Purging py3-orjson (3.10.18-r0) (53/171) Purging py3-gunicorn-pyc (23.0.0-r0) (54/171) Purging py3-gunicorn (23.0.0-r0) (55/171) Purging py3-daphne-pyc (4.1.2-r0) (56/171) Purging py3-daphne (4.1.2-r0) (57/171) Purging py3-autobahn-pyc (23.6.2-r1) (58/171) Purging py3-autobahn (23.6.2-r1) (59/171) Purging py3-txaio-pyc (23.1.1-r2) (60/171) Purging py3-txaio (23.1.1-r2) (61/171) Purging py3-twisted-pyc (24.11.0-r0) (62/171) Purging py3-twisted (24.11.0-r0) (63/171) Purging py3-zope-interface-pyc (7.2-r0) (64/171) Purging py3-zope-interface (7.2-r0) (65/171) Purging py3-constantly-pyc (23.10.4-r1) (66/171) Purging py3-constantly (23.10.4-r1) (67/171) Purging py3-incremental-pyc (24.7.2-r0) (68/171) Purging py3-incremental (24.7.2-r0) (69/171) Purging py3-automat-pyc (24.8.1-r0) (70/171) Purging py3-automat (24.8.1-r0) (71/171) Purging py3-six-pyc (1.17.0-r0) (72/171) Purging py3-six (1.17.0-r0) (73/171) Purging py3-hyperlink-pyc (21.0.0-r5) (74/171) Purging py3-hyperlink (21.0.0-r5) (75/171) Purging py3-typing-extensions-pyc (4.13.2-r0) (76/171) Purging py3-typing-extensions (4.13.2-r0) (77/171) Purging py3-pyhamcrest-pyc (2.1.0-r1) (78/171) Purging py3-pyhamcrest (2.1.0-r1) (79/171) Purging py3-service_identity-pyc (24.2.0-r0) (80/171) Purging py3-service_identity (24.2.0-r0) (81/171) Purging py3-asn1-modules-pyc (0.4.1-r0) (82/171) Purging py3-asn1-modules (0.4.1-r0) (83/171) Purging py3-asn1-pyc (0.6.1-r0) (84/171) Purging py3-asn1 (0.6.1-r0) (85/171) Purging py3-attrs-pyc (25.3.0-r0) (86/171) Purging py3-attrs (25.3.0-r0) (87/171) Purging py3-cryptography-pyc (44.0.3-r0) (88/171) Purging py3-cryptography (44.0.3-r0) (89/171) Purging py3-pyserial-pyc (3.5-r7) (90/171) Purging py3-pyserial (3.5-r7) (91/171) Purging py3-h2-pyc (4.1.0-r3) (92/171) Purging py3-h2 (4.1.0-r3) (93/171) Purging py3-hyperframe-pyc (6.1.0-r0) (94/171) Purging py3-hyperframe (6.1.0-r0) (95/171) Purging py3-hpack-pyc (4.1.0-r0) (96/171) Purging py3-hpack (4.1.0-r0) (97/171) Purging py3-sphinxcontrib-images-pyc (0.9.4-r4) (98/171) Purging py3-sphinxcontrib-images (0.9.4-r4) (99/171) Purging py3-sphinx-pyc (8.2.3-r1) (100/171) Purging py3-sphinx (8.2.3-r1) (101/171) Purging py3-babel-pyc (2.17.0-r0) (102/171) Purging py3-babel (2.17.0-r0) (103/171) Purging py3-tz-pyc (2025.2-r0) (104/171) Purging py3-tz (2025.2-r0) (105/171) Purging py3-docutils-pyc (0.21.2-r0) (106/171) Purging py3-docutils (0.21.2-r0) (107/171) Purging py3-imagesize-pyc (1.4.1-r4) (108/171) Purging py3-imagesize (1.4.1-r4) (109/171) Purging py3-jinja2-pyc (3.1.6-r0) (110/171) Purging py3-jinja2 (3.1.6-r0) (111/171) Purging py3-markupsafe-pyc (3.0.2-r0) (112/171) Purging py3-markupsafe (3.0.2-r0) (113/171) Purging py3-pygments-pyc (2.19.1-r1) (114/171) Purging py3-pygments (2.19.1-r1) (115/171) Purging py3-requests-pyc (2.32.3-r0) (116/171) Purging py3-requests (2.32.3-r0) (117/171) Purging py3-certifi-pyc (2025.4.26-r0) (118/171) Purging py3-certifi (2025.4.26-r0) (119/171) Purging py3-charset-normalizer-pyc (3.4.2-r0) (120/171) Purging py3-charset-normalizer (3.4.2-r0) (121/171) Purging py3-idna-pyc (3.10-r0) (122/171) Purging py3-idna (3.10-r0) (123/171) Purging py3-urllib3-pyc (1.26.20-r0) (124/171) Purging py3-urllib3 (1.26.20-r0) (125/171) Purging py3-snowballstemmer-pyc (2.2.0-r5) (126/171) Purging py3-snowballstemmer (2.2.0-r5) (127/171) Purging py3-alabaster-pyc (1.0.0-r0) (128/171) Purging py3-alabaster (1.0.0-r0) (129/171) Purging py3-roman-numerals-pyc (3.1.0-r0) (130/171) Purging py3-roman-numerals (3.1.0-r0) (131/171) Purging py3-sphinxcontrib-applehelp-pyc (1.0.4-r3) (132/171) Purging py3-sphinxcontrib-applehelp (1.0.4-r3) (133/171) Purging py3-sphinxcontrib-devhelp-pyc (1.0.5-r2) (134/171) Purging py3-sphinxcontrib-devhelp (1.0.5-r2) (135/171) Purging py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3) (136/171) Purging py3-sphinxcontrib-htmlhelp (2.0.1-r3) (137/171) Purging py3-sphinxcontrib-jsmath-pyc (1.0.1-r8) (138/171) Purging py3-sphinxcontrib-jsmath (1.0.1-r8) (139/171) Purging py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2) (140/171) Purging py3-sphinxcontrib-serializinghtml (1.1.9-r2) (141/171) Purging py3-sphinxcontrib-qthelp-pyc (2.0.0-r0) (142/171) Purging py3-sphinxcontrib-qthelp (2.0.0-r0) (143/171) Purging py3-setuptools-pyc (80.5.0-r0) (144/171) Purging py3-setuptools (80.5.0-r0) (145/171) Purging py3-packaging-pyc (25.0-r0) (146/171) Purging py3-packaging (25.0-r0) (147/171) Purging py3-parsing-pyc (3.2.3-r0) (148/171) Purging py3-parsing (3.2.3-r0) (149/171) Purging py3-pynacl-pyc (1.5.0-r6) (150/171) Purging py3-pynacl (1.5.0-r6) (151/171) Purging py3-cffi-pyc (1.17.1-r1) (152/171) Purging py3-cffi (1.17.1-r1) (153/171) Purging py3-cparser-pyc (2.22-r1) (154/171) Purging py3-cparser (2.22-r1) (155/171) Purging py3-asgiref-pyc (3.8.1-r1) (156/171) Purging py3-asgiref (3.8.1-r1) (157/171) Purging py3-waitress-openrc (3.0.2-r0) (158/171) Purging py3-waitress-pyc (3.0.2-r0) (159/171) Purging py3-waitress (3.0.2-r0) (160/171) Purging python3-pyc (3.12.10-r0) (161/171) Purging python3-pycache-pyc0 (3.12.10-r0) (162/171) Purging pyc (3.12.10-r0) (163/171) Purging python3 (3.12.10-r0) (164/171) Purging gdbm (1.24-r0) (165/171) Purging libbz2 (1.0.8-r6) (166/171) Purging libffi (3.4.8-r0) (167/171) Purging libpanelw (6.5_p20250503-r0) (168/171) Purging mpdecimal (4.0.0-r0) (169/171) Purging sqlite-libs (3.49.2-r0) (170/171) Purging xz-libs (5.8.1-r0) (171/171) Purging yaml (0.2.5-r2) Executing busybox-1.37.0-r17.trigger OK: 400 MiB in 104 packages >>> py3-falcon: Updating the community/x86 repository index... >>> py3-falcon: Signing the index...