>>> py3-falcon: Building community/py3-falcon 4.0.2-r1 (using abuild 3.15.0_rc3-r3) started Sun, 11 May 2025 04:53:44 +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.4.0-r0) (21/171) Installing py3-setuptools-pyc (80.4.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.045345) (171/171) Installing py3-waitress-openrc (3.0.2-r0) Executing busybox-1.37.0-r17.trigger OK: 587 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 8% |** | 98056 0:00:10 ETA 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 04:53:48,166 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 04:53:48,320 root INFO running bdist_wheel 2025-05-11 04:53:48,348 root INFO running build 2025-05-11 04:53:48,349 root INFO running build_py 2025-05-11 04:53:48,356 root INFO creating build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,356 root INFO copying falcon/hooks.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,356 root INFO copying falcon/version.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,356 root INFO copying falcon/__init__.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/app_helpers.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/constants.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/uri.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/responders.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/errors.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/http_status.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,357 root INFO copying falcon/middleware.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/http_error.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/asgi_spec.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/response_helpers.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/forwarded.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/_typing.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/app.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,358 root INFO copying falcon/typing.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,359 root INFO copying falcon/request_helpers.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,359 root INFO copying falcon/request.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,359 root INFO copying falcon/stream.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,359 root INFO copying falcon/redirects.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,359 root INFO copying falcon/status_codes.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,359 root INFO copying falcon/response.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,360 root INFO copying falcon/inspect.py -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,360 root INFO creating build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,360 root INFO copying falcon/util/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,360 root INFO copying falcon/util/deprecation.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,360 root INFO copying falcon/util/sync.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,360 root INFO copying falcon/util/uri.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,361 root INFO copying falcon/util/misc.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,361 root INFO copying falcon/util/mediatypes.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,361 root INFO copying falcon/util/time.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,361 root INFO copying falcon/util/structures.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,361 root INFO copying falcon/util/reader.py -> build/lib.linux-s390x-cpython-312/falcon/util 2025-05-11 04:53:48,361 root INFO creating build/lib.linux-s390x-cpython-312/falcon/cmd 2025-05-11 04:53:48,361 root INFO copying falcon/cmd/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/cmd 2025-05-11 04:53:48,362 root INFO copying falcon/cmd/bench.py -> build/lib.linux-s390x-cpython-312/falcon/cmd 2025-05-11 04:53:48,362 root INFO copying falcon/cmd/inspect_app.py -> build/lib.linux-s390x-cpython-312/falcon/cmd 2025-05-11 04:53:48,362 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench 2025-05-11 04:53:48,362 root INFO copying falcon/bench/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench 2025-05-11 04:53:48,362 root INFO copying falcon/bench/bench.py -> build/lib.linux-s390x-cpython-312/falcon/bench 2025-05-11 04:53:48,362 root INFO copying falcon/bench/create.py -> build/lib.linux-s390x-cpython-312/falcon/bench 2025-05-11 04:53:48,362 root INFO creating build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/ws.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/multipart.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/_request_helpers.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/app.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/_asgi_helpers.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,363 root INFO copying falcon/asgi/request.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,364 root INFO copying falcon/asgi/stream.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,364 root INFO copying falcon/asgi/structures.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,364 root INFO copying falcon/asgi/response.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,364 root INFO copying falcon/asgi/reader.py -> build/lib.linux-s390x-cpython-312/falcon/asgi 2025-05-11 04:53:48,364 root INFO creating build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,364 root INFO copying falcon/testing/test_case.py -> build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,364 root INFO copying falcon/testing/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,365 root INFO copying falcon/testing/resource.py -> build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,365 root INFO copying falcon/testing/srmock.py -> build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,365 root INFO copying falcon/testing/helpers.py -> build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,365 root INFO copying falcon/testing/client.py -> build/lib.linux-s390x-cpython-312/falcon/testing 2025-05-11 04:53:48,365 root INFO creating build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,365 root INFO copying falcon/media/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,366 root INFO copying falcon/media/multipart.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,366 root INFO copying falcon/media/urlencoded.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,366 root INFO copying falcon/media/json.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,366 root INFO copying falcon/media/base.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,366 root INFO copying falcon/media/handlers.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,366 root INFO copying falcon/media/msgpack.py -> build/lib.linux-s390x-cpython-312/falcon/media 2025-05-11 04:53:48,367 root INFO creating build/lib.linux-s390x-cpython-312/falcon/cyutil 2025-05-11 04:53:48,367 root INFO copying falcon/cyutil/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/cyutil 2025-05-11 04:53:48,367 root INFO creating build/lib.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:53:48,367 root INFO copying falcon/routing/static.py -> build/lib.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:53:48,367 root INFO copying falcon/routing/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:53:48,367 root INFO copying falcon/routing/compiled.py -> build/lib.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:53:48,367 root INFO copying falcon/routing/util.py -> build/lib.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:53:48,367 root INFO copying falcon/routing/converters.py -> build/lib.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:53:48,368 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/dj 2025-05-11 04:53:48,368 root INFO copying falcon/bench/dj/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj 2025-05-11 04:53:48,368 root INFO copying falcon/bench/dj/manage.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj 2025-05-11 04:53:48,368 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/nuts 2025-05-11 04:53:48,368 root INFO copying falcon/bench/nuts/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts 2025-05-11 04:53:48,368 root INFO copying falcon/bench/nuts/config.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts 2025-05-11 04:53:48,368 root INFO copying falcon/bench/nuts/setup.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts 2025-05-11 04:53:48,369 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO copying falcon/bench/queues/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO copying falcon/bench/queues/queues.py -> build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO copying falcon/bench/queues/messages.py -> build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO copying falcon/bench/queues/claims.py -> build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO copying falcon/bench/queues/api.py -> build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO copying falcon/bench/queues/stats.py -> build/lib.linux-s390x-cpython-312/falcon/bench/queues 2025-05-11 04:53:48,369 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj 2025-05-11 04:53:48,370 root INFO copying falcon/bench/dj/dj/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj 2025-05-11 04:53:48,370 root INFO copying falcon/bench/dj/dj/urls.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj 2025-05-11 04:53:48,370 root INFO copying falcon/bench/dj/dj/wsgi.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj 2025-05-11 04:53:48,370 root INFO copying falcon/bench/dj/dj/settings.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj 2025-05-11 04:53:48,370 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,370 root INFO copying falcon/bench/dj/hello/apps.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,370 root INFO copying falcon/bench/dj/hello/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,371 root INFO copying falcon/bench/dj/hello/views.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,371 root INFO copying falcon/bench/dj/hello/admin.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,371 root INFO copying falcon/bench/dj/hello/models.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,371 root INFO copying falcon/bench/dj/hello/tests.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello 2025-05-11 04:53:48,371 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/migrations 2025-05-11 04:53:48,371 root INFO copying falcon/bench/dj/hello/migrations/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/migrations 2025-05-11 04:53:48,371 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts 2025-05-11 04:53:48,372 root INFO copying falcon/bench/nuts/nuts/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts 2025-05-11 04:53:48,372 root INFO copying falcon/bench/nuts/nuts/app.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts 2025-05-11 04:53:48,372 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/controllers 2025-05-11 04:53:48,372 root INFO copying falcon/bench/nuts/nuts/controllers/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/controllers 2025-05-11 04:53:48,372 root INFO copying falcon/bench/nuts/nuts/controllers/root.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/controllers 2025-05-11 04:53:48,372 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 04:53:48,372 root INFO copying falcon/bench/nuts/nuts/tests/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 04:53:48,373 root INFO copying falcon/bench/nuts/nuts/tests/test_functional.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 04:53:48,373 root INFO copying falcon/bench/nuts/nuts/tests/test_units.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 04:53:48,373 root INFO copying falcon/bench/nuts/nuts/tests/config.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests 2025-05-11 04:53:48,373 root INFO creating build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/model 2025-05-11 04:53:48,373 root INFO copying falcon/bench/nuts/nuts/model/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/model 2025-05-11 04:53:48,373 root INFO creating build/lib.linux-s390x-cpython-312/falcon/media/validators 2025-05-11 04:53:48,373 root INFO copying falcon/media/validators/__init__.py -> build/lib.linux-s390x-cpython-312/falcon/media/validators 2025-05-11 04:53:48,373 root INFO copying falcon/media/validators/jsonschema.py -> build/lib.linux-s390x-cpython-312/falcon/media/validators 2025-05-11 04:53:48,374 root INFO running egg_info 2025-05-11 04:53:48,381 root INFO creating falcon.egg-info 2025-05-11 04:53:48,381 root INFO writing falcon.egg-info/PKG-INFO 2025-05-11 04:53:48,381 root INFO writing dependency_links to falcon.egg-info/dependency_links.txt 2025-05-11 04:53:48,382 root INFO writing entry points to falcon.egg-info/entry_points.txt 2025-05-11 04:53:48,382 root INFO writing requirements to falcon.egg-info/requires.txt 2025-05-11 04:53:48,382 root INFO writing top-level names to falcon.egg-info/top_level.txt 2025-05-11 04:53:48,382 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt' 2025-05-11 04:53:48,394 root INFO reading manifest file 'falcon.egg-info/SOURCES.txt' 2025-05-11 04:53:48,394 root INFO reading manifest template 'MANIFEST.in' 2025-05-11 04:53:48,407 root WARNING no previously-included directories found matching 'docs/_build' 2025-05-11 04:53:48,407 root INFO adding license file 'LICENSE' 2025-05-11 04:53:48,411 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt' 2025-05-11 04:53:48,414 root INFO copying falcon/py.typed -> build/lib.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,415 root INFO copying falcon/cyutil/misc.pyx -> build/lib.linux-s390x-cpython-312/falcon/cyutil 2025-05-11 04:53:48,415 root INFO copying falcon/cyutil/reader.pyx -> build/lib.linux-s390x-cpython-312/falcon/cyutil 2025-05-11 04:53:48,415 root INFO copying falcon/cyutil/uri.pyx -> build/lib.linux-s390x-cpython-312/falcon/cyutil 2025-05-11 04:53:48,417 root INFO running build_ext Compiling falcon/version.py because it changed. [1/1] Cythonizing falcon/version.py 2025-05-11 04:53:48,738 root INFO building 'falcon.version' extension 2025-05-11 04:53:48,738 root INFO creating build/temp.linux-s390x-cpython-312/falcon 2025-05-11 04:53:48,738 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-s390x-cpython-312/falcon/version.o 2025-05-11 04:53:48,990 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/version.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/version.cpython-312-s390x-linux-musl.so Compiling falcon/app_helpers.py because it changed. [1/1] Cythonizing falcon/app_helpers.py 2025-05-11 04:53:49,111 root INFO building 'falcon.app_helpers' extension 2025-05-11 04:53:49,111 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-s390x-cpython-312/falcon/app_helpers.o 2025-05-11 04:53:52,702 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/app_helpers.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/app_helpers.cpython-312-s390x-linux-musl.so Compiling falcon/constants.py because it changed. [1/1] Cythonizing falcon/constants.py 2025-05-11 04:53:52,753 root INFO building 'falcon.constants' extension 2025-05-11 04:53:52,753 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-s390x-cpython-312/falcon/constants.o 2025-05-11 04:53:54,982 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/constants.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/constants.cpython-312-s390x-linux-musl.so Compiling falcon/uri.py because it changed. [1/1] Cythonizing falcon/uri.py 2025-05-11 04:53:55,002 root INFO building 'falcon.uri' extension 2025-05-11 04:53:55,002 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-s390x-cpython-312/falcon/uri.o 2025-05-11 04:53:55,350 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/uri.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/uri.cpython-312-s390x-linux-musl.so Compiling falcon/errors.py because it changed. [1/1] Cythonizing falcon/errors.py 2025-05-11 04:53:55,604 root INFO building 'falcon.errors' extension 2025-05-11 04:53:55,604 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-s390x-cpython-312/falcon/errors.o 2025-05-11 04:54:02,970 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/errors.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/errors.cpython-312-s390x-linux-musl.so Compiling falcon/http_status.py because it changed. [1/1] Cythonizing falcon/http_status.py 2025-05-11 04:54:03,004 root INFO building 'falcon.http_status' extension 2025-05-11 04:54:03,004 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-s390x-cpython-312/falcon/http_status.o 2025-05-11 04:54:04,028 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/http_status.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/http_status.cpython-312-s390x-linux-musl.so Compiling falcon/middleware.py because it changed. [1/1] Cythonizing falcon/middleware.py 2025-05-11 04:54:04,080 root INFO building 'falcon.middleware' extension 2025-05-11 04:54:04,080 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-s390x-cpython-312/falcon/middleware.o 2025-05-11 04:54:05,860 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/middleware.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/middleware.cpython-312-s390x-linux-musl.so Compiling falcon/http_error.py because it changed. [1/1] Cythonizing falcon/http_error.py 2025-05-11 04:54:05,964 root INFO building 'falcon.http_error' extension 2025-05-11 04:54:05,965 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-s390x-cpython-312/falcon/http_error.o 2025-05-11 04:54:08,059 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/http_error.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/http_error.cpython-312-s390x-linux-musl.so Compiling falcon/asgi_spec.py because it changed. [1/1] Cythonizing falcon/asgi_spec.py 2025-05-11 04:54:08,087 root INFO building 'falcon.asgi_spec' extension 2025-05-11 04:54:08,087 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-s390x-cpython-312/falcon/asgi_spec.o 2025-05-11 04:54:08,879 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/asgi_spec.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/asgi_spec.cpython-312-s390x-linux-musl.so Compiling falcon/response_helpers.py because it changed. [1/1] Cythonizing falcon/response_helpers.py 2025-05-11 04:54:08,933 root INFO building 'falcon.response_helpers' extension 2025-05-11 04:54:08,933 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-s390x-cpython-312/falcon/response_helpers.o 2025-05-11 04:54:10,641 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/response_helpers.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/response_helpers.cpython-312-s390x-linux-musl.so Compiling falcon/forwarded.py because it changed. [1/1] Cythonizing falcon/forwarded.py 2025-05-11 04:54:10,702 root INFO building 'falcon.forwarded' extension 2025-05-11 04:54:10,703 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-s390x-cpython-312/falcon/forwarded.o 2025-05-11 04:54:12,647 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/forwarded.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/forwarded.cpython-312-s390x-linux-musl.so Compiling falcon/_typing.py because it changed. [1/1] Cythonizing falcon/_typing.py 2025-05-11 04:54:12,737 root INFO building 'falcon._typing' extension 2025-05-11 04:54:12,738 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-s390x-cpython-312/falcon/_typing.o 2025-05-11 04:54:16,209 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/_typing.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/_typing.cpython-312-s390x-linux-musl.so Compiling falcon/app.py because it changed. [1/1] Cythonizing falcon/app.py 2025-05-11 04:54:16,417 root INFO building 'falcon.app' extension 2025-05-11 04:54:16,417 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-s390x-cpython-312/falcon/app.o 2025-05-11 04:54:23,303 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/app.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/app.cpython-312-s390x-linux-musl.so Compiling falcon/typing.py because it changed. [1/1] Cythonizing falcon/typing.py 2025-05-11 04:54:23,337 root INFO building 'falcon.typing' extension 2025-05-11 04:54:23,337 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-s390x-cpython-312/falcon/typing.o 2025-05-11 04:54:24,714 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/typing.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/typing.cpython-312-s390x-linux-musl.so Compiling falcon/request_helpers.py because it changed. [1/1] Cythonizing falcon/request_helpers.py 2025-05-11 04:54:24,763 root INFO building 'falcon.request_helpers' extension 2025-05-11 04:54:24,763 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-s390x-cpython-312/falcon/request_helpers.o 2025-05-11 04:54:26,332 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/request_helpers.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/request_helpers.cpython-312-s390x-linux-musl.so Compiling falcon/request.py because it changed. [1/1] Cythonizing falcon/request.py 2025-05-11 04:54:26,808 root INFO building 'falcon.request' extension 2025-05-11 04:54:26,808 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-s390x-cpython-312/falcon/request.o 2025-05-11 04:54:38,514 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/request.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/request.cpython-312-s390x-linux-musl.so Compiling falcon/stream.py because it changed. [1/1] Cythonizing falcon/stream.py 2025-05-11 04:54:38,576 root INFO building 'falcon.stream' extension 2025-05-11 04:54:38,576 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-s390x-cpython-312/falcon/stream.o 2025-05-11 04:54:40,421 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/stream.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/stream.cpython-312-s390x-linux-musl.so Compiling falcon/redirects.py because it changed. [1/1] Cythonizing falcon/redirects.py 2025-05-11 04:54:40,468 root INFO building 'falcon.redirects' extension 2025-05-11 04:54:40,469 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-s390x-cpython-312/falcon/redirects.o 2025-05-11 04:54:41,840 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/redirects.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/redirects.cpython-312-s390x-linux-musl.so Compiling falcon/status_codes.py because it changed. [1/1] Cythonizing falcon/status_codes.py 2025-05-11 04:54:41,953 root INFO building 'falcon.status_codes' extension 2025-05-11 04:54:41,953 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-s390x-cpython-312/falcon/status_codes.o 2025-05-11 04:54:46,084 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/status_codes.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/status_codes.cpython-312-s390x-linux-musl.so Compiling falcon/response.py because it changed. [1/1] Cythonizing falcon/response.py 2025-05-11 04:54:46,269 root INFO building 'falcon.response' extension 2025-05-11 04:54:46,269 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-s390x-cpython-312/falcon/response.o 2025-05-11 04:54:52,550 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/response.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/response.cpython-312-s390x-linux-musl.so Compiling falcon/cyutil/uri.pyx because it changed. [1/1] Cythonizing falcon/cyutil/uri.pyx 2025-05-11 04:54:52,660 root INFO building 'falcon.cyutil.uri' extension 2025-05-11 04:54:52,660 root INFO creating build/temp.linux-s390x-cpython-312/falcon/cyutil 2025-05-11 04:54:52,660 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-s390x-cpython-312/falcon/cyutil/uri.o 2025-05-11 04:54:53,825 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/cyutil/uri.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/cyutil/uri.cpython-312-s390x-linux-musl.so Compiling falcon/cyutil/reader.pyx because it changed. [1/1] Cythonizing falcon/cyutil/reader.pyx 2025-05-11 04:54:53,962 root INFO building 'falcon.cyutil.reader' extension 2025-05-11 04:54:53,962 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-s390x-cpython-312/falcon/cyutil/reader.o 2025-05-11 04:54:56,234 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/cyutil/reader.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/cyutil/reader.cpython-312-s390x-linux-musl.so Compiling falcon/cyutil/misc.pyx because it changed. [1/1] Cythonizing falcon/cyutil/misc.pyx 2025-05-11 04:54:56,259 root INFO building 'falcon.cyutil.misc' extension 2025-05-11 04:54:56,260 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-s390x-cpython-312/falcon/cyutil/misc.o 2025-05-11 04:54:56,910 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/cyutil/misc.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/cyutil/misc.cpython-312-s390x-linux-musl.so Compiling falcon/media/multipart.py because it changed. [1/1] Cythonizing falcon/media/multipart.py 2025-05-11 04:54:57,093 root INFO building 'falcon.media.multipart' extension 2025-05-11 04:54:57,093 root INFO creating build/temp.linux-s390x-cpython-312/falcon/media 2025-05-11 04:54:57,093 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-s390x-cpython-312/falcon/media/multipart.o 2025-05-11 04:55:02,037 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/media/multipart.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/media/multipart.cpython-312-s390x-linux-musl.so Compiling falcon/media/urlencoded.py because it changed. [1/1] Cythonizing falcon/media/urlencoded.py 2025-05-11 04:55:02,084 root INFO building 'falcon.media.urlencoded' extension 2025-05-11 04:55:02,084 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-s390x-cpython-312/falcon/media/urlencoded.o 2025-05-11 04:55:03,939 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/media/urlencoded.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/media/urlencoded.cpython-312-s390x-linux-musl.so Compiling falcon/media/json.py because it changed. [1/1] Cythonizing falcon/media/json.py 2025-05-11 04:55:04,012 root INFO building 'falcon.media.json' extension 2025-05-11 04:55:04,012 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-s390x-cpython-312/falcon/media/json.o 2025-05-11 04:55:06,563 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/media/json.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/media/json.cpython-312-s390x-linux-musl.so Compiling falcon/media/base.py because it changed. [1/1] Cythonizing falcon/media/base.py 2025-05-11 04:55:06,617 root INFO building 'falcon.media.base' extension 2025-05-11 04:55:06,617 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-s390x-cpython-312/falcon/media/base.o 2025-05-11 04:55:08,555 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/media/base.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/media/base.cpython-312-s390x-linux-musl.so Compiling falcon/media/handlers.py because it changed. [1/1] Cythonizing falcon/media/handlers.py 2025-05-11 04:55:08,631 root INFO building 'falcon.media.handlers' extension 2025-05-11 04:55:08,631 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-s390x-cpython-312/falcon/media/handlers.o 2025-05-11 04:55:11,282 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/media/handlers.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/media/handlers.cpython-312-s390x-linux-musl.so Compiling falcon/media/msgpack.py because it changed. [1/1] Cythonizing falcon/media/msgpack.py 2025-05-11 04:55:11,342 root INFO building 'falcon.media.msgpack' extension 2025-05-11 04:55:11,343 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-s390x-cpython-312/falcon/media/msgpack.o 2025-05-11 04:55:13,586 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/media/msgpack.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/media/msgpack.cpython-312-s390x-linux-musl.so Compiling falcon/routing/static.py because it changed. [1/1] Cythonizing falcon/routing/static.py 2025-05-11 04:55:13,693 root INFO building 'falcon.routing.static' extension 2025-05-11 04:55:13,693 root INFO creating build/temp.linux-s390x-cpython-312/falcon/routing 2025-05-11 04:55:13,693 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-s390x-cpython-312/falcon/routing/static.o 2025-05-11 04:55:17,618 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/routing/static.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/routing/static.cpython-312-s390x-linux-musl.so Compiling falcon/routing/compiled.py because it changed. [1/1] Cythonizing falcon/routing/compiled.py 2025-05-11 04:55:17,964 root INFO building 'falcon.routing.compiled' extension 2025-05-11 04:55:17,964 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-s390x-cpython-312/falcon/routing/compiled.o 2025-05-11 04:55:27,597 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/routing/compiled.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/routing/compiled.cpython-312-s390x-linux-musl.so Compiling falcon/routing/util.py because it changed. [1/1] Cythonizing falcon/routing/util.py 2025-05-11 04:55:27,642 root INFO building 'falcon.routing.util' extension 2025-05-11 04:55:27,642 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-s390x-cpython-312/falcon/routing/util.o 2025-05-11 04:55:28,933 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/routing/util.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/routing/util.cpython-312-s390x-linux-musl.so Compiling falcon/routing/converters.py because it changed. [1/1] Cythonizing falcon/routing/converters.py 2025-05-11 04:55:29,006 root INFO building 'falcon.routing.converters' extension 2025-05-11 04:55:29,006 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-s390x-cpython-312/falcon/routing/converters.o 2025-05-11 04:55:31,333 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/routing/converters.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/routing/converters.cpython-312-s390x-linux-musl.so Compiling falcon/util/deprecation.py because it changed. [1/1] Cythonizing falcon/util/deprecation.py 2025-05-11 04:55:31,382 root INFO building 'falcon.util.deprecation' extension 2025-05-11 04:55:31,382 root INFO creating build/temp.linux-s390x-cpython-312/falcon/util 2025-05-11 04:55:31,382 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-s390x-cpython-312/falcon/util/deprecation.o 2025-05-11 04:55:32,986 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/util/deprecation.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/util/deprecation.cpython-312-s390x-linux-musl.so Compiling falcon/util/uri.py because it changed. [1/1] Cythonizing falcon/util/uri.py 2025-05-11 04:55:33,098 root INFO building 'falcon.util.uri' extension 2025-05-11 04:55:33,099 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-s390x-cpython-312/falcon/util/uri.o 2025-05-11 04:55:36,221 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/util/uri.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/util/uri.cpython-312-s390x-linux-musl.so Compiling falcon/util/misc.py because it changed. [1/1] Cythonizing falcon/util/misc.py 2025-05-11 04:55:36,369 root INFO building 'falcon.util.misc' extension 2025-05-11 04:55:36,369 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-s390x-cpython-312/falcon/util/misc.o 2025-05-11 04:55:39,538 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/util/misc.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/util/misc.cpython-312-s390x-linux-musl.so Compiling falcon/util/mediatypes.py because it changed. [1/1] Cythonizing falcon/util/mediatypes.py 2025-05-11 04:55:39,650 root INFO building 'falcon.util.mediatypes' extension 2025-05-11 04:55:39,650 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-s390x-cpython-312/falcon/util/mediatypes.o 2025-05-11 04:55:43,261 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/util/mediatypes.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/util/mediatypes.cpython-312-s390x-linux-musl.so Compiling falcon/util/time.py because it changed. [1/1] Cythonizing falcon/util/time.py 2025-05-11 04:55:43,294 root INFO building 'falcon.util.time' extension 2025-05-11 04:55:43,294 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-s390x-cpython-312/falcon/util/time.o 2025-05-11 04:55:44,368 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/util/time.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/util/time.cpython-312-s390x-linux-musl.so Compiling falcon/util/structures.py because it changed. [1/1] Cythonizing falcon/util/structures.py 2025-05-11 04:55:44,481 root INFO building 'falcon.util.structures' extension 2025-05-11 04:55:44,482 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-s390x-cpython-312/falcon/util/structures.o 2025-05-11 04:55:48,218 root INFO cc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-s390x-cpython-312/falcon/util/structures.o -L/usr/lib -o build/lib.linux-s390x-cpython-312/falcon/util/structures.cpython-312-s390x-linux-musl.so 2025-05-11 04:55:48,241 root INFO installing to build/bdist.linux-s390x/wheel 2025-05-11 04:55:48,241 root INFO running install 2025-05-11 04:55:48,251 root INFO running install_lib 2025-05-11 04:55:48,258 root INFO creating build/bdist.linux-s390x/wheel 2025-05-11 04:55:48,258 root INFO creating build/bdist.linux-s390x/wheel/falcon 2025-05-11 04:55:48,258 root INFO creating build/bdist.linux-s390x/wheel/falcon/util 2025-05-11 04:55:48,258 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/time.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,258 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/structures.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/deprecation.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/sync.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/uri.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/deprecation.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/mediatypes.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,259 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/misc.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,260 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/misc.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,260 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/mediatypes.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,260 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/time.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,260 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/uri.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,260 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/structures.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,260 root INFO copying build/lib.linux-s390x-cpython-312/falcon/util/reader.py -> build/bdist.linux-s390x/wheel/./falcon/util 2025-05-11 04:55:48,261 root INFO creating build/bdist.linux-s390x/wheel/falcon/cmd 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cmd/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/cmd 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cmd/bench.py -> build/bdist.linux-s390x/wheel/./falcon/cmd 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cmd/inspect_app.py -> build/bdist.linux-s390x/wheel/./falcon/cmd 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/hooks.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/version.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/__init__.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/app_helpers.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,261 root INFO copying build/lib.linux-s390x-cpython-312/falcon/app.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,262 root INFO copying build/lib.linux-s390x-cpython-312/falcon/app_helpers.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,262 root INFO copying build/lib.linux-s390x-cpython-312/falcon/typing.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,262 root INFO copying build/lib.linux-s390x-cpython-312/falcon/constants.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,262 root INFO copying build/lib.linux-s390x-cpython-312/falcon/uri.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,262 root INFO copying build/lib.linux-s390x-cpython-312/falcon/responders.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,262 root INFO copying build/lib.linux-s390x-cpython-312/falcon/constants.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/errors.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/http_status.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/http_error.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/middleware.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/http_error.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/redirects.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,263 root INFO copying build/lib.linux-s390x-cpython-312/falcon/_typing.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,264 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi_spec.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,264 root INFO copying build/lib.linux-s390x-cpython-312/falcon/response.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,264 root INFO copying build/lib.linux-s390x-cpython-312/falcon/response_helpers.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,264 root INFO copying build/lib.linux-s390x-cpython-312/falcon/py.typed -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,265 root INFO copying build/lib.linux-s390x-cpython-312/falcon/response_helpers.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,265 root INFO copying build/lib.linux-s390x-cpython-312/falcon/request_helpers.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,265 root INFO copying build/lib.linux-s390x-cpython-312/falcon/forwarded.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,265 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench 2025-05-11 04:55:48,265 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/dj 2025-05-11 04:55:48,265 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/dj/dj 2025-05-11 04:55:48,265 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/dj 2025-05-11 04:55:48,265 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj/urls.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/dj 2025-05-11 04:55:48,265 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj/wsgi.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/dj 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/dj/settings.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/dj 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/manage.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj 2025-05-11 04:55:48,266 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/dj/hello 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/apps.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello 2025-05-11 04:55:48,266 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/dj/hello/migrations 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/migrations/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello/migrations 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/views.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello 2025-05-11 04:55:48,266 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/admin.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello 2025-05-11 04:55:48,267 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/models.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello 2025-05-11 04:55:48,267 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/dj/hello/tests.py -> build/bdist.linux-s390x/wheel/./falcon/bench/dj/hello 2025-05-11 04:55:48,267 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench 2025-05-11 04:55:48,267 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/bench.py -> build/bdist.linux-s390x/wheel/./falcon/bench 2025-05-11 04:55:48,267 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/nuts 2025-05-11 04:55:48,267 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts 2025-05-11 04:55:48,267 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/nuts/nuts 2025-05-11 04:55:48,267 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts 2025-05-11 04:55:48,267 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/nuts/nuts/controllers 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/controllers/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/controllers 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/controllers/root.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/controllers 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/app.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts 2025-05-11 04:55:48,268 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/nuts/nuts/tests 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests/test_functional.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests/test_units.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/tests/config.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/tests 2025-05-11 04:55:48,268 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/nuts/nuts/model 2025-05-11 04:55:48,268 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/nuts/model/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts/nuts/model 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/config.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/nuts/setup.py -> build/bdist.linux-s390x/wheel/./falcon/bench/nuts 2025-05-11 04:55:48,269 root INFO creating build/bdist.linux-s390x/wheel/falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/queues/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/queues/queues.py -> build/bdist.linux-s390x/wheel/./falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/queues/messages.py -> build/bdist.linux-s390x/wheel/./falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/queues/claims.py -> build/bdist.linux-s390x/wheel/./falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/queues/api.py -> build/bdist.linux-s390x/wheel/./falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/queues/stats.py -> build/bdist.linux-s390x/wheel/./falcon/bench/queues 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/bench/create.py -> build/bdist.linux-s390x/wheel/./falcon/bench 2025-05-11 04:55:48,269 root INFO copying build/lib.linux-s390x-cpython-312/falcon/errors.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,270 root INFO copying build/lib.linux-s390x-cpython-312/falcon/_typing.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,270 root INFO copying build/lib.linux-s390x-cpython-312/falcon/app.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,270 root INFO copying build/lib.linux-s390x-cpython-312/falcon/forwarded.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,270 root INFO copying build/lib.linux-s390x-cpython-312/falcon/typing.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,270 root INFO copying build/lib.linux-s390x-cpython-312/falcon/request_helpers.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,271 root INFO creating build/bdist.linux-s390x/wheel/falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/ws.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/multipart.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/_request_helpers.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/app.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/_asgi_helpers.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/request.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,271 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/stream.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,272 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/structures.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,272 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/response.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,272 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi/reader.py -> build/bdist.linux-s390x/wheel/./falcon/asgi 2025-05-11 04:55:48,272 root INFO copying build/lib.linux-s390x-cpython-312/falcon/request.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/uri.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,273 root INFO creating build/bdist.linux-s390x/wheel/falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/testing/test_case.py -> build/bdist.linux-s390x/wheel/./falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/testing/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/testing/resource.py -> build/bdist.linux-s390x/wheel/./falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/testing/srmock.py -> build/bdist.linux-s390x/wheel/./falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/testing/helpers.py -> build/bdist.linux-s390x/wheel/./falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/testing/client.py -> build/bdist.linux-s390x/wheel/./falcon/testing 2025-05-11 04:55:48,273 root INFO copying build/lib.linux-s390x-cpython-312/falcon/request.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,274 root INFO copying build/lib.linux-s390x-cpython-312/falcon/middleware.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,274 root INFO copying build/lib.linux-s390x-cpython-312/falcon/stream.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,274 root INFO copying build/lib.linux-s390x-cpython-312/falcon/redirects.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,274 root INFO copying build/lib.linux-s390x-cpython-312/falcon/stream.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,274 root INFO copying build/lib.linux-s390x-cpython-312/falcon/status_codes.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,274 root INFO creating build/bdist.linux-s390x/wheel/falcon/media 2025-05-11 04:55:48,275 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/base.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,275 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/urlencoded.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,275 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,275 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/handlers.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,275 root INFO creating build/bdist.linux-s390x/wheel/falcon/media/validators 2025-05-11 04:55:48,275 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/validators/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/media/validators 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/validators/jsonschema.py -> build/bdist.linux-s390x/wheel/./falcon/media/validators 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/multipart.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/json.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/urlencoded.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/json.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/base.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,276 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/msgpack.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,277 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/handlers.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,277 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/msgpack.py -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,277 root INFO copying build/lib.linux-s390x-cpython-312/falcon/media/multipart.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/media 2025-05-11 04:55:48,277 root INFO copying build/lib.linux-s390x-cpython-312/falcon/status_codes.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,277 root INFO copying build/lib.linux-s390x-cpython-312/falcon/http_status.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,277 root INFO copying build/lib.linux-s390x-cpython-312/falcon/response.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,277 root INFO creating build/bdist.linux-s390x/wheel/falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/uri.pyx -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/misc.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/reader.pyx -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/reader.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/uri.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,278 root INFO copying build/lib.linux-s390x-cpython-312/falcon/cyutil/misc.pyx -> build/bdist.linux-s390x/wheel/./falcon/cyutil 2025-05-11 04:55:48,279 root INFO copying build/lib.linux-s390x-cpython-312/falcon/asgi_spec.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,279 root INFO creating build/bdist.linux-s390x/wheel/falcon/routing 2025-05-11 04:55:48,279 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/static.py -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,279 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/__init__.py -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,279 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/compiled.py -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,279 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/static.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,279 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/util.py -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,280 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/converters.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,280 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/compiled.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,280 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/util.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,280 root INFO copying build/lib.linux-s390x-cpython-312/falcon/routing/converters.py -> build/bdist.linux-s390x/wheel/./falcon/routing 2025-05-11 04:55:48,281 root INFO copying build/lib.linux-s390x-cpython-312/falcon/inspect.py -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,281 root INFO copying build/lib.linux-s390x-cpython-312/falcon/version.cpython-312-s390x-linux-musl.so -> build/bdist.linux-s390x/wheel/./falcon 2025-05-11 04:55:48,281 root INFO running install_egg_info 2025-05-11 04:55:48,288 root INFO Copying falcon.egg-info to build/bdist.linux-s390x/wheel/./falcon-4.0.2-py3.12.egg-info 2025-05-11 04:55:48,289 root INFO running install_scripts 2025-05-11 04:55:48,293 root INFO creating build/bdist.linux-s390x/wheel/falcon-4.0.2.dist-info/WHEEL 2025-05-11 04:55:48,293 wheel INFO creating '/home/buildozer/aports/community/py3-falcon/src/falcon-4.0.2/dist/.tmp-b0ufvvsr/falcon-4.0.2-cp312-cp312-linux_s390x.whl' and adding 'build/bdist.linux-s390x/wheel' to it 2025-05-11 04:55:48,293 wheel INFO adding 'falcon/__init__.py' 2025-05-11 04:55:48,294 wheel INFO adding 'falcon/_typing.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,294 wheel INFO adding 'falcon/_typing.py' 2025-05-11 04:55:48,294 wheel INFO adding 'falcon/app.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,295 wheel INFO adding 'falcon/app.py' 2025-05-11 04:55:48,295 wheel INFO adding 'falcon/app_helpers.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,295 wheel INFO adding 'falcon/app_helpers.py' 2025-05-11 04:55:48,295 wheel INFO adding 'falcon/asgi_spec.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,296 wheel INFO adding 'falcon/asgi_spec.py' 2025-05-11 04:55:48,296 wheel INFO adding 'falcon/constants.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,296 wheel INFO adding 'falcon/constants.py' 2025-05-11 04:55:48,297 wheel INFO adding 'falcon/errors.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,297 wheel INFO adding 'falcon/errors.py' 2025-05-11 04:55:48,297 wheel INFO adding 'falcon/forwarded.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,298 wheel INFO adding 'falcon/forwarded.py' 2025-05-11 04:55:48,298 wheel INFO adding 'falcon/hooks.py' 2025-05-11 04:55:48,298 wheel INFO adding 'falcon/http_error.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,298 wheel INFO adding 'falcon/http_error.py' 2025-05-11 04:55:48,298 wheel INFO adding 'falcon/http_status.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,299 wheel INFO adding 'falcon/http_status.py' 2025-05-11 04:55:48,299 wheel INFO adding 'falcon/inspect.py' 2025-05-11 04:55:48,299 wheel INFO adding 'falcon/middleware.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,299 wheel INFO adding 'falcon/middleware.py' 2025-05-11 04:55:48,299 wheel INFO adding 'falcon/py.typed' 2025-05-11 04:55:48,299 wheel INFO adding 'falcon/redirects.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,300 wheel INFO adding 'falcon/redirects.py' 2025-05-11 04:55:48,300 wheel INFO adding 'falcon/request.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,301 wheel INFO adding 'falcon/request.py' 2025-05-11 04:55:48,301 wheel INFO adding 'falcon/request_helpers.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,301 wheel INFO adding 'falcon/request_helpers.py' 2025-05-11 04:55:48,302 wheel INFO adding 'falcon/responders.py' 2025-05-11 04:55:48,302 wheel INFO adding 'falcon/response.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,302 wheel INFO adding 'falcon/response.py' 2025-05-11 04:55:48,303 wheel INFO adding 'falcon/response_helpers.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,303 wheel INFO adding 'falcon/response_helpers.py' 2025-05-11 04:55:48,303 wheel INFO adding 'falcon/status_codes.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,303 wheel INFO adding 'falcon/status_codes.py' 2025-05-11 04:55:48,303 wheel INFO adding 'falcon/stream.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,304 wheel INFO adding 'falcon/stream.py' 2025-05-11 04:55:48,304 wheel INFO adding 'falcon/typing.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,304 wheel INFO adding 'falcon/typing.py' 2025-05-11 04:55:48,304 wheel INFO adding 'falcon/uri.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,304 wheel INFO adding 'falcon/uri.py' 2025-05-11 04:55:48,304 wheel INFO adding 'falcon/version.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/version.py' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/asgi/__init__.py' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/asgi/_asgi_helpers.py' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/asgi/_request_helpers.py' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/asgi/app.py' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/asgi/multipart.py' 2025-05-11 04:55:48,305 wheel INFO adding 'falcon/asgi/reader.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/asgi/request.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/asgi/response.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/asgi/stream.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/asgi/structures.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/asgi/ws.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/bench/__init__.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/bench/bench.py' 2025-05-11 04:55:48,306 wheel INFO adding 'falcon/bench/create.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/__init__.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/manage.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/dj/__init__.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/dj/settings.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/dj/urls.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/dj/wsgi.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/hello/__init__.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/hello/admin.py' 2025-05-11 04:55:48,307 wheel INFO adding 'falcon/bench/dj/hello/apps.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/dj/hello/models.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/dj/hello/tests.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/dj/hello/views.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/dj/hello/migrations/__init__.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/nuts/__init__.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/nuts/config.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/nuts/setup.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/nuts/nuts/__init__.py' 2025-05-11 04:55:48,308 wheel INFO adding 'falcon/bench/nuts/nuts/app.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/__init__.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/root.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/model/__init__.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/tests/__init__.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/tests/config.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_functional.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_units.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/queues/__init__.py' 2025-05-11 04:55:48,309 wheel INFO adding 'falcon/bench/queues/api.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/bench/queues/claims.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/bench/queues/messages.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/bench/queues/queues.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/bench/queues/stats.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/cmd/__init__.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/cmd/bench.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/cmd/inspect_app.py' 2025-05-11 04:55:48,310 wheel INFO adding 'falcon/cyutil/__init__.py' 2025-05-11 04:55:48,311 wheel INFO adding 'falcon/cyutil/misc.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,311 wheel INFO adding 'falcon/cyutil/misc.pyx' 2025-05-11 04:55:48,311 wheel INFO adding 'falcon/cyutil/reader.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,311 wheel INFO adding 'falcon/cyutil/reader.pyx' 2025-05-11 04:55:48,311 wheel INFO adding 'falcon/cyutil/uri.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,312 wheel INFO adding 'falcon/cyutil/uri.pyx' 2025-05-11 04:55:48,312 wheel INFO adding 'falcon/media/__init__.py' 2025-05-11 04:55:48,312 wheel INFO adding 'falcon/media/base.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,312 wheel INFO adding 'falcon/media/base.py' 2025-05-11 04:55:48,312 wheel INFO adding 'falcon/media/handlers.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,313 wheel INFO adding 'falcon/media/handlers.py' 2025-05-11 04:55:48,313 wheel INFO adding 'falcon/media/json.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,313 wheel INFO adding 'falcon/media/json.py' 2025-05-11 04:55:48,313 wheel INFO adding 'falcon/media/msgpack.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,314 wheel INFO adding 'falcon/media/msgpack.py' 2025-05-11 04:55:48,314 wheel INFO adding 'falcon/media/multipart.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,314 wheel INFO adding 'falcon/media/multipart.py' 2025-05-11 04:55:48,315 wheel INFO adding 'falcon/media/urlencoded.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,315 wheel INFO adding 'falcon/media/urlencoded.py' 2025-05-11 04:55:48,315 wheel INFO adding 'falcon/media/validators/__init__.py' 2025-05-11 04:55:48,315 wheel INFO adding 'falcon/media/validators/jsonschema.py' 2025-05-11 04:55:48,315 wheel INFO adding 'falcon/routing/__init__.py' 2025-05-11 04:55:48,316 wheel INFO adding 'falcon/routing/compiled.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,316 wheel INFO adding 'falcon/routing/compiled.py' 2025-05-11 04:55:48,316 wheel INFO adding 'falcon/routing/converters.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,317 wheel INFO adding 'falcon/routing/converters.py' 2025-05-11 04:55:48,317 wheel INFO adding 'falcon/routing/static.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,317 wheel INFO adding 'falcon/routing/static.py' 2025-05-11 04:55:48,317 wheel INFO adding 'falcon/routing/util.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/routing/util.py' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/testing/__init__.py' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/testing/client.py' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/testing/helpers.py' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/testing/resource.py' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/testing/srmock.py' 2025-05-11 04:55:48,318 wheel INFO adding 'falcon/testing/test_case.py' 2025-05-11 04:55:48,319 wheel INFO adding 'falcon/util/__init__.py' 2025-05-11 04:55:48,319 wheel INFO adding 'falcon/util/deprecation.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,319 wheel INFO adding 'falcon/util/deprecation.py' 2025-05-11 04:55:48,319 wheel INFO adding 'falcon/util/mediatypes.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,320 wheel INFO adding 'falcon/util/mediatypes.py' 2025-05-11 04:55:48,320 wheel INFO adding 'falcon/util/misc.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,320 wheel INFO adding 'falcon/util/misc.py' 2025-05-11 04:55:48,320 wheel INFO adding 'falcon/util/reader.py' 2025-05-11 04:55:48,321 wheel INFO adding 'falcon/util/structures.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,321 wheel INFO adding 'falcon/util/structures.py' 2025-05-11 04:55:48,321 wheel INFO adding 'falcon/util/sync.py' 2025-05-11 04:55:48,321 wheel INFO adding 'falcon/util/time.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,321 wheel INFO adding 'falcon/util/time.py' 2025-05-11 04:55:48,322 wheel INFO adding 'falcon/util/uri.cpython-312-s390x-linux-musl.so' 2025-05-11 04:55:48,322 wheel INFO adding 'falcon/util/uri.py' 2025-05-11 04:55:48,322 wheel INFO adding 'falcon-4.0.2.dist-info/licenses/LICENSE' 2025-05-11 04:55:48,322 wheel INFO adding 'falcon-4.0.2.dist-info/METADATA' 2025-05-11 04:55:48,322 wheel INFO adding 'falcon-4.0.2.dist-info/WHEEL' 2025-05-11 04:55:48,322 wheel INFO adding 'falcon-4.0.2.dist-info/entry_points.txt' 2025-05-11 04:55:48,323 wheel INFO adding 'falcon-4.0.2.dist-info/top_level.txt' 2025-05-11 04:55:48,323 wheel INFO adding 'falcon-4.0.2.dist-info/RECORD' 2025-05-11 04:55:48,323 root INFO removing build/bdist.linux-s390x/wheel 2025-05-11 04:55:48,326 gpep517 INFO The backend produced dist/falcon-4.0.2-cp312-cp312-linux_s390x.whl falcon-4.0.2-cp312-cp312-linux_s390x.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: asyncio-0.25.0, anyio-0.0.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/__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/cmd/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/cmd/__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/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/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/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/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/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/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/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/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/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/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/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/routing/__pycache__' -> '/home/buildozer/aports/community/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/routing/__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-s390x.so.1 >>> py3-falcon*: Package size: 5.6 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 04:57:23 +0000 elapsed time 0h 3m 39s >>> py3-falcon: Cleaning up srcdir >>> py3-falcon: Cleaning up pkgdir >>> py3-falcon: Uninstalling dependencies... (1/171) Purging .makedepends-py3-falcon (20250511.045345) (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.4.0-r0) (144/171) Purging py3-setuptools (80.4.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: 359 MiB in 104 packages >>> py3-falcon: Updating the community/s390x repository index... >>> py3-falcon: Signing the index...