>>> py3-falcon: Building testing/py3-falcon 3.1.3-r0 (using abuild 3.13.0-r3) started Mon, 27 May 2024 02:11:02 +0000
>>> py3-falcon: Checking sanity of /home/buildozer/aports/testing/py3-falcon/APKBUILD...
>>> py3-falcon: Analyzing dependencies...
>>> py3-falcon: Installing for build: build-base py3-gpep517 py3-setuptools py3-wheel python3-dev cython py3-coverage py3-pytest py3-pyaml py3-requests py3-pytest-asyncio py3-aiofiles py3-httpx uvicorn py3-websockets py3-cbor2 py3-msgpack py3-mujson py3-ujson py3-rapidjson py3-orjson py3-gunicorn py3-daphne py3-waitress
(1/174) Installing libbz2 (1.0.8-r6)
(2/174) Installing libffi (3.4.6-r0)
(3/174) Installing gdbm (1.23-r1)
(4/174) Installing xz-libs (5.6.1-r3)
(5/174) Installing mpdecimal (4.0.0-r0)
(6/174) Installing libpanelw (6.4_p20240420-r0)
(7/174) Installing readline (8.2.10-r0)
(8/174) Installing sqlite-libs (3.46.0-r0)
(9/174) Installing python3 (3.12.3-r1)
(10/174) Installing python3-pycache-pyc0 (3.12.3-r1)
(11/174) Installing pyc (3.12.3-r1)
(12/174) Installing py3-installer-pyc (0.7.0-r2)
(13/174) Installing py3-gpep517-pyc (16-r0)
(14/174) Installing python3-pyc (3.12.3-r1)
(15/174) Installing py3-installer (0.7.0-r2)
(16/174) Installing py3-gpep517 (16-r0)
(17/174) Installing py3-parsing (3.1.2-r1)
(18/174) Installing py3-parsing-pyc (3.1.2-r1)
(19/174) Installing py3-packaging (24.0-r1)
(20/174) Installing py3-packaging-pyc (24.0-r1)
(21/174) Installing py3-setuptools (69.5.1-r0)
(22/174) Installing py3-setuptools-pyc (69.5.1-r0)
(23/174) Installing py3-wheel (0.42.0-r1)
(24/174) Installing py3-wheel-pyc (0.42.0-r1)
(25/174) Installing python3-dev (3.12.3-r1)
(26/174) Installing cython (3.0.10-r0)
(27/174) Installing cython-pyc (3.0.10-r0)
(28/174) Installing py3-coverage (7.5.1-r0)
(29/174) Installing py3-coverage-pyc (7.5.1-r0)
(30/174) Installing py3-iniconfig (2.0.0-r1)
(31/174) Installing py3-iniconfig-pyc (2.0.0-r1)
(32/174) Installing py3-pluggy (1.5.0-r0)
(33/174) Installing py3-pluggy-pyc (1.5.0-r0)
(34/174) Installing py3-py (1.11.0-r3)
(35/174) Installing py3-py-pyc (1.11.0-r3)
(36/174) Installing py3-pytest (8.2.1-r0)
(37/174) Installing py3-pytest-pyc (8.2.1-r0)
(38/174) Installing yaml (0.2.5-r2)
(39/174) Installing py3-yaml (6.0.1-r3)
(40/174) Installing py3-yaml-pyc (6.0.1-r3)
(41/174) Installing py3-pyaml (24.4.0-r0)
(42/174) Installing py3-pyaml-pyc (24.4.0-r0)
(43/174) Installing py3-certifi (2024.2.2-r1)
(44/174) Installing py3-certifi-pyc (2024.2.2-r1)
(45/174) Installing py3-charset-normalizer (3.3.2-r1)
(46/174) Installing py3-charset-normalizer-pyc (3.3.2-r1)
(47/174) Installing py3-idna (3.7-r0)
(48/174) Installing py3-idna-pyc (3.7-r0)
(49/174) Installing py3-urllib3 (1.26.18-r1)
(50/174) Installing py3-urllib3-pyc (1.26.18-r1)
(51/174) Installing py3-requests (2.32.2-r0)
(52/174) Installing py3-requests-pyc (2.32.2-r0)
(53/174) Installing py3-pytest-asyncio (0.21.2-r0)
(54/174) Installing py3-pytest-asyncio-pyc (0.21.2-r0)
(55/174) Installing py3-aiofiles (23.2.1-r1)
(56/174) Installing py3-aiofiles-pyc (23.2.1-r1)
(57/174) Installing py3-curio (1.6-r2)
(58/174) Installing py3-curio-pyc (1.6-r2)
(59/174) Installing py3-sniffio (1.3.1-r1)
(60/174) Installing py3-sniffio-pyc (1.3.1-r1)
(61/174) Installing py3-anyio (4.3.0-r2)
(62/174) Installing py3-anyio-pyc (4.3.0-r2)
(63/174) Installing py3-h11 (0.14.0-r4)
(64/174) Installing py3-h11-pyc (0.14.0-r4)
(65/174) Installing py3-httpcore (1.0.4-r1)
(66/174) Installing py3-httpcore-pyc (1.0.4-r1)
(67/174) Installing py3-httpx (0.27.0-r1)
(68/174) Installing py3-httpx-pyc (0.27.0-r1)
(69/174) Installing py3-asgiref (3.8.1-r1)
(70/174) Installing py3-asgiref-pyc (3.8.1-r1)
(71/174) Installing py3-click (8.1.7-r2)
(72/174) Installing py3-click-pyc (8.1.7-r2)
(73/174) Installing uvicorn (0.29.0-r1)
(74/174) Installing uvicorn-pyc (0.29.0-r1)
(75/174) Installing py3-websockets (12.0-r2)
(76/174) Installing py3-websockets-pyc (12.0-r2)
(77/174) Installing py3-cbor2 (5.6.1-r1)
(78/174) Installing py3-cbor2-pyc (5.6.1-r1)
(79/174) Installing py3-msgpack (1.0.8-r1)
(80/174) Installing py3-msgpack-pyc (1.0.8-r1)
(81/174) Installing py3-mujson (1.4-r0)
(82/174) Installing py3-mujson-pyc (1.4-r0)
(83/174) Installing py3-ujson (5.9.0-r1)
(84/174) Installing py3-rapidjson (1.12-r1)
(85/174) Installing py3-orjson (3.10.1-r0)
(86/174) Installing py3-orjson-pyc (3.10.1-r0)
(87/174) Installing py3-gunicorn (21.2.0-r1)
(88/174) Installing py3-gunicorn-pyc (21.2.0-r1)
(89/174) Installing py3-cparser (2.22-r1)
(90/174) Installing py3-cparser-pyc (2.22-r1)
(91/174) Installing py3-cffi (1.16.0-r1)
(92/174) Installing py3-cffi-pyc (1.16.0-r1)
(93/174) Installing py3-cryptography (42.0.7-r0)
(94/174) Installing py3-cryptography-pyc (42.0.7-r0)
(95/174) Installing py3-zope-interface (6.0-r1)
(96/174) Installing py3-zope-interface-pyc (6.0-r1)
(97/174) Installing py3-constantly (23.10.4-r1)
(98/174) Installing py3-constantly-pyc (23.10.4-r1)
(99/174) Installing py3-incremental (22.10.0-r3)
(100/174) Installing py3-incremental-pyc (22.10.0-r3)
(101/174) Installing py3-attrs (23.2.0-r1)
(102/174) Installing py3-attrs-pyc (23.2.0-r1)
(103/174) Installing py3-six (1.16.0-r9)
(104/174) Installing py3-six-pyc (1.16.0-r9)
(105/174) Installing py3-automat (22.10.0-r3)
(106/174) Installing py3-automat-pyc (22.10.0-r3)
(107/174) Installing py3-hyperlink (21.0.0-r5)
(108/174) Installing py3-hyperlink-pyc (21.0.0-r5)
(109/174) Installing py3-typing-extensions (4.11.0-r1)
(110/174) Installing py3-typing-extensions-pyc (4.11.0-r1)
(111/174) Installing py3-pyhamcrest (2.1.0-r1)
(112/174) Installing py3-pyhamcrest-pyc (2.1.0-r1)
(113/174) Installing py3-asn1 (0.6.0-r1)
(114/174) Installing py3-asn1-pyc (0.6.0-r1)
(115/174) Installing py3-asn1-modules (0.4.0-r0)
(116/174) Installing py3-asn1-modules-pyc (0.4.0-r0)
(117/174) Installing py3-service_identity (24.1.0-r1)
(118/174) Installing py3-service_identity-pyc (24.1.0-r1)
(119/174) Installing py3-pyserial (3.5-r7)
(120/174) Installing py3-pyserial-pyc (3.5-r7)
(121/174) Installing py3-hyperframe (6.0.1-r4)
(122/174) Installing py3-hyperframe-pyc (6.0.1-r4)
(123/174) Installing py3-hpack (4.0.0-r9)
(124/174) Installing py3-hpack-pyc (4.0.0-r9)
(125/174) Installing py3-h2 (4.1.0-r3)
(126/174) Installing py3-h2-pyc (4.1.0-r3)
(127/174) Installing py3-twisted (22.10.0-r5)
(128/174) Installing py3-twisted-pyc (22.10.0-r5)
(129/174) Installing py3-txaio (23.1.1-r2)
(130/174) Installing py3-txaio-pyc (23.1.1-r2)
(131/174) Installing py3-tz (2024.1-r1)
(132/174) Installing py3-tz-pyc (2024.1-r1)
(133/174) Installing py3-babel (2.14.0-r2)
(134/174) Installing py3-babel-pyc (2.14.0-r2)
(135/174) Installing py3-docutils (0.20.1-r2)
(136/174) Installing py3-docutils-pyc (0.20.1-r2)
(137/174) Installing py3-imagesize (1.4.1-r4)
(138/174) Installing py3-imagesize-pyc (1.4.1-r4)
(139/174) Installing py3-markupsafe (2.1.5-r1)
(140/174) Installing py3-markupsafe-pyc (2.1.5-r1)
(141/174) Installing py3-jinja2 (3.1.4-r0)
(142/174) Installing py3-jinja2-pyc (3.1.4-r0)
(143/174) Installing py3-pygments (2.18.0-r0)
(144/174) Installing py3-pygments-pyc (2.18.0-r0)
(145/174) Installing py3-snowballstemmer (2.2.0-r4)
(146/174) Installing py3-snowballstemmer-pyc (2.2.0-r4)
(147/174) Installing py3-alabaster (0.7.16-r1)
(148/174) Installing py3-alabaster-pyc (0.7.16-r1)
(149/174) Installing py3-sphinxcontrib-applehelp (1.0.4-r3)
(150/174) Installing py3-sphinxcontrib-applehelp-pyc (1.0.4-r3)
(151/174) Installing py3-sphinxcontrib-devhelp (1.0.5-r2)
(152/174) Installing py3-sphinxcontrib-devhelp-pyc (1.0.5-r2)
(153/174) Installing py3-sphinxcontrib-htmlhelp (2.0.1-r3)
(154/174) Installing py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3)
(155/174) Installing py3-sphinxcontrib-jsmath (1.0.1-r8)
(156/174) Installing py3-sphinxcontrib-jsmath-pyc (1.0.1-r8)
(157/174) Installing py3-sphinxcontrib-serializinghtml (1.1.9-r2)
(158/174) Installing py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2)
(159/174) Installing py3-sphinxcontrib-qthelp (1.0.6-r2)
(160/174) Installing py3-sphinxcontrib-qthelp-pyc (1.0.6-r2)
(161/174) Installing py3-sphinx (7.2.6-r1)
(162/174) Installing py3-sphinx-pyc (7.2.6-r1)
(163/174) Installing py3-sphinxcontrib-images (0.9.4-r4)
(164/174) Installing py3-sphinxcontrib-images-pyc (0.9.4-r4)
(165/174) Installing py3-pynacl (1.5.0-r5)
(166/174) Installing py3-pynacl-pyc (1.5.0-r5)
(167/174) Installing py3-autobahn (23.6.2-r1)
(168/174) Installing py3-autobahn-pyc (23.6.2-r1)
(169/174) Installing py3-daphne (4.1.2-r0)
(170/174) Installing py3-daphne-pyc (4.1.2-r0)
(171/174) Installing py3-waitress (3.0.0-r3)
(172/174) Installing py3-waitress-pyc (3.0.0-r3)
(173/174) Installing .makedepends-py3-falcon (20240527.021103)
(174/174) Installing py3-waitress-openrc (3.0.0-r3)
Executing busybox-1.36.1-r28.trigger
OK: 552 MiB in 277 packages
>>> py3-falcon: Cleaning up srcdir
>>> py3-falcon: Cleaning up pkgdir
>>> py3-falcon: Cleaning up tmpdir
>>> py3-falcon: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-falcon-3.1.3.tar.gz
>>> py3-falcon: Fetching https://distfiles.alpinelinux.org/distfiles/edge/py3-falcon-3.1.3.tar.gz
>>> py3-falcon: Checking sha512sums...
py3-falcon-3.1.3.tar.gz: OK
python-3.12.patch: OK
>>> py3-falcon: Unpacking /var/cache/distfiles/edge/py3-falcon-3.1.3.tar.gz...
>>> py3-falcon: python-3.12.patch
patching file pyproject.toml
Hunk #1 succeeded at 63 (offset -34 lines).
patching file tests/asgi/test_asgi_servers.py
Hunk #3 succeeded at 613 (offset -10 lines).
patching file tests/asgi/test_scope.py
patching file tests/dump_asgi.py
2024-05-27 02:11:05,888 gpep517 INFO Building wheel via backend setuptools.build_meta
2024-05-27 02:11:06,059 root INFO running bdist_wheel
2024-05-27 02:11:06,086 root INFO running build
2024-05-27 02:11:06,087 root INFO running build_py
2024-05-27 02:11:06,093 root INFO creating build
2024-05-27 02:11:06,093 root INFO creating build/lib.linux-armv8l-cpython-312
2024-05-27 02:11:06,093 root INFO creating build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,093 root INFO copying falcon/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,094 root INFO copying falcon/middleware.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,094 root INFO copying falcon/forwarded.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,094 root INFO copying falcon/responders.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,094 root INFO copying falcon/response.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,095 root INFO copying falcon/uri.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,095 root INFO copying falcon/http_error.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,095 root INFO copying falcon/version.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,095 root INFO copying falcon/stream.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,095 root INFO copying falcon/redirects.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,095 root INFO copying falcon/api_helpers.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,096 root INFO copying falcon/hooks.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,096 root INFO copying falcon/app_helpers.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,096 root INFO copying falcon/response_helpers.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,096 root INFO copying falcon/status_codes.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,096 root INFO copying falcon/inspect.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,097 root INFO copying falcon/errors.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,097 root INFO copying falcon/request.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,097 root INFO copying falcon/constants.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,098 root INFO copying falcon/http_status.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,098 root INFO copying falcon/asgi_spec.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,098 root INFO copying falcon/app.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,098 root INFO copying falcon/request_helpers.py -> build/lib.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,099 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,099 root INFO copying falcon/media/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,099 root INFO copying falcon/media/handlers.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,099 root INFO copying falcon/media/msgpack.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,099 root INFO copying falcon/media/urlencoded.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,099 root INFO copying falcon/media/multipart.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,100 root INFO copying falcon/media/json.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,100 root INFO copying falcon/media/base.py -> build/lib.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:11:06,100 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench
2024-05-27 02:11:06,100 root INFO copying falcon/bench/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench
2024-05-27 02:11:06,100 root INFO copying falcon/bench/bench.py -> build/lib.linux-armv8l-cpython-312/falcon/bench
2024-05-27 02:11:06,101 root INFO copying falcon/bench/create.py -> build/lib.linux-armv8l-cpython-312/falcon/bench
2024-05-27 02:11:06,101 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/cmd
2024-05-27 02:11:06,101 root INFO copying falcon/cmd/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/cmd
2024-05-27 02:11:06,101 root INFO copying falcon/cmd/bench.py -> build/lib.linux-armv8l-cpython-312/falcon/cmd
2024-05-27 02:11:06,101 root INFO copying falcon/cmd/inspect_app.py -> build/lib.linux-armv8l-cpython-312/falcon/cmd
2024-05-27 02:11:06,102 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,102 root INFO copying falcon/asgi/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,102 root INFO copying falcon/asgi/reader.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,102 root INFO copying falcon/asgi/response.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,102 root INFO copying falcon/asgi/stream.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,103 root INFO copying falcon/asgi/ws.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,103 root INFO copying falcon/asgi/_asgi_helpers.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,103 root INFO copying falcon/asgi/structures.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,103 root INFO copying falcon/asgi/multipart.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,103 root INFO copying falcon/asgi/_request_helpers.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,103 root INFO copying falcon/asgi/request.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,104 root INFO copying falcon/asgi/app.py -> build/lib.linux-armv8l-cpython-312/falcon/asgi
2024-05-27 02:11:06,104 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,104 root INFO copying falcon/util/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,104 root INFO copying falcon/util/reader.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,104 root INFO copying falcon/util/uri.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,105 root INFO copying falcon/util/deprecation.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,105 root INFO copying falcon/util/structures.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,105 root INFO copying falcon/util/sync.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,105 root INFO copying falcon/util/misc.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,105 root INFO copying falcon/util/time.py -> build/lib.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:11:06,105 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,105 root INFO copying falcon/testing/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,106 root INFO copying falcon/testing/resource.py -> build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,106 root INFO copying falcon/testing/test_case.py -> build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,106 root INFO copying falcon/testing/srmock.py -> build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,106 root INFO copying falcon/testing/helpers.py -> build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,106 root INFO copying falcon/testing/client.py -> build/lib.linux-armv8l-cpython-312/falcon/testing
2024-05-27 02:11:06,107 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/vendor
2024-05-27 02:11:06,107 root INFO copying falcon/vendor/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/vendor
2024-05-27 02:11:06,107 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:11:06,107 root INFO copying falcon/routing/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:11:06,107 root INFO copying falcon/routing/converters.py -> build/lib.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:11:06,108 root INFO copying falcon/routing/compiled.py -> build/lib.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:11:06,108 root INFO copying falcon/routing/util.py -> build/lib.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:11:06,108 root INFO copying falcon/routing/static.py -> build/lib.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:11:06,108 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/media/validators
2024-05-27 02:11:06,108 root INFO copying falcon/media/validators/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/media/validators
2024-05-27 02:11:06,108 root INFO copying falcon/media/validators/jsonschema.py -> build/lib.linux-armv8l-cpython-312/falcon/media/validators
2024-05-27 02:11:06,109 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/nuts
2024-05-27 02:11:06,109 root INFO copying falcon/bench/nuts/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts
2024-05-27 02:11:06,109 root INFO copying falcon/bench/nuts/config.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts
2024-05-27 02:11:06,109 root INFO copying falcon/bench/nuts/setup.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts
2024-05-27 02:11:06,109 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO copying falcon/bench/queues/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO copying falcon/bench/queues/queues.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO copying falcon/bench/queues/messages.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO copying falcon/bench/queues/api.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO copying falcon/bench/queues/claims.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO copying falcon/bench/queues/stats.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/queues
2024-05-27 02:11:06,110 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/dj
2024-05-27 02:11:06,111 root INFO copying falcon/bench/dj/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj
2024-05-27 02:11:06,111 root INFO copying falcon/bench/dj/manage.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj
2024-05-27 02:11:06,111 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts
2024-05-27 02:11:06,111 root INFO copying falcon/bench/nuts/nuts/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts
2024-05-27 02:11:06,111 root INFO copying falcon/bench/nuts/nuts/app.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts
2024-05-27 02:11:06,111 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/model
2024-05-27 02:11:06,112 root INFO copying falcon/bench/nuts/nuts/model/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/model
2024-05-27 02:11:06,112 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests
2024-05-27 02:11:06,112 root INFO copying falcon/bench/nuts/nuts/tests/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests
2024-05-27 02:11:06,112 root INFO copying falcon/bench/nuts/nuts/tests/test_functional.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests
2024-05-27 02:11:06,112 root INFO copying falcon/bench/nuts/nuts/tests/test_units.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests
2024-05-27 02:11:06,112 root INFO copying falcon/bench/nuts/nuts/tests/config.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests
2024-05-27 02:11:06,113 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/controllers
2024-05-27 02:11:06,113 root INFO copying falcon/bench/nuts/nuts/controllers/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/controllers
2024-05-27 02:11:06,113 root INFO copying falcon/bench/nuts/nuts/controllers/root.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/controllers
2024-05-27 02:11:06,113 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,113 root INFO copying falcon/bench/dj/hello/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,113 root INFO copying falcon/bench/dj/hello/views.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,114 root INFO copying falcon/bench/dj/hello/models.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,114 root INFO copying falcon/bench/dj/hello/apps.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,114 root INFO copying falcon/bench/dj/hello/admin.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,114 root INFO copying falcon/bench/dj/hello/tests.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello
2024-05-27 02:11:06,114 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj
2024-05-27 02:11:06,114 root INFO copying falcon/bench/dj/dj/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj
2024-05-27 02:11:06,114 root INFO copying falcon/bench/dj/dj/urls.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj
2024-05-27 02:11:06,115 root INFO copying falcon/bench/dj/dj/wsgi.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj
2024-05-27 02:11:06,115 root INFO copying falcon/bench/dj/dj/settings.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj
2024-05-27 02:11:06,115 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/migrations
2024-05-27 02:11:06,115 root INFO copying falcon/bench/dj/hello/migrations/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/migrations
2024-05-27 02:11:06,115 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse
2024-05-27 02:11:06,115 root INFO copying falcon/vendor/mimeparse/__init__.py -> build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse
2024-05-27 02:11:06,116 root INFO copying falcon/vendor/mimeparse/mimeparse.py -> build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse
2024-05-27 02:11:06,116 root INFO running egg_info
2024-05-27 02:11:06,116 root INFO creating falcon.egg-info
2024-05-27 02:11:06,121 root INFO writing falcon.egg-info/PKG-INFO
2024-05-27 02:11:06,122 root INFO writing dependency_links to falcon.egg-info/dependency_links.txt
2024-05-27 02:11:06,122 root INFO writing entry points to falcon.egg-info/entry_points.txt
2024-05-27 02:11:06,123 root INFO writing top-level names to falcon.egg-info/top_level.txt
2024-05-27 02:11:06,123 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt'
2024-05-27 02:11:06,135 root INFO reading manifest file 'falcon.egg-info/SOURCES.txt'
2024-05-27 02:11:06,135 root INFO reading manifest template 'MANIFEST.in'
2024-05-27 02:11:06,150 root WARNING no previously-included directories found matching 'docs/_build'
2024-05-27 02:11:06,150 root INFO adding license file 'LICENSE'
2024-05-27 02:11:06,153 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt'
/usr/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'falcon.cyutil' is absent from the `packages` configuration.
!!

        ********************************************************************************
        ############################
        # Package would be ignored #
        ############################
        Python recognizes 'falcon.cyutil' as an importable package[^1],
        but it is absent from setuptools' `packages` configuration.

        This leads to an ambiguous overall configuration. If you want to distribute this
        package, please make sure that 'falcon.cyutil' is explicitly added
        to the `packages` configuration field.

        Alternatively, you can also rely on setuptools' discovery methods
        (for example by using `find_namespace_packages(...)`/`find_namespace:`
        instead of `find_packages(...)`/`find:`).

        You can read more about "package discovery" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

        If you don't want 'falcon.cyutil' to be distributed and are
        already explicitly excluding 'falcon.cyutil' via
        `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
        you can try to use `exclude_package_data`, or `include-package-data=False` in
        combination with a more fine grained `package-data` configuration.

        You can read more about "package data files" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


        [^1]: For Python, any directory (with suitable naming) can be imported,
              even if it does not contain any `.py` files.
              On the other hand, currently there is no concept of package data
              directory, all directories are treated like packages.
        ********************************************************************************

!!
  check.warn(importable)
2024-05-27 02:11:06,156 root INFO creating build/lib.linux-armv8l-cpython-312/falcon/cyutil
2024-05-27 02:11:06,156 root INFO copying falcon/cyutil/misc.pyx -> build/lib.linux-armv8l-cpython-312/falcon/cyutil
2024-05-27 02:11:06,157 root INFO copying falcon/cyutil/reader.pyx -> build/lib.linux-armv8l-cpython-312/falcon/cyutil
2024-05-27 02:11:06,157 root INFO copying falcon/cyutil/uri.pyx -> build/lib.linux-armv8l-cpython-312/falcon/cyutil
2024-05-27 02:11:06,159 root INFO running build_ext
Compiling falcon/middleware.py because it changed.
[1/1] Cythonizing falcon/middleware.py
2024-05-27 02:11:06,668 root INFO building 'falcon.middleware' extension
2024-05-27 02:11:06,668 root INFO creating build/temp.linux-armv8l-cpython-312
2024-05-27 02:11:06,669 root INFO creating build/temp.linux-armv8l-cpython-312/falcon
2024-05-27 02:11:06,669 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/middleware.c -o build/temp.linux-armv8l-cpython-312/falcon/middleware.o
2024-05-27 02:11:09,489 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/middleware.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/middleware.cpython-312-arm-linux-musleabihf.so
Compiling falcon/forwarded.py because it changed.
[1/1] Cythonizing falcon/forwarded.py
2024-05-27 02:11:09,553 root INFO building 'falcon.forwarded' extension
2024-05-27 02:11:09,554 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/forwarded.c -o build/temp.linux-armv8l-cpython-312/falcon/forwarded.o
2024-05-27 02:11:12,635 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/forwarded.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/forwarded.cpython-312-arm-linux-musleabihf.so
Compiling falcon/response.py because it changed.
[1/1] Cythonizing falcon/response.py
2024-05-27 02:11:12,792 root INFO building 'falcon.response' extension
2024-05-27 02:11:12,792 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/response.c -o build/temp.linux-armv8l-cpython-312/falcon/response.o
2024-05-27 02:11:22,820 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/response.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/response.cpython-312-arm-linux-musleabihf.so
Compiling falcon/uri.py because it changed.
[1/1] Cythonizing falcon/uri.py
2024-05-27 02:11:22,849 root INFO building 'falcon.uri' extension
2024-05-27 02:11:22,849 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/uri.c -o build/temp.linux-armv8l-cpython-312/falcon/uri.o
2024-05-27 02:11:23,382 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/uri.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/uri.cpython-312-arm-linux-musleabihf.so
Compiling falcon/http_error.py because it changed.
[1/1] Cythonizing falcon/http_error.py
2024-05-27 02:11:23,444 root INFO building 'falcon.http_error' extension
2024-05-27 02:11:23,444 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/http_error.c -o build/temp.linux-armv8l-cpython-312/falcon/http_error.o
2024-05-27 02:11:26,651 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/http_error.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/http_error.cpython-312-arm-linux-musleabihf.so
Compiling falcon/version.py because it changed.
[1/1] Cythonizing falcon/version.py
2024-05-27 02:11:26,674 root INFO building 'falcon.version' extension
2024-05-27 02:11:26,674 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/version.c -o build/temp.linux-armv8l-cpython-312/falcon/version.o
2024-05-27 02:11:27,057 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/version.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/version.cpython-312-arm-linux-musleabihf.so
Compiling falcon/stream.py because it changed.
[1/1] Cythonizing falcon/stream.py
2024-05-27 02:11:27,109 root INFO building 'falcon.stream' extension
2024-05-27 02:11:27,109 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/stream.c -o build/temp.linux-armv8l-cpython-312/falcon/stream.o
2024-05-27 02:11:29,364 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/stream.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/stream.cpython-312-arm-linux-musleabihf.so
Compiling falcon/redirects.py because it changed.
[1/1] Cythonizing falcon/redirects.py
2024-05-27 02:11:29,411 root INFO building 'falcon.redirects' extension
2024-05-27 02:11:29,412 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/redirects.c -o build/temp.linux-armv8l-cpython-312/falcon/redirects.o
2024-05-27 02:11:31,377 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/redirects.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/redirects.cpython-312-arm-linux-musleabihf.so
Compiling falcon/api_helpers.py because it changed.
[1/1] Cythonizing falcon/api_helpers.py
2024-05-27 02:11:31,401 root INFO building 'falcon.api_helpers' extension
2024-05-27 02:11:31,401 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/api_helpers.c -o build/temp.linux-armv8l-cpython-312/falcon/api_helpers.o
2024-05-27 02:11:31,977 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/api_helpers.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/api_helpers.cpython-312-arm-linux-musleabihf.so
Compiling falcon/app_helpers.py because it changed.
[1/1] Cythonizing falcon/app_helpers.py
2024-05-27 02:11:32,054 root INFO building 'falcon.app_helpers' extension
2024-05-27 02:11:32,054 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/app_helpers.c -o build/temp.linux-armv8l-cpython-312/falcon/app_helpers.o
2024-05-27 02:11:36,141 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/app_helpers.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/app_helpers.cpython-312-arm-linux-musleabihf.so
Compiling falcon/response_helpers.py because it changed.
[1/1] Cythonizing falcon/response_helpers.py
2024-05-27 02:11:36,198 root INFO building 'falcon.response_helpers' extension
2024-05-27 02:11:36,198 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/response_helpers.c -o build/temp.linux-armv8l-cpython-312/falcon/response_helpers.o
2024-05-27 02:11:38,417 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/response_helpers.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/response_helpers.cpython-312-arm-linux-musleabihf.so
Compiling falcon/status_codes.py because it changed.
[1/1] Cythonizing falcon/status_codes.py
2024-05-27 02:11:38,465 root INFO building 'falcon.status_codes' extension
2024-05-27 02:11:38,465 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/status_codes.c -o build/temp.linux-armv8l-cpython-312/falcon/status_codes.o
2024-05-27 02:11:43,529 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/status_codes.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/status_codes.cpython-312-arm-linux-musleabihf.so
Compiling falcon/inspect.py because it changed.
[1/1] Cythonizing falcon/inspect.py
2024-05-27 02:11:43,808 root INFO building 'falcon.inspect' extension
2024-05-27 02:11:43,808 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/inspect.c -o build/temp.linux-armv8l-cpython-312/falcon/inspect.o
2024-05-27 02:11:57,878 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/inspect.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/inspect.cpython-312-arm-linux-musleabihf.so
Compiling falcon/errors.py because it changed.
[1/1] Cythonizing falcon/errors.py
2024-05-27 02:11:58,123 root INFO building 'falcon.errors' extension
2024-05-27 02:11:58,123 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/errors.c -o build/temp.linux-armv8l-cpython-312/falcon/errors.o
2024-05-27 02:12:11,940 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/errors.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/errors.cpython-312-arm-linux-musleabihf.so
Compiling falcon/request.py because it changed.
[1/1] Cythonizing falcon/request.py
2024-05-27 02:12:12,293 root INFO building 'falcon.request' extension
2024-05-27 02:12:12,293 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/request.c -o build/temp.linux-armv8l-cpython-312/falcon/request.o
2024-05-27 02:12:30,259 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/request.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/request.cpython-312-arm-linux-musleabihf.so
Compiling falcon/constants.py because it changed.
[1/1] Cythonizing falcon/constants.py
2024-05-27 02:12:30,310 root INFO building 'falcon.constants' extension
2024-05-27 02:12:30,311 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/constants.c -o build/temp.linux-armv8l-cpython-312/falcon/constants.o
2024-05-27 02:12:32,336 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/constants.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/constants.cpython-312-arm-linux-musleabihf.so
Compiling falcon/http_status.py because it changed.
[1/1] Cythonizing falcon/http_status.py
2024-05-27 02:12:32,368 root INFO building 'falcon.http_status' extension
2024-05-27 02:12:32,368 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/http_status.c -o build/temp.linux-armv8l-cpython-312/falcon/http_status.o
2024-05-27 02:12:33,720 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/http_status.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/http_status.cpython-312-arm-linux-musleabihf.so
Compiling falcon/asgi_spec.py because it changed.
[1/1] Cythonizing falcon/asgi_spec.py
2024-05-27 02:12:33,751 root INFO building 'falcon.asgi_spec' extension
2024-05-27 02:12:33,751 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/asgi_spec.c -o build/temp.linux-armv8l-cpython-312/falcon/asgi_spec.o
2024-05-27 02:12:34,753 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/asgi_spec.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/asgi_spec.cpython-312-arm-linux-musleabihf.so
Compiling falcon/app.py because it changed.
[1/1] Cythonizing falcon/app.py
2024-05-27 02:12:34,931 root INFO building 'falcon.app' extension
2024-05-27 02:12:34,931 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/app.c -o build/temp.linux-armv8l-cpython-312/falcon/app.o
2024-05-27 02:12:46,396 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/app.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/app.cpython-312-arm-linux-musleabihf.so
Compiling falcon/request_helpers.py because it changed.
[1/1] Cythonizing falcon/request_helpers.py
2024-05-27 02:12:46,453 root INFO building 'falcon.request_helpers' extension
2024-05-27 02:12:46,454 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/request_helpers.c -o build/temp.linux-armv8l-cpython-312/falcon/request_helpers.o
2024-05-27 02:12:48,650 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/request_helpers.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/request_helpers.cpython-312-arm-linux-musleabihf.so
Compiling falcon/cyutil/uri.pyx because it changed.
[1/1] Cythonizing falcon/cyutil/uri.pyx
2024-05-27 02:12:48,808 root INFO building 'falcon.cyutil.uri' extension
2024-05-27 02:12:48,808 root INFO creating build/temp.linux-armv8l-cpython-312/falcon/cyutil
2024-05-27 02:12:48,808 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/cyutil/uri.c -o build/temp.linux-armv8l-cpython-312/falcon/cyutil/uri.o
2024-05-27 02:12:50,561 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/cyutil/uri.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/cyutil/uri.cpython-312-arm-linux-musleabihf.so
Compiling falcon/cyutil/misc.pyx because it changed.
[1/1] Cythonizing falcon/cyutil/misc.pyx
2024-05-27 02:12:50,594 root INFO building 'falcon.cyutil.misc' extension
2024-05-27 02:12:50,594 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/cyutil/misc.c -o build/temp.linux-armv8l-cpython-312/falcon/cyutil/misc.o
2024-05-27 02:12:51,636 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/cyutil/misc.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/cyutil/misc.cpython-312-arm-linux-musleabihf.so
Compiling falcon/cyutil/reader.pyx because it changed.
[1/1] Cythonizing falcon/cyutil/reader.pyx
2024-05-27 02:12:51,776 root INFO building 'falcon.cyutil.reader' extension
2024-05-27 02:12:51,776 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/cyutil/reader.c -o build/temp.linux-armv8l-cpython-312/falcon/cyutil/reader.o
2024-05-27 02:12:55,238 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/cyutil/reader.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/cyutil/reader.cpython-312-arm-linux-musleabihf.so
Compiling falcon/media/handlers.py because it changed.
[1/1] Cythonizing falcon/media/handlers.py
2024-05-27 02:12:55,309 root INFO building 'falcon.media.handlers' extension
2024-05-27 02:12:55,309 root INFO creating build/temp.linux-armv8l-cpython-312/falcon/media
2024-05-27 02:12:55,309 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/handlers.c -o build/temp.linux-armv8l-cpython-312/falcon/media/handlers.o
2024-05-27 02:12:58,950 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/media/handlers.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/media/handlers.cpython-312-arm-linux-musleabihf.so
Compiling falcon/media/msgpack.py because it changed.
[1/1] Cythonizing falcon/media/msgpack.py
2024-05-27 02:12:59,010 root INFO building 'falcon.media.msgpack' extension
2024-05-27 02:12:59,010 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/msgpack.c -o build/temp.linux-armv8l-cpython-312/falcon/media/msgpack.o
2024-05-27 02:13:02,378 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/media/msgpack.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/media/msgpack.cpython-312-arm-linux-musleabihf.so
Compiling falcon/media/urlencoded.py because it changed.
[1/1] Cythonizing falcon/media/urlencoded.py
2024-05-27 02:13:02,427 root INFO building 'falcon.media.urlencoded' extension
2024-05-27 02:13:02,427 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/urlencoded.c -o build/temp.linux-armv8l-cpython-312/falcon/media/urlencoded.o
2024-05-27 02:13:05,093 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/media/urlencoded.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/media/urlencoded.cpython-312-arm-linux-musleabihf.so
Compiling falcon/media/multipart.py because it changed.
[1/1] Cythonizing falcon/media/multipart.py
2024-05-27 02:13:05,222 root INFO building 'falcon.media.multipart' extension
2024-05-27 02:13:05,222 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/multipart.c -o build/temp.linux-armv8l-cpython-312/falcon/media/multipart.o
2024-05-27 02:13:12,853 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/media/multipart.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/media/multipart.cpython-312-arm-linux-musleabihf.so
Compiling falcon/media/json.py because it changed.
[1/1] Cythonizing falcon/media/json.py
2024-05-27 02:13:12,926 root INFO building 'falcon.media.json' extension
2024-05-27 02:13:12,926 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/json.c -o build/temp.linux-armv8l-cpython-312/falcon/media/json.o
2024-05-27 02:13:16,716 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/media/json.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/media/json.cpython-312-arm-linux-musleabihf.so
Compiling falcon/media/base.py because it changed.
[1/1] Cythonizing falcon/media/base.py
2024-05-27 02:13:16,823 root INFO building 'falcon.media.base' extension
2024-05-27 02:13:16,823 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/media/base.c -o build/temp.linux-armv8l-cpython-312/falcon/media/base.o
2024-05-27 02:13:19,643 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/media/base.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/media/base.cpython-312-arm-linux-musleabihf.so
Compiling falcon/routing/converters.py because it changed.
[1/1] Cythonizing falcon/routing/converters.py
2024-05-27 02:13:19,696 root INFO building 'falcon.routing.converters' extension
2024-05-27 02:13:19,696 root INFO creating build/temp.linux-armv8l-cpython-312/falcon/routing
2024-05-27 02:13:19,696 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/converters.c -o build/temp.linux-armv8l-cpython-312/falcon/routing/converters.o
2024-05-27 02:13:22,007 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/routing/converters.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/routing/converters.cpython-312-arm-linux-musleabihf.so
Compiling falcon/routing/compiled.py because it changed.
[1/1] Cythonizing falcon/routing/compiled.py
2024-05-27 02:13:22,270 root INFO building 'falcon.routing.compiled' extension
2024-05-27 02:13:22,270 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/compiled.c -o build/temp.linux-armv8l-cpython-312/falcon/routing/compiled.o
falcon/routing/compiled.c: In function '__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generate_ast.isra':
falcon/routing/compiled.c:1143:40: warning: '__pyx_v_resource_idx' may be used uninitialized [-Wmaybe-uninitialized]
 1143 |   #define PyInt_FromSsize_t            PyLong_FromSsize_t
      |                                        ^
falcon/routing/compiled.c:11782:19: note: in expansion of macro 'PyInt_FromSsize_t'
11782 |       __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_resource_idx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error)
      |                   ^~~~~~~~~~~~~~~~~
falcon/routing/compiled.c:9792:14: note: '__pyx_v_resource_idx' was declared here
 9792 |   Py_ssize_t __pyx_v_resource_idx;
      |              ^~~~~~~~~~~~~~~~~~~~
2024-05-27 02:13:39,374 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/routing/compiled.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/routing/compiled.cpython-312-arm-linux-musleabihf.so
Compiling falcon/routing/util.py because it changed.
[1/1] Cythonizing falcon/routing/util.py
2024-05-27 02:13:39,441 root INFO building 'falcon.routing.util' extension
2024-05-27 02:13:39,441 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/util.c -o build/temp.linux-armv8l-cpython-312/falcon/routing/util.o
2024-05-27 02:13:41,945 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/routing/util.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/routing/util.cpython-312-arm-linux-musleabihf.so
Compiling falcon/routing/static.py because it changed.
[1/1] Cythonizing falcon/routing/static.py
2024-05-27 02:13:42,043 root INFO building 'falcon.routing.static' extension
2024-05-27 02:13:42,043 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/routing/static.c -o build/temp.linux-armv8l-cpython-312/falcon/routing/static.o
2024-05-27 02:13:47,919 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/routing/static.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/routing/static.cpython-312-arm-linux-musleabihf.so
Compiling falcon/util/uri.py because it changed.
[1/1] Cythonizing falcon/util/uri.py
2024-05-27 02:13:48,086 root INFO building 'falcon.util.uri' extension
2024-05-27 02:13:48,086 root INFO creating build/temp.linux-armv8l-cpython-312/falcon/util
2024-05-27 02:13:48,086 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/uri.c -o build/temp.linux-armv8l-cpython-312/falcon/util/uri.o
2024-05-27 02:13:52,876 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/util/uri.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/util/uri.cpython-312-arm-linux-musleabihf.so
Compiling falcon/util/deprecation.py because it changed.
[1/1] Cythonizing falcon/util/deprecation.py
2024-05-27 02:13:52,929 root INFO building 'falcon.util.deprecation' extension
2024-05-27 02:13:52,929 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/deprecation.c -o build/temp.linux-armv8l-cpython-312/falcon/util/deprecation.o
2024-05-27 02:13:55,166 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/util/deprecation.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/util/deprecation.cpython-312-arm-linux-musleabihf.so
Compiling falcon/util/structures.py because it changed.
[1/1] Cythonizing falcon/util/structures.py
2024-05-27 02:13:55,270 root INFO building 'falcon.util.structures' extension
2024-05-27 02:13:55,270 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/structures.c -o build/temp.linux-armv8l-cpython-312/falcon/util/structures.o
2024-05-27 02:14:00,578 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/util/structures.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/util/structures.cpython-312-arm-linux-musleabihf.so
Compiling falcon/util/misc.py because it changed.
[1/1] Cythonizing falcon/util/misc.py
2024-05-27 02:14:00,687 root INFO building 'falcon.util.misc' extension
2024-05-27 02:14:00,687 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/misc.c -o build/temp.linux-armv8l-cpython-312/falcon/util/misc.o
2024-05-27 02:14:05,987 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/util/misc.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/util/misc.cpython-312-arm-linux-musleabihf.so
Compiling falcon/util/time.py because it changed.
[1/1] Cythonizing falcon/util/time.py
2024-05-27 02:14:06,021 root INFO building 'falcon.util.time' extension
2024-05-27 02:14:06,022 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/util/time.c -o build/temp.linux-armv8l-cpython-312/falcon/util/time.o
2024-05-27 02:14:07,395 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/util/time.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/util/time.cpython-312-arm-linux-musleabihf.so
Compiling falcon/vendor/mimeparse/mimeparse.py because it changed.
[1/1] Cythonizing falcon/vendor/mimeparse/mimeparse.py
2024-05-27 02:14:07,470 root INFO building 'falcon.vendor.mimeparse.mimeparse' extension
2024-05-27 02:14:07,470 root INFO creating build/temp.linux-armv8l-cpython-312/falcon/vendor
2024-05-27 02:14:07,470 root INFO creating build/temp.linux-armv8l-cpython-312/falcon/vendor/mimeparse
2024-05-27 02:14:07,470 root INFO gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c falcon/vendor/mimeparse/mimeparse.c -o build/temp.linux-armv8l-cpython-312/falcon/vendor/mimeparse/mimeparse.o
2024-05-27 02:14:11,513 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-armv8l-cpython-312/falcon/vendor/mimeparse/mimeparse.o -L/usr/lib -o build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse/mimeparse.cpython-312-arm-linux-musleabihf.so
2024-05-27 02:14:11,542 wheel INFO installing to build/bdist.linux-armv8l/wheel
2024-05-27 02:14:11,542 root INFO running install
2024-05-27 02:14:11,551 root INFO running install_lib
2024-05-27 02:14:11,557 root INFO creating build/bdist.linux-armv8l
2024-05-27 02:14:11,557 root INFO creating build/bdist.linux-armv8l/wheel
2024-05-27 02:14:11,557 root INFO creating build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,558 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/__init__.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,558 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/http_status.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,558 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/status_codes.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,558 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/app.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,559 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/middleware.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,560 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/forwarded.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,560 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/responders.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,560 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/response_helpers.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,560 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/response.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,561 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/uri.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,561 root INFO creating build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,561 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,561 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/handlers.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,561 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/multipart.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,562 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/urlencoded.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,563 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/msgpack.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,563 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/urlencoded.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,563 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/json.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,563 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/multipart.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,564 root INFO creating build/bdist.linux-armv8l/wheel/falcon/media/validators
2024-05-27 02:14:11,564 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/validators/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/media/validators
2024-05-27 02:14:11,564 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/validators/jsonschema.py -> build/bdist.linux-armv8l/wheel/falcon/media/validators
2024-05-27 02:14:11,564 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/json.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,564 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/base.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,565 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/msgpack.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,565 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/base.py -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,565 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/media/handlers.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/media
2024-05-27 02:14:11,566 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/middleware.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,566 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/version.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,567 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/constants.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,567 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/http_error.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,567 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/version.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,567 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/stream.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,567 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/redirects.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,568 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/request_helpers.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,568 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/inspect.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,569 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench
2024-05-27 02:14:11,569 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench
2024-05-27 02:14:11,570 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/nuts
2024-05-27 02:14:11,570 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts
2024-05-27 02:14:11,570 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts
2024-05-27 02:14:11,570 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts
2024-05-27 02:14:11,570 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/model
2024-05-27 02:14:11,570 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/model/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/model
2024-05-27 02:14:11,570 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/tests
2024-05-27 02:14:11,570 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/tests
2024-05-27 02:14:11,571 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests/test_functional.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/tests
2024-05-27 02:14:11,571 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests/test_units.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/tests
2024-05-27 02:14:11,571 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/tests/config.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/tests
2024-05-27 02:14:11,571 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/app.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts
2024-05-27 02:14:11,571 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/controllers
2024-05-27 02:14:11,571 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/controllers/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/controllers
2024-05-27 02:14:11,571 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/nuts/controllers/root.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts/nuts/controllers
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/config.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/nuts/setup.py -> build/bdist.linux-armv8l/wheel/falcon/bench/nuts
2024-05-27 02:14:11,572 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/queues/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/queues/queues.py -> build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/queues/messages.py -> build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/queues/api.py -> build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,572 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/queues/claims.py -> build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,573 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/queues/stats.py -> build/bdist.linux-armv8l/wheel/falcon/bench/queues
2024-05-27 02:14:11,573 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/dj
2024-05-27 02:14:11,573 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj
2024-05-27 02:14:11,573 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,573 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,573 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/views.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,573 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/models.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,573 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello/migrations
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/migrations/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello/migrations
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/apps.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/admin.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/hello/tests.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/hello
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/manage.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj
2024-05-27 02:14:11,574 root INFO creating build/bdist.linux-armv8l/wheel/falcon/bench/dj/dj
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/dj
2024-05-27 02:14:11,574 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj/urls.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/dj
2024-05-27 02:14:11,575 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj/wsgi.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/dj
2024-05-27 02:14:11,575 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/dj/dj/settings.py -> build/bdist.linux-armv8l/wheel/falcon/bench/dj/dj
2024-05-27 02:14:11,575 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/bench.py -> build/bdist.linux-armv8l/wheel/falcon/bench
2024-05-27 02:14:11,575 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/bench/create.py -> build/bdist.linux-armv8l/wheel/falcon/bench
2024-05-27 02:14:11,575 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/redirects.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,576 root INFO creating build/bdist.linux-armv8l/wheel/falcon/cmd
2024-05-27 02:14:11,576 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cmd/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/cmd
2024-05-27 02:14:11,576 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cmd/bench.py -> build/bdist.linux-armv8l/wheel/falcon/cmd
2024-05-27 02:14:11,576 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cmd/inspect_app.py -> build/bdist.linux-armv8l/wheel/falcon/cmd
2024-05-27 02:14:11,576 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/forwarded.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,576 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi_spec.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,577 root INFO creating build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,577 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,577 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/reader.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,577 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/response.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,577 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/stream.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,577 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/ws.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,578 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/_asgi_helpers.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,578 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/structures.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,578 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/multipart.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,578 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/_request_helpers.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,578 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/request.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,578 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi/app.py -> build/bdist.linux-armv8l/wheel/falcon/asgi
2024-05-27 02:14:11,579 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/api_helpers.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,579 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/hooks.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,579 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/app_helpers.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,579 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/response_helpers.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,579 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/request.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,581 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/status_codes.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,581 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/response.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,582 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/inspect.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,582 root INFO creating build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,582 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cyutil/uri.pyx -> build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,582 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cyutil/misc.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,582 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cyutil/misc.pyx -> build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,583 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cyutil/reader.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,583 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cyutil/reader.pyx -> build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,583 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/cyutil/uri.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/cyutil
2024-05-27 02:14:11,584 root INFO creating build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,584 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,584 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/reader.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,584 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/uri.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,584 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/deprecation.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,584 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/time.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,585 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/deprecation.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,585 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/structures.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,585 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/sync.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,585 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/misc.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,586 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/structures.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,587 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/misc.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,587 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/time.py -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,587 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/util/uri.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/util
2024-05-27 02:14:11,588 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/app_helpers.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,588 root INFO creating build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,589 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/testing/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,589 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/testing/resource.py -> build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,589 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/testing/test_case.py -> build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,589 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/testing/srmock.py -> build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,589 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/testing/helpers.py -> build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,589 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/testing/client.py -> build/bdist.linux-armv8l/wheel/falcon/testing
2024-05-27 02:14:11,590 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/errors.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,590 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/errors.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,591 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/request.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,591 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/stream.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,592 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/constants.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,592 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/http_status.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,592 root INFO creating build/bdist.linux-armv8l/wheel/falcon/vendor
2024-05-27 02:14:11,592 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/vendor/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/vendor
2024-05-27 02:14:11,592 root INFO creating build/bdist.linux-armv8l/wheel/falcon/vendor/mimeparse
2024-05-27 02:14:11,593 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/vendor/mimeparse
2024-05-27 02:14:11,593 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse/mimeparse.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/vendor/mimeparse
2024-05-27 02:14:11,593 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/vendor/mimeparse/mimeparse.py -> build/bdist.linux-armv8l/wheel/falcon/vendor/mimeparse
2024-05-27 02:14:11,593 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/asgi_spec.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,594 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/http_error.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,594 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/app.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,594 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/request_helpers.py -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,594 root INFO creating build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,595 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/__init__.py -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,595 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/converters.py -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,595 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/compiled.py -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,595 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/static.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,596 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/compiled.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,597 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/util.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,598 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/util.py -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,598 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/static.py -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,598 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/routing/converters.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon/routing
2024-05-27 02:14:11,598 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/uri.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,599 root INFO copying build/lib.linux-armv8l-cpython-312/falcon/api_helpers.cpython-312-arm-linux-musleabihf.so -> build/bdist.linux-armv8l/wheel/falcon
2024-05-27 02:14:11,599 root INFO running install_egg_info
2024-05-27 02:14:11,607 root INFO Copying falcon.egg-info to build/bdist.linux-armv8l/wheel/falcon-3.1.3-py3.12.egg-info
2024-05-27 02:14:11,608 root INFO running install_scripts
2024-05-27 02:14:11,613 wheel INFO creating build/bdist.linux-armv8l/wheel/falcon-3.1.3.dist-info/WHEEL
2024-05-27 02:14:11,614 wheel INFO creating '/home/buildozer/aports/testing/py3-falcon/src/falcon-3.1.3/dist/.tmp-49k5c7_e/falcon-3.1.3-cp312-cp312-linux_armv8l.whl' and adding 'build/bdist.linux-armv8l/wheel' to it
2024-05-27 02:14:11,614 wheel INFO adding 'falcon/__init__.py'
2024-05-27 02:14:11,614 wheel INFO adding 'falcon/api_helpers.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,615 wheel INFO adding 'falcon/api_helpers.py'
2024-05-27 02:14:11,616 wheel INFO adding 'falcon/app.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,617 wheel INFO adding 'falcon/app.py'
2024-05-27 02:14:11,618 wheel INFO adding 'falcon/app_helpers.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,619 wheel INFO adding 'falcon/app_helpers.py'
2024-05-27 02:14:11,619 wheel INFO adding 'falcon/asgi_spec.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,619 wheel INFO adding 'falcon/asgi_spec.py'
2024-05-27 02:14:11,620 wheel INFO adding 'falcon/constants.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,620 wheel INFO adding 'falcon/constants.py'
2024-05-27 02:14:11,622 wheel INFO adding 'falcon/errors.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,623 wheel INFO adding 'falcon/errors.py'
2024-05-27 02:14:11,624 wheel INFO adding 'falcon/forwarded.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,624 wheel INFO adding 'falcon/forwarded.py'
2024-05-27 02:14:11,625 wheel INFO adding 'falcon/hooks.py'
2024-05-27 02:14:11,625 wheel INFO adding 'falcon/http_error.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,626 wheel INFO adding 'falcon/http_error.py'
2024-05-27 02:14:11,626 wheel INFO adding 'falcon/http_status.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,627 wheel INFO adding 'falcon/http_status.py'
2024-05-27 02:14:11,629 wheel INFO adding 'falcon/inspect.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,630 wheel INFO adding 'falcon/inspect.py'
2024-05-27 02:14:11,631 wheel INFO adding 'falcon/middleware.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,631 wheel INFO adding 'falcon/middleware.py'
2024-05-27 02:14:11,632 wheel INFO adding 'falcon/redirects.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,632 wheel INFO adding 'falcon/redirects.py'
2024-05-27 02:14:11,634 wheel INFO adding 'falcon/request.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,635 wheel INFO adding 'falcon/request.py'
2024-05-27 02:14:11,636 wheel INFO adding 'falcon/request_helpers.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,636 wheel INFO adding 'falcon/request_helpers.py'
2024-05-27 02:14:11,637 wheel INFO adding 'falcon/responders.py'
2024-05-27 02:14:11,638 wheel INFO adding 'falcon/response.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,639 wheel INFO adding 'falcon/response.py'
2024-05-27 02:14:11,639 wheel INFO adding 'falcon/response_helpers.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,640 wheel INFO adding 'falcon/response_helpers.py'
2024-05-27 02:14:11,640 wheel INFO adding 'falcon/status_codes.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,640 wheel INFO adding 'falcon/status_codes.py'
2024-05-27 02:14:11,641 wheel INFO adding 'falcon/stream.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,641 wheel INFO adding 'falcon/stream.py'
2024-05-27 02:14:11,642 wheel INFO adding 'falcon/uri.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,642 wheel INFO adding 'falcon/uri.py'
2024-05-27 02:14:11,642 wheel INFO adding 'falcon/version.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,642 wheel INFO adding 'falcon/version.py'
2024-05-27 02:14:11,643 wheel INFO adding 'falcon/asgi/__init__.py'
2024-05-27 02:14:11,643 wheel INFO adding 'falcon/asgi/_asgi_helpers.py'
2024-05-27 02:14:11,643 wheel INFO adding 'falcon/asgi/_request_helpers.py'
2024-05-27 02:14:11,643 wheel INFO adding 'falcon/asgi/app.py'
2024-05-27 02:14:11,643 wheel INFO adding 'falcon/asgi/multipart.py'
2024-05-27 02:14:11,644 wheel INFO adding 'falcon/asgi/reader.py'
2024-05-27 02:14:11,644 wheel INFO adding 'falcon/asgi/request.py'
2024-05-27 02:14:11,644 wheel INFO adding 'falcon/asgi/response.py'
2024-05-27 02:14:11,644 wheel INFO adding 'falcon/asgi/stream.py'
2024-05-27 02:14:11,644 wheel INFO adding 'falcon/asgi/structures.py'
2024-05-27 02:14:11,645 wheel INFO adding 'falcon/asgi/ws.py'
2024-05-27 02:14:11,645 wheel INFO adding 'falcon/bench/__init__.py'
2024-05-27 02:14:11,645 wheel INFO adding 'falcon/bench/bench.py'
2024-05-27 02:14:11,645 wheel INFO adding 'falcon/bench/create.py'
2024-05-27 02:14:11,645 wheel INFO adding 'falcon/bench/dj/__init__.py'
2024-05-27 02:14:11,645 wheel INFO adding 'falcon/bench/dj/manage.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/dj/__init__.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/dj/settings.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/dj/urls.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/dj/wsgi.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/hello/__init__.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/hello/admin.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/hello/apps.py'
2024-05-27 02:14:11,646 wheel INFO adding 'falcon/bench/dj/hello/models.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/dj/hello/tests.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/dj/hello/views.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/dj/hello/migrations/__init__.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/nuts/__init__.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/nuts/config.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/nuts/setup.py'
2024-05-27 02:14:11,647 wheel INFO adding 'falcon/bench/nuts/nuts/__init__.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/app.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/__init__.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/root.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/model/__init__.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/tests/__init__.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/tests/config.py'
2024-05-27 02:14:11,648 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_functional.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_units.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/queues/__init__.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/queues/api.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/queues/claims.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/queues/messages.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/queues/queues.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/bench/queues/stats.py'
2024-05-27 02:14:11,649 wheel INFO adding 'falcon/cmd/__init__.py'
2024-05-27 02:14:11,650 wheel INFO adding 'falcon/cmd/bench.py'
2024-05-27 02:14:11,650 wheel INFO adding 'falcon/cmd/inspect_app.py'
2024-05-27 02:14:11,650 wheel INFO adding 'falcon/cyutil/misc.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,650 wheel INFO adding 'falcon/cyutil/misc.pyx'
2024-05-27 02:14:11,651 wheel INFO adding 'falcon/cyutil/reader.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,652 wheel INFO adding 'falcon/cyutil/reader.pyx'
2024-05-27 02:14:11,652 wheel INFO adding 'falcon/cyutil/uri.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,653 wheel INFO adding 'falcon/cyutil/uri.pyx'
2024-05-27 02:14:11,653 wheel INFO adding 'falcon/media/__init__.py'
2024-05-27 02:14:11,654 wheel INFO adding 'falcon/media/base.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,654 wheel INFO adding 'falcon/media/base.py'
2024-05-27 02:14:11,655 wheel INFO adding 'falcon/media/handlers.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,655 wheel INFO adding 'falcon/media/handlers.py'
2024-05-27 02:14:11,656 wheel INFO adding 'falcon/media/json.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,657 wheel INFO adding 'falcon/media/json.py'
2024-05-27 02:14:11,658 wheel INFO adding 'falcon/media/msgpack.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,658 wheel INFO adding 'falcon/media/msgpack.py'
2024-05-27 02:14:11,659 wheel INFO adding 'falcon/media/multipart.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,660 wheel INFO adding 'falcon/media/multipart.py'
2024-05-27 02:14:11,661 wheel INFO adding 'falcon/media/urlencoded.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,661 wheel INFO adding 'falcon/media/urlencoded.py'
2024-05-27 02:14:11,661 wheel INFO adding 'falcon/media/validators/__init__.py'
2024-05-27 02:14:11,662 wheel INFO adding 'falcon/media/validators/jsonschema.py'
2024-05-27 02:14:11,662 wheel INFO adding 'falcon/routing/__init__.py'
2024-05-27 02:14:11,664 wheel INFO adding 'falcon/routing/compiled.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,665 wheel INFO adding 'falcon/routing/compiled.py'
2024-05-27 02:14:11,666 wheel INFO adding 'falcon/routing/converters.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,666 wheel INFO adding 'falcon/routing/converters.py'
2024-05-27 02:14:11,667 wheel INFO adding 'falcon/routing/static.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,668 wheel INFO adding 'falcon/routing/static.py'
2024-05-27 02:14:11,669 wheel INFO adding 'falcon/routing/util.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,669 wheel INFO adding 'falcon/routing/util.py'
2024-05-27 02:14:11,669 wheel INFO adding 'falcon/testing/__init__.py'
2024-05-27 02:14:11,669 wheel INFO adding 'falcon/testing/client.py'
2024-05-27 02:14:11,670 wheel INFO adding 'falcon/testing/helpers.py'
2024-05-27 02:14:11,670 wheel INFO adding 'falcon/testing/resource.py'
2024-05-27 02:14:11,670 wheel INFO adding 'falcon/testing/srmock.py'
2024-05-27 02:14:11,670 wheel INFO adding 'falcon/testing/test_case.py'
2024-05-27 02:14:11,670 wheel INFO adding 'falcon/util/__init__.py'
2024-05-27 02:14:11,671 wheel INFO adding 'falcon/util/deprecation.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,672 wheel INFO adding 'falcon/util/deprecation.py'
2024-05-27 02:14:11,673 wheel INFO adding 'falcon/util/misc.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,673 wheel INFO adding 'falcon/util/misc.py'
2024-05-27 02:14:11,673 wheel INFO adding 'falcon/util/reader.py'
2024-05-27 02:14:11,674 wheel INFO adding 'falcon/util/structures.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,675 wheel INFO adding 'falcon/util/structures.py'
2024-05-27 02:14:11,675 wheel INFO adding 'falcon/util/sync.py'
2024-05-27 02:14:11,676 wheel INFO adding 'falcon/util/time.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,676 wheel INFO adding 'falcon/util/time.py'
2024-05-27 02:14:11,677 wheel INFO adding 'falcon/util/uri.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,677 wheel INFO adding 'falcon/util/uri.py'
2024-05-27 02:14:11,678 wheel INFO adding 'falcon/vendor/__init__.py'
2024-05-27 02:14:11,678 wheel INFO adding 'falcon/vendor/mimeparse/__init__.py'
2024-05-27 02:14:11,679 wheel INFO adding 'falcon/vendor/mimeparse/mimeparse.cpython-312-arm-linux-musleabihf.so'
2024-05-27 02:14:11,679 wheel INFO adding 'falcon/vendor/mimeparse/mimeparse.py'
2024-05-27 02:14:11,680 wheel INFO adding 'falcon-3.1.3.dist-info/LICENSE'
2024-05-27 02:14:11,680 wheel INFO adding 'falcon-3.1.3.dist-info/METADATA'
2024-05-27 02:14:11,680 wheel INFO adding 'falcon-3.1.3.dist-info/WHEEL'
2024-05-27 02:14:11,680 wheel INFO adding 'falcon-3.1.3.dist-info/entry_points.txt'
2024-05-27 02:14:11,680 wheel INFO adding 'falcon-3.1.3.dist-info/top_level.txt'
2024-05-27 02:14:11,681 wheel INFO adding 'falcon-3.1.3.dist-info/RECORD'
2024-05-27 02:14:11,681 wheel INFO removing build/bdist.linux-armv8l/wheel
2024-05-27 02:14:11,688 gpep517 INFO The backend produced dist/falcon-3.1.3-cp312-cp312-linux_armv8l.whl
falcon-3.1.3-cp312-cp312-linux_armv8l.whl
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-8.2.1, pluggy-1.5.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/buildozer/aports/testing/py3-falcon/src/falcon-3.1.3
configfile: pyproject.toml
plugins: asyncio-0.21.2, anyio-0.0.0
asyncio: mode=Mode.STRICT
collecting ... collected 3526 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] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  0%]
tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_invalid_content_length[_daphne_factory] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_invalid_content_length[_hypercorn_factory] SKIPPED [  1%]
tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream[_uvicorn_factory] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream[_daphne_factory] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream[_hypercorn_factory] SKIPPED [  1%]
tests/asgi/test_asgi_servers.py::TestASGIServer::test_post_read_bounded_stream_large[_uvicorn_factory] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  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-None-True] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-None-False] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-4321-True] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_uvicorn_factory-4321-False] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-None-True] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-None-False] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-4321-True] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_daphne_factory-4321-False] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-None-True] SKIPPED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-None-False] SKIPPED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-4321-True] SKIPPED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_hello[_hypercorn_factory-4321-False] SKIPPED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-None-True] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-None-False] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-4040-True] PASSED [  1%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_rejected[_uvicorn_factory-4040-False] PASSED [  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] PASSED [  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] PASSED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_select_subprotocol_known[_uvicorn_factory-wamp-wamp] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  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] PASSED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_recv_before_accept[_daphne_factory] PASSED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_recv_before_accept[_hypercorn_factory] SKIPPED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_invalid_close_code[_uvicorn_factory] PASSED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_invalid_close_code[_daphne_factory] PASSED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_invalid_close_code[_hypercorn_factory] SKIPPED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_error[_uvicorn_factory] PASSED [  2%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_close_code_on_unhandled_error[_daphne_factory] PASSED [  2%]
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] PASSED [  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] PASSED [  3%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-text-recv] PASSED [  3%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-data-send] PASSED [  3%]
tests/asgi/test_asgi_servers.py::TestWebSocket::test_type_mismatch[_uvicorn_factory-data-recv] PASSED [  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] PASSED [  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) [  3%]
tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-null] SKIPPEDhe parameter permutations) [  3%]
tests/asgi/test_boundedstream_asgi.py::test_read_all[False-True-null-ff] SKIPPEDhe parameter permutations) [  3%]
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  [  5%]
tests/asgi/test_boundedstream_asgi.py::test_read_chunks[64-random] PASSED [  5%]
tests/asgi/test_boundedstream_asgi.py::test_read_chunks[100-empty] PASSED [  5%]
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                  [  6%]
tests/asgi/test_buffered_reader.py::test_peek[8] PASSED                  [  6%]
tests/asgi/test_buffered_reader.py::test_peek_at_eof PASSED              [  6%]
tests/asgi/test_buffered_reader.py::test_pipe PASSED                     [  6%]
tests/asgi/test_buffered_reader.py::test_pipe_until_delimiter_not_found PASSED [  6%]
tests/asgi/test_buffered_reader.py::test_read[sizes0-expected0] PASSED   [  6%]
tests/asgi/test_buffered_reader.py::test_read[sizes1-expected1] PASSED   [  6%]
tests/asgi/test_buffered_reader.py::test_read[sizes2-expected2] PASSED   [  6%]
tests/asgi/test_buffered_reader.py::test_read[sizes3-expected3] PASSED   [  6%]
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 [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[3-l-13--False] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[3-l-13--True] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[2-l-13--False] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[2-l-13--True] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[0-good-13-Hello, World!-False] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[0-good-13-Hello, World!-True] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-19-World!\nJust testing-False] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-19-World!\nJust testing-True] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-33-World!\nJust testing some iterator-False] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-33-World!\nJust testing some iterator-True] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-34-World!\nJust testing some iterator -False] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-34-World!\nJust testing some iterator -True] PASSED [  7%]
tests/asgi/test_buffered_reader.py::test_read_until[7-good-1337-World!\nJust testing some iterator -False] PASSED [  7%]
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 [  8%]
tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[60] PASSED [  8%]
tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[61] PASSED [  8%]
tests/asgi/test_buffered_reader.py::test_read_until_shared_boundary[62] PASSED [  8%]
tests/asgi/test_buffered_reader.py::test_small_reads PASSED              [  8%]
tests/asgi/test_buffered_reader.py::test_small_reads_with_delimiter PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method0] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method_async0] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method1] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method_async1] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method2] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_is_cython_func[nop_method_async2] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method0] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method_async0] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method1] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method_async1] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method2] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_not_cython_func[nop_method_async2] PASSED [  8%]
tests/asgi/test_cythonized_asgi.py::test_jsonchema_validator PASSED      [  8%]
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-<lambda>] PASSED [  8%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/bytes-resource1-<lambda>] PASSED [  8%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/data-resource2-<lambda>] 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 [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_closing_aiofiles PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_using_helper PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[10-3-3\n3\n3\n1\n-None] PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[10-7-7\n3\n-None] PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[10-17-10\n-None] PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_closing_stream[20-0--ZeroDivisionError] PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_status_not_set PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_coroutine_required PASSED [  9%]
tests/asgi/test_hello_asgi.py::TestHelloWorld::test_noncoroutine_required PASSED [  9%]
tests/asgi/test_lifespan_handlers.py::test_at_least_one_event_method_required PASSED [  9%]
tests/asgi/test_lifespan_handlers.py::test_startup_only PASSED           [  9%]
tests/asgi/test_lifespan_handlers.py::test_startup_raises PASSED         [  9%]
tests/asgi/test_lifespan_handlers.py::test_shutdown_raises PASSED        [  9%]
tests/asgi/test_lifespan_handlers.py::test_shutdown_only PASSED          [  9%]
tests/asgi/test_lifespan_handlers.py::test_multiple_handlers PASSED      [  9%]
tests/asgi/test_lifespan_handlers.py::test_asgi_conductor_raised_error_skips_shutdown PASSED [  9%]
tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware0] PASSED [  9%]
tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware1] PASSED [  9%]
tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware2] PASSED [  9%]
tests/asgi/test_middleware_asgi.py::test_raise_on_incompatible[middleware3] PASSED [  9%]
tests/asgi/test_misc.py::test_http_status_not_impl PASSED                [  9%]
tests/asgi/test_misc.py::test_http_error_not_impl PASSED                 [  9%]
tests/asgi/test_misc.py::test_python_error_not_impl PASSED               [  9%]
tests/asgi/test_request_asgi.py::test_missing_server_in_scope PASSED     [  9%]
tests/asgi/test_request_asgi.py::test_log_error_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 [ 10%]
tests/asgi/test_request_body_asgi.py::TestRequestBody::test_bounded_stream_alias PASSED [ 10%]
tests/asgi/test_request_body_asgi.py::TestRequestBody::test_request_repr PASSED [ 10%]
tests/asgi/test_request_context_asgi.py::TestRequestContext::test_default_request_context PASSED [ 10%]
tests/asgi/test_request_context_asgi.py::TestRequestContext::test_custom_request_context PASSED [ 10%]
tests/asgi/test_request_context_asgi.py::TestRequestContext::test_custom_request_context_failure PASSED [ 10%]
tests/asgi/test_request_context_asgi.py::TestRequestContext::test_custom_request_context_request_access PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_json[*/*] PASSED            [ 10%]
tests/asgi/test_response_media_asgi.py::test_json[application/json] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_json[application/json; charset=utf-8] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[I am a \u1d0a\ua731\u1d0f\u0274 string.] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[document2] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[document3] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_non_ascii_json_serialization[document4] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_msgpack[application/msgpack] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_msgpack[application/msgpack; charset=utf-8] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_msgpack[application/x-msgpack] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_custom_media_handler PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_unknown_media_type PASSED   [ 10%]
tests/asgi/test_response_media_asgi.py::test_default_media_type PASSED   [ 10%]
tests/asgi/test_response_media_asgi.py::test_mimeparse_edgecases[True] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_mimeparse_edgecases[False] PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_text PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_body PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_data PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_data_masquerading_as_text PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::TestRenderBodyPrecedence::test_media PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_media_rendered_cached PASSED [ 10%]
tests/asgi/test_response_media_asgi.py::test_custom_render_body PASSED   [ 10%]
tests/asgi/test_scheduled_callbacks.py::test_multiple PASSED             [ 10%]
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               [ 11%]
tests/asgi/test_scope.py::test_unsupported_http_version[0.9] PASSED      [ 11%]
tests/asgi/test_scope.py::test_unsupported_http_version[1.9] PASSED      [ 11%]
tests/asgi/test_scope.py::test_unsupported_http_version[4.0] PASSED      [ 11%]
tests/asgi/test_scope.py::test_unsupported_http_version[1337] PASSED     [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[3.0-True] PASSED   [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[3.1-True] PASSED   [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[3.10-True] PASSED  [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[30.0-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[31.0-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[4.0-False] PASSED  [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[4.1-False] PASSED  [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[4.10-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[40.0-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[41.0-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[2.0-False] PASSED  [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[2.1-False] PASSED  [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[2.10-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_supported_asgi_version[None-False] PASSED [ 11%]
tests/asgi/test_scope.py::test_unsupported_scope_type[tubes] PASSED      [ 11%]
tests/asgi/test_scope.py::test_unsupported_scope_type[http3] PASSED      [ 11%]
tests/asgi/test_scope.py::test_unsupported_scope_type[htt] PASSED        [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[0.0-False] PASSED     [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[1.0-False] PASSED     [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[11.0-False] PASSED    [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[2.0-True] PASSED      [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[2.1-True] PASSED      [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[2.10-True] PASSED     [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[20.0-False] PASSED    [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[22.0-False] PASSED    [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[3.0-False] PASSED     [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[3.1-False] PASSED     [ 11%]
tests/asgi/test_scope.py::test_supported_http_spec[30.0-False] PASSED    [ 11%]
tests/asgi/test_scope.py::test_lifespan_scope_default_version PASSED     [ 11%]
tests/asgi/test_scope.py::test_lifespan_scope_version[0.0-False] PASSED  [ 11%]
tests/asgi/test_scope.py::test_lifespan_scope_version[1.0-True] PASSED   [ 11%]
tests/asgi/test_scope.py::test_lifespan_scope_version[1.1-True] PASSED   [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[1.10-True] PASSED  [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[2.0-True] PASSED   [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[2.1-True] PASSED   [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[2.10-True] PASSED  [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[3.0-False] PASSED  [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[4.0-False] PASSED  [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[11.0-False] PASSED [ 12%]
tests/asgi/test_scope.py::test_lifespan_scope_version[22.0-False] PASSED [ 12%]
tests/asgi/test_scope.py::test_query_string_values PASSED                [ 12%]
tests/asgi/test_scope.py::test_scheme[http-True] PASSED                  [ 12%]
tests/asgi/test_scope.py::test_scheme[https-True] PASSED                 [ 12%]
tests/asgi/test_scope.py::test_scheme[htt-False] PASSED                  [ 12%]
tests/asgi/test_scope.py::test_scheme[http:-False] PASSED                [ 12%]
tests/asgi/test_scope.py::test_scheme[https:-False] PASSED               [ 12%]
tests/asgi/test_scope.py::test_scheme[ftp-False] PASSED                  [ 12%]
tests/asgi/test_scope.py::test_scheme[gopher-False] PASSED               [ 12%]
tests/asgi/test_scope.py::test_cookies[cookies0] PASSED                  [ 12%]
tests/asgi/test_scope.py::test_cookies[cookies1] PASSED                  [ 12%]
tests/asgi/test_scope.py::test_cookies_options_meathod PASSED            [ 12%]
tests/asgi/test_sse.py::test_no_events PASSED                            [ 12%]
tests/asgi/test_sse.py::test_single_event PASSED                         [ 12%]
tests/asgi/test_sse.py::test_multiple_events PASSED                      [ 12%]
tests/asgi/test_sse.py::test_multiple_events_early_disconnect PASSED     [ 12%]
tests/asgi/test_sse.py::TestSerializeJson::test_use_media_handler_dumps PASSED [ 12%]
tests/asgi/test_sse.py::TestSerializeJson::test_no_json_media_handler PASSED [ 12%]
tests/asgi/test_sse.py::test_invalid_event_values PASSED                 [ 12%]
tests/asgi/test_sse.py::test_non_iterable PASSED                         [ 12%]
tests/asgi/test_sync.py::test_sync_helpers PASSED                        [ 12%]
tests/asgi/test_testing_asgi.py::test_asgi_request_event_emitter_hang PASSED [ 12%]
tests/asgi/test_testing_asgi.py::test_ignore_extra_asgi_events PASSED    [ 12%]
tests/asgi/test_testing_asgi.py::test_invalid_asgi_events PASSED         [ 12%]
tests/asgi/test_testing_asgi.py::test_is_asgi_app_cls PASSED             [ 12%]
tests/asgi/test_testing_asgi.py::test_cookies_jar PASSED                 [ 12%]
tests/asgi/test_testing_asgi.py::test_create_scope_default_ua PASSED     [ 12%]
tests/asgi/test_testing_asgi.py::test_create_scope_default_ua_override PASSED [ 13%]
tests/asgi/test_testing_asgi.py::test_create_scope_default_ua_modify_global PASSED [ 13%]
tests/asgi/test_testing_asgi.py::test_missing_header_is_none PASSED      [ 13%]
tests/asgi/test_testing_asgi.py::test_immediate_disconnect PASSED        [ 13%]
tests/asgi/test_ws.py::test_ws_not_accepted[/ws/yes] PASSED              [ 13%]
tests/asgi/test_ws.py::test_ws_not_accepted[/ws/no] PASSED               [ 13%]
tests/asgi/test_ws.py::test_echo PASSED                                  [ 13%]
tests/asgi/test_ws.py::test_path_not_found PASSED                        [ 13%]
tests/asgi/test_ws.py::test_responder_raises_unhandled_error[True] PASSED [ 13%]
tests/asgi/test_ws.py::test_responder_raises_unhandled_error[False] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[True-True-send] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[True-True-receive] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[True-False-send] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[True-False-receive] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[False-True-send] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[False-True-receive] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[False-False-send] PASSED [ 13%]
tests/asgi/test_ws.py::test_client_disconnect_early[False-False-receive] PASSED [ 13%]
tests/asgi/test_ws.py::test_media[True-True] PASSED                      [ 13%]
tests/asgi/test_ws.py::test_media[True-False] PASSED                     [ 13%]
tests/asgi/test_ws.py::test_media[False-True] PASSED                     [ 13%]
tests/asgi/test_ws.py::test_media[False-False] PASSED                    [ 13%]
tests/asgi/test_ws.py::test_send_receive_data[123] PASSED                [ 13%]
tests/asgi/test_ws.py::test_send_receive_data[] PASSED                   [ 13%]
tests/asgi/test_ws.py::test_send_receive_data[\xe1\x9a\xa0\xe1] PASSED   [ 13%]
tests/asgi/test_ws.py::test_send_receive_data[\x00] PASSED               [ 13%]
tests/asgi/test_ws.py::test_subprotocol[subprotocols0] PASSED            [ 13%]
tests/asgi/test_ws.py::test_subprotocol[subprotocols1] PASSED            [ 13%]
tests/asgi/test_ws.py::test_subprotocol[subprotocols2] PASSED            [ 13%]
tests/asgi/test_ws.py::test_subprotocol[None] PASSED                     [ 13%]
tests/asgi/test_ws.py::test_accept_with_headers[None] PASSED             [ 13%]
tests/asgi/test_ws.py::test_accept_with_headers[headers1] PASSED         [ 13%]
tests/asgi/test_ws.py::test_accept_with_headers[headers2] PASSED         [ 13%]
tests/asgi/test_ws.py::test_accept_with_headers[headers3] PASSED         [ 13%]
tests/asgi/test_ws.py::test_accept_with_headers[headers4] PASSED         [ 13%]
tests/asgi/test_ws.py::test_accept_with_headers[headers5] PASSED         [ 14%]
tests/asgi/test_ws.py::test_accept_with_headers[headers6] PASSED         [ 14%]
tests/asgi/test_ws.py::test_accept_with_bad_headers[headers0] PASSED     [ 14%]
tests/asgi/test_ws.py::test_accept_with_bad_headers[headers1] PASSED     [ 14%]
tests/asgi/test_ws.py::test_accept_with_bad_headers[headers2] PASSED     [ 14%]
tests/asgi/test_ws.py::test_accept_with_headers_not_supported PASSED     [ 14%]
tests/asgi/test_ws.py::test_missing_ws_handler PASSED                    [ 14%]
tests/asgi/test_ws.py::test_unexpected_param PASSED                      [ 14%]
tests/asgi/test_ws.py::test_subprotocol_bad_type[DEADBEEF] PASSED        [ 14%]
tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol1] PASSED    [ 14%]
tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol2] PASSED    [ 14%]
tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol3] PASSED    [ 14%]
tests/asgi/test_ws.py::test_subprotocol_bad_type[subprotocol4] PASSED    [ 14%]
tests/asgi/test_ws.py::test_subprotocol_bad_type[OK] PASSED              [ 14%]
tests/asgi/test_ws.py::test_send_receive_wrong_type PASSED               [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[999] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[100] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[0] PASSED   [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[-1] PASSED  [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1004] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1005] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1006] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1015] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1016] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1017] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1050] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[1099] PASSED [ 14%]
tests/asgi/test_ws.py::test_client_disconnect_uncaught_error[NaN] PASSED [ 14%]
tests/asgi/test_ws.py::test_mw_methods_must_be_coroutines PASSED         [ 14%]
tests/asgi/test_ws.py::test_bad_spec_version[1.9] PASSED                 [ 14%]
tests/asgi/test_ws.py::test_bad_spec_version[20.5] PASSED                [ 14%]
tests/asgi/test_ws.py::test_bad_spec_version[3.0] PASSED                 [ 14%]
tests/asgi/test_ws.py::test_bad_spec_version[3.1] PASSED                 [ 14%]
tests/asgi/test_ws.py::test_bad_http_version[1.0] PASSED                 [ 14%]
tests/asgi/test_ws.py::test_bad_http_version[1] PASSED                   [ 14%]
tests/asgi/test_ws.py::test_bad_first_event PASSED                       [ 15%]
tests/asgi/test_ws.py::test_missing_http_version PASSED                  [ 15%]
tests/asgi/test_ws.py::test_missing_spec_version PASSED                  [ 15%]
tests/asgi/test_ws.py::test_translate_webserver_error PASSED             [ 15%]
tests/asgi/test_ws.py::test_ws_base_not_implemented PASSED               [ 15%]
tests/asgi/test_ws.py::test_ws_context_timeout PASSED                    [ 15%]
tests/asgi/test_ws.py::test_ws_simulator_client_require_accepted PASSED  [ 15%]
tests/asgi/test_ws.py::test_ws_simulator_collect_edge_cases PASSED       [ 15%]
tests/asgi/test_ws.py::test_msgpack_missing SKIPPED (test requires
msgpack lib to be missing)                                               [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-200] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-500] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-422] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPStatus-400] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-200] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-500] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-422] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[True-HTTPError-400] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-200] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-500] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-422] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPStatus-400] PASSED [ 15%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_response[False-HTTPError-200] PASSED [ 15%]
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 [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-500] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-422] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_middleware[resource-HTTPError-400] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-500] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-422] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPStatus-400] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-500] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-422] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-request-HTTPError-400] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-500] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-422] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPStatus-400] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-500] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-422] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-resource-HTTPError-400] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-500] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-422] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPStatus-400] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPError-200] PASSED [ 16%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_before_accept-HTTPError-500] PASSED [ 16%]
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 [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[True-ws_after_accept-HTTPError-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPStatus-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-request-HTTPError-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPStatus-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-resource-HTTPError-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPStatus-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_before_accept-HTTPError-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-500] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-422] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPStatus-400] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPError-200] PASSED [ 17%]
tests/asgi/test_ws.py::test_ws_http_error_or_status_error_handler[False-ws_after_accept-HTTPError-500] PASSED [ 17%]
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/test_after_hooks.py::test_output_validator[asgi] PASSED            [ 17%]
tests/test_after_hooks.py::test_output_validator[wsgi] PASSED            [ 18%]
tests/test_after_hooks.py::test_serializer[asgi] PASSED                  [ 18%]
tests/test_after_hooks.py::test_serializer[wsgi] PASSED                  [ 18%]
tests/test_after_hooks.py::test_hook_as_callable_class[asgi] PASSED      [ 18%]
tests/test_after_hooks.py::test_hook_as_callable_class[wsgi] PASSED      [ 18%]
tests/test_after_hooks.py::test_resource_with_uri_fields[asgi-resource0] PASSED [ 18%]
tests/test_after_hooks.py::test_resource_with_uri_fields[asgi-resource1] PASSED [ 18%]
tests/test_after_hooks.py::test_resource_with_uri_fields[wsgi-resource0] PASSED [ 18%]
tests/test_after_hooks.py::test_resource_with_uri_fields[wsgi-resource1] PASSED [ 18%]
tests/test_after_hooks.py::test_resource_with_uri_fields_async PASSED    [ 18%]
tests/test_after_hooks.py::test_wrapped_resource[asgi-resource0] PASSED  [ 18%]
tests/test_after_hooks.py::test_wrapped_resource[asgi-resource1] PASSED  [ 18%]
tests/test_after_hooks.py::test_wrapped_resource[wsgi-resource0] PASSED  [ 18%]
tests/test_after_hooks.py::test_wrapped_resource[wsgi-resource1] PASSED  [ 18%]
tests/test_after_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[asgi] PASSED [ 18%]
tests/test_after_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[wsgi] PASSED [ 18%]
tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[paper-/once-paper, rock, scissors] PASSED [ 18%]
tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[scissors-/twice-scissors, paper, rock, scissors] PASSED [ 18%]
tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[rock-/thrice-rock, scissors, paper, rock, scissors] PASSED [ 18%]
tests/test_after_hooks.py::test_after_hooks_on_suffixed_resource[paper-/thrice-paper, rock, scissors, paper, rock] PASSED [ 18%]
tests/test_alias.py::test_cookies PASSED                                 [ 18%]
tests/test_alias.py::test_alias_equals_to_app PASSED                     [ 18%]
tests/test_app_initializers.py::test_api_media_type_overriding[App] PASSED [ 18%]
tests/test_app_initializers.py::test_api_media_type_overriding[API] PASSED [ 18%]
tests/test_before_hooks.py::test_multiple_resource_hooks[asgi-resource0] PASSED [ 18%]
tests/test_before_hooks.py::test_multiple_resource_hooks[asgi-resource1] PASSED [ 18%]
tests/test_before_hooks.py::test_multiple_resource_hooks[wsgi-resource0] PASSED [ 18%]
tests/test_before_hooks.py::test_multiple_resource_hooks[wsgi-resource1] PASSED [ 18%]
tests/test_before_hooks.py::test_input_validator[asgi] PASSED            [ 18%]
tests/test_before_hooks.py::test_input_validator[wsgi] PASSED            [ 18%]
tests/test_before_hooks.py::test_input_validator_inherited[asgi] PASSED  [ 18%]
tests/test_before_hooks.py::test_input_validator_inherited[wsgi] PASSED  [ 18%]
tests/test_before_hooks.py::test_param_validator[asgi] PASSED            [ 18%]
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  [ 19%]
tests/test_before_hooks.py::test_field_validator[asgi-resource2] PASSED  [ 19%]
tests/test_before_hooks.py::test_field_validator[wsgi-resource0] PASSED  [ 19%]
tests/test_before_hooks.py::test_field_validator[wsgi-resource1] PASSED  [ 19%]
tests/test_before_hooks.py::test_field_validator[wsgi-resource2] PASSED  [ 19%]
tests/test_before_hooks.py::test_parser_sync[{"animal": "falcon"}-doc0] PASSED [ 19%]
tests/test_before_hooks.py::test_parser_sync[{}-doc1] PASSED             [ 19%]
tests/test_before_hooks.py::test_parser_sync[-None] PASSED               [ 19%]
tests/test_before_hooks.py::test_parser_sync[None-None] PASSED           [ 19%]
tests/test_before_hooks.py::test_parser_async[{"animal": "falcon"}-doc0] PASSED [ 19%]
tests/test_before_hooks.py::test_parser_async[{}-doc1] PASSED            [ 19%]
tests/test_before_hooks.py::test_parser_async[-None] PASSED              [ 19%]
tests/test_before_hooks.py::test_parser_async[None-None] PASSED          [ 19%]
tests/test_before_hooks.py::test_wrapped_resource[asgi] PASSED           [ 19%]
tests/test_before_hooks.py::test_wrapped_resource[wsgi] PASSED           [ 19%]
tests/test_before_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[asgi] PASSED [ 19%]
tests/test_before_hooks.py::test_wrapped_resource_with_hooks_aware_of_resource[wsgi] PASSED [ 19%]
tests/test_before_hooks.py::test_piggybacking_resource_post_item[True] PASSED [ 19%]
tests/test_before_hooks.py::test_piggybacking_resource_post_item[False] PASSED [ 19%]
tests/test_before_hooks.py::test_piggybacking_resource_post_and_delete[True] PASSED [ 19%]
tests/test_before_hooks.py::test_piggybacking_resource_post_and_delete[False] PASSED [ 19%]
tests/test_before_hooks.py::test_decorable_name_pattern PASSED           [ 19%]
tests/test_boundedstream.py::test_not_writable PASSED                    [ 19%]
tests/test_buffered_reader.py::test_peek PASSED                          [ 19%]
tests/test_buffered_reader.py::test_peek_eof PASSED                      [ 19%]
tests/test_buffered_reader.py::test_bounded_read PASSED                  [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[0] PASSED           [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[1] PASSED           [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[2] PASSED           [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[7] PASSED           [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[62] PASSED          [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[63] PASSED          [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[64] PASSED          [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[65] PASSED          [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[126] PASSED         [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[127] PASSED         [ 19%]
tests/test_buffered_reader.py::test_read_from_buffer[128] PASSED         [ 20%]
tests/test_buffered_reader.py::test_read_from_buffer[129] PASSED         [ 20%]
tests/test_buffered_reader.py::test_read_from_buffer[1000] PASSED        [ 20%]
tests/test_buffered_reader.py::test_read_from_buffer[10000] PASSED       [ 20%]
tests/test_buffered_reader.py::test_read_until_delimiter_size_check PASSED [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[0] PASSED       [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[1] PASSED       [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[2] PASSED       [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[7] PASSED       [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[62] PASSED      [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[63] PASSED      [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[64] PASSED      [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[65] PASSED      [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[126] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[127] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[128] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[129] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[1000] PASSED    [ 20%]
tests/test_buffered_reader.py::test_read_until_with_size[10000] PASSED   [ 20%]
tests/test_buffered_reader.py::test_read_until PASSED                    [ 20%]
tests/test_buffered_reader.py::test_irregular_large_read_until[11003077-22000721] PASSED [ 20%]
tests/test_buffered_reader.py::test_irregular_large_read_until[13372477-51637898] PASSED [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[0] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[1] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[2] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[7] PASSED     [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[62] PASSED    [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[63] PASSED    [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[64] PASSED    [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[65] PASSED    [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[126] PASSED   [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[127] PASSED   [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[128] PASSED   [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[129] PASSED   [ 20%]
tests/test_buffered_reader.py::test_read_until_from_buffer[1000] PASSED  [ 20%]
tests/test_buffered_reader.py::test_read_until_missing_delimiter PASSED  [ 21%]
tests/test_buffered_reader.py::test_consume_delimiter PASSED             [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[46] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[47] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[48] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[49] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[50] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[51] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[52] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[53] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[54] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[55] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[56] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[57] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[58] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[59] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[60] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[61] PASSED [ 21%]
tests/test_buffered_reader.py::test_read_until_shared_boundary[62] PASSED [ 21%]
tests/test_buffered_reader.py::test_pipe PASSED                          [ 21%]
tests/test_buffered_reader.py::test_pipe_until PASSED                    [ 21%]
tests/test_buffered_reader.py::test_pipe_until_without_destination PASSED [ 21%]
tests/test_buffered_reader.py::test_exhaust PASSED                       [ 21%]
tests/test_buffered_reader.py::test_readline PASSED                      [ 21%]
tests/test_buffered_reader.py::test_readline_with_size PASSED            [ 21%]
tests/test_buffered_reader.py::test_readlines PASSED                     [ 21%]
tests/test_buffered_reader.py::test_readlines_hint[8] PASSED             [ 21%]
tests/test_buffered_reader.py::test_readlines_hint[16] PASSED            [ 21%]
tests/test_buffered_reader.py::test_readlines_hint[256] PASSED           [ 21%]
tests/test_buffered_reader.py::test_readlines_hint[1024] PASSED          [ 21%]
tests/test_buffered_reader.py::test_readlines_hint[65536] PASSED         [ 21%]
tests/test_buffered_reader.py::test_duck_compatibility_with_io_base PASSED [ 21%]
tests/test_buffered_reader.py::test_fragmented_reads PASSED              [ 21%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args0-exp0] PASSED [ 21%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args1-exp1] PASSED [ 21%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args2-exp2] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args3-exp3] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args4-exp4] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args5-exp5] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args6-exp6] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser[args7-exp7] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMakeParser::test_make_parser_error PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app[_APP] PASSED   [ 22%]
tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app[make_app] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_error[foo] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_error[_MODULE] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_error[DummyResource] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestLoadApp::test_load_app_module_error PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_routes_only[internal-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_routes_only[internal-not-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_routes_only[not-internal-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_routes_only[not-internal-not-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_inspect[internal-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_inspect[internal-not-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_inspect[not-internal-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::TestMain::test_inspect[not-internal-not-verbose] PASSED [ 22%]
tests/test_cmd_inspect_app.py::test_route_main PASSED                    [ 22%]
tests/test_compiled_router.py::test_find_src PASSED                      [ 22%]
tests/test_compiled_router.py::test_no_compile_kw[kwargs0] PASSED        [ 22%]
tests/test_compiled_router.py::test_no_compile_kw[kwargs1] PASSED        [ 22%]
tests/test_compiled_router.py::test_no_compile_kw[kwargs2] PASSED        [ 22%]
tests/test_compiled_router.py::test_no_compile_kw[kwargs3] PASSED        [ 22%]
tests/test_compiled_router.py::test_compile PASSED                       [ 22%]
tests/test_compiled_router.py::test_add_route_after_first_request PASSED [ 22%]
tests/test_compiled_router.py::test_multithread_compile PASSED           [ 22%]
tests/test_cookies.py::test_response_base_case[asgi] PASSED              [ 22%]
tests/test_cookies.py::test_response_base_case[wsgi] PASSED              [ 22%]
tests/test_cookies.py::test_response_disable_secure_globally[asgi] PASSED [ 22%]
tests/test_cookies.py::test_response_disable_secure_globally[wsgi] PASSED [ 22%]
tests/test_cookies.py::test_response_complex_case[asgi] PASSED           [ 22%]
tests/test_cookies.py::test_response_complex_case[wsgi] PASSED           [ 23%]
tests/test_cookies.py::test_unset_cookies[asgi] PASSED                   [ 23%]
tests/test_cookies.py::test_unset_cookies[wsgi] PASSED                   [ 23%]
tests/test_cookies.py::test_cookie_expires_naive[asgi] PASSED            [ 23%]
tests/test_cookies.py::test_cookie_expires_naive[wsgi] PASSED            [ 23%]
tests/test_cookies.py::test_cookie_expires_aware[asgi] PASSED            [ 23%]
tests/test_cookies.py::test_cookie_expires_aware[wsgi] PASSED            [ 23%]
tests/test_cookies.py::test_cookies_setable[asgi] PASSED                 [ 23%]
tests/test_cookies.py::test_cookies_setable[wsgi] PASSED                 [ 23%]
tests/test_cookies.py::test_cookie_max_age_float_and_string[asgi-foofloat] PASSED [ 23%]
tests/test_cookies.py::test_cookie_max_age_float_and_string[asgi-foostring] PASSED [ 23%]
tests/test_cookies.py::test_cookie_max_age_float_and_string[wsgi-foofloat] PASSED [ 23%]
tests/test_cookies.py::test_cookie_max_age_float_and_string[wsgi-foostring] PASSED [ 23%]
tests/test_cookies.py::test_response_unset_cookie[asgi] PASSED           [ 23%]
tests/test_cookies.py::test_response_unset_cookie[wsgi] PASSED           [ 23%]
tests/test_cookies.py::test_cookie_timezone[asgi] PASSED                 [ 23%]
tests/test_cookies.py::test_cookie_timezone[wsgi] PASSED                 [ 23%]
tests/test_cookies.py::test_request_cookie_parsing PASSED                [ 23%]
tests/test_cookies.py::test_invalid_cookies_are_ignored PASSED           [ 23%]
tests/test_cookies.py::test_duplicate_cookie PASSED                      [ 23%]
tests/test_cookies.py::test_cookie_header_is_missing PASSED              [ 23%]
tests/test_cookies.py::test_unicode_inside_ascii_range PASSED            [ 23%]
tests/test_cookies.py::test_non_ascii_name[Unicode_\xc3\xa6\xc3\xb8] PASSED [ 23%]
tests/test_cookies.py::test_non_ascii_name[Unicode_\xc3\x83\xc2\xa6\xc3\x83\xc2\xb8] PASSED [ 23%]
tests/test_cookies.py::test_non_ascii_name[42] PASSED                    [ 23%]
tests/test_cookies.py::test_non_ascii_value[Unicode_\xc3\xa6\xc3\xb8] PASSED [ 23%]
tests/test_cookies.py::test_non_ascii_value[Unicode_\xc3\x83\xc2\xa6\xc3\x83\xc2\xb8] PASSED [ 23%]
tests/test_cookies.py::test_non_ascii_value[42] PASSED                   [ 23%]
tests/test_cookies.py::test_lax_same_site_value[asgi] PASSED             [ 23%]
tests/test_cookies.py::test_lax_same_site_value[wsgi] PASSED             [ 23%]
tests/test_cookies.py::test_strict_same_site_value[asgi] PASSED          [ 23%]
tests/test_cookies.py::test_strict_same_site_value[wsgi] PASSED          [ 23%]
tests/test_cookies.py::test_none_same_site_value[asgi] PASSED            [ 23%]
tests/test_cookies.py::test_none_same_site_value[wsgi] PASSED            [ 23%]
tests/test_cookies.py::test_same_site_empty_string[asgi] PASSED          [ 23%]
tests/test_cookies.py::test_same_site_empty_string[wsgi] PASSED          [ 23%]
tests/test_cookies.py::test_same_site_value_case_insensitive[laX] PASSED [ 24%]
tests/test_cookies.py::test_same_site_value_case_insensitive[lax] PASSED [ 24%]
tests/test_cookies.py::test_same_site_value_case_insensitive[STRICT] PASSED [ 24%]
tests/test_cookies.py::test_same_site_value_case_insensitive[strict] PASSED [ 24%]
tests/test_cookies.py::test_same_site_value_case_insensitive[None] PASSED [ 24%]
tests/test_cookies.py::test_same_site_value_case_insensitive[none] PASSED [ 24%]
tests/test_cookies.py::test_invalid_same_site_value[bogus] PASSED        [ 24%]
tests/test_cookies.py::test_invalid_same_site_value[laxx] PASSED         [ 24%]
tests/test_cookies.py::test_invalid_same_site_value[stric] PASSED        [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_disabled_cors_should_not_add_any_extra_headers[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_disabled_cors_should_not_add_any_extra_headers[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_no_origin[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_no_origin[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_add_extra_headers_on_response[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_add_extra_headers_on_response[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_accept_all_origins_requests[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_should_accept_all_origins_requests[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting_no_headers_in_req[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCorsMiddleware::test_enabled_cors_handles_preflighting_no_headers_in_req[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_raises PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[asgi-*-fail_origins0-success_origins0] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[asgi-test-fail_origins1-success_origins1] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[asgi-allow2-fail_origins2-success_origins2] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[wsgi-*-fail_origins0-success_origins0] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[wsgi-test-fail_origins1-success_origins1] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin[wsgi-allow2-fail_origins2-success_origins2] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_wildcard[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_wildcard[wsgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[asgi-allow0-successOrigin0] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[asgi-foo-successOrigin1] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[wsgi-allow0-successOrigin0] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_list_or_str[wsgi-foo-successOrigin1] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_existing_origin[asgi] PASSED [ 24%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_credential_existing_origin[wsgi] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin_allow_credential[asgi] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_allow_origin_allow_credential[wsgi] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[asgi-foo-foo] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[asgi-foo, bar-foo, bar] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[asgi-attr2-foo, bar] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[wsgi-foo-foo] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[wsgi-foo, bar-foo, bar] PASSED [ 25%]
tests/test_cors_middleware.py::TestCustomCorsMiddleware::test_expose_headers[wsgi-attr2-foo, bar] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_add_route_should_be_used[True] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_add_route_should_be_used[False] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_find_should_be_used[True] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_find_should_be_used[False] PASSED [ 25%]
tests/test_custom_router.py::test_can_pass_additional_params_to_add_route[True] PASSED [ 25%]
tests/test_custom_router.py::test_can_pass_additional_params_to_add_route[False] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_takes_req_positional_argument[True] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_takes_req_positional_argument[False] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_takes_req_keyword_argument[True] PASSED [ 25%]
tests/test_custom_router.py::test_custom_router_takes_req_keyword_argument[False] PASSED [ 25%]
tests/test_cython.py::TestCythonized::test_imported_from_c_modules PASSED [ 25%]
tests/test_cython.py::TestCythonized::test_stream_has_private_read PASSED [ 25%]
tests/test_default_router.py::test_user_regression_versioned_url PASSED  [ 25%]
tests/test_default_router.py::test_user_regression_recipes PASSED        [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People|{field}-/serviceRoot/People|susie-expected_params0] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People[{field}]-/serviceRoot/People['calvin']-expected_params1] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People({field})-/serviceRoot/People('hobbes')-expected_params2] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People({field})-/serviceRoot/People('hob)bes')-expected_params3] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People({field})(z)-/serviceRoot/People(hobbes)(z)-expected_params4] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/serviceRoot/People('{field}')-/serviceRoot/People('rosalyn')-expected_params5] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/^{field}-/^42-expected_params6] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/+{field}-/+42-expected_params7] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/foo/{first}_{second}/bar-/foo/abc_def_ghijk/bar-expected_params8] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/items/{x}?{y}-/items/1080?768-expected_params9] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/items/{x}|{y}-/items/1080|768-expected_params10] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/items/{x},{y}-/items/1080,768-expected_params11] PASSED [ 25%]
tests/test_default_router.py::test_user_regression_special_chars[/items/{x}^^{y}-/items/1080^^768-expected_params12] PASSED [ 26%]
tests/test_default_router.py::test_user_regression_special_chars[/items/{x}*{y}*-/items/1080*768*-expected_params13] PASSED [ 26%]
tests/test_default_router.py::test_user_regression_special_chars[/thing-2/something+{field}+-/thing-2/something+42+-expected_params14] PASSED [ 26%]
tests/test_default_router.py::test_user_regression_special_chars[/thing-2/something*{field}/notes-/thing-2/something*42/notes-expected_params15] PASSED [ 26%]
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 [ 26%]
tests/test_default_router.py::test_user_regression_special_chars[serviceRoot/$metadata#Airports('{field}')/Name-serviceRoot/$metadata#Airports('KSFO')/Name-expected_params17] PASSED [ 26%]
tests/test_default_router.py::test_not_str[uri_template0-True] PASSED    [ 26%]
tests/test_default_router.py::test_not_str[uri_template0-False] PASSED   [ 26%]
tests/test_default_router.py::test_not_str[uri_template1-True] PASSED    [ 26%]
tests/test_default_router.py::test_not_str[uri_template1-False] PASSED   [ 26%]
tests/test_default_router.py::test_not_str[uri_template2-True] PASSED    [ 26%]
tests/test_default_router.py::test_not_str[uri_template2-False] PASSED   [ 26%]
tests/test_default_router.py::test_root_path PASSED                      [ 26%]
tests/test_default_router.py::test_duplicate_field_names[/{field}{field}] PASSED [ 26%]
tests/test_default_router.py::test_duplicate_field_names[/{field}...{field}] PASSED [ 26%]
tests/test_default_router.py::test_duplicate_field_names[/{field}/{another}/{field}] PASSED [ 26%]
tests/test_default_router.py::test_duplicate_field_names[/{field}/something/something/{field}/something] PASSED [ 26%]
tests/test_default_router.py::test_match_entire_path[/items/thing-/items/t] PASSED [ 26%]
tests/test_default_router.py::test_match_entire_path[/items/{x}|{y}|-/items/1080|768] PASSED [ 26%]
tests/test_default_router.py::test_match_entire_path[/items/{x}*{y}foo-/items/1080*768foobar] PASSED [ 26%]
tests/test_default_router.py::test_match_entire_path[/items/{x}*768*-/items/1080*768***] PASSED [ 26%]
tests/test_default_router.py::test_conflict[/teams/{conflict}] PASSED    [ 26%]
tests/test_default_router.py::test_conflict[/emojis/signs/{id_too}] PASSED [ 26%]
tests/test_default_router.py::test_conflict[/repos/{org}/{repo}/compare/{complex}:{vs}...{complex2}:{conflict}] PASSED [ 26%]
tests/test_default_router.py::test_conflict[/teams/{id:int}/settings] PASSED [ 26%]
tests/test_default_router.py::test_non_conflict[/repos/{org}/{repo}/compare/{simple_vs_complex}] PASSED [ 26%]
tests/test_default_router.py::test_non_conflict[/repos/{complex}.{vs}.{simple}] PASSED [ 26%]
tests/test_default_router.py::test_non_conflict[/repos/{org}/{repo}/compare/{complex}:{vs}...{complex2}/full] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/{}] PASSED        [ 26%]
tests/test_default_router.py::test_invalid_field_name[/repos/{org}/{repo}/compare/{}] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{}.{thing}] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/{9v}] PASSED      [ 26%]
tests/test_default_router.py::test_invalid_field_name[/{524hello}/world] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/hello/{1world}] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{9v}.{thing}/etc] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/{*kgriffs}] PASSED [ 26%]
tests/test_default_router.py::test_invalid_field_name[/{@kgriffs}] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{v}.{@thing}/etc] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{-kgriffs}] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/repos/{complex}.{-v}.{thing}/etc] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/repos/{simple-thing}/etc] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/this and that] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/this\tand\tthat/this\nand\nthat/{thing }/world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{thing\t}/world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{\nthing}/world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{th\x0bing}/world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{ thing}/world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{ thing }/world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{thing}/wo rld] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/{thing} /world] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/repos/{or g}/{repo}/compare/{thing}] PASSED [ 27%]
tests/test_default_router.py::test_invalid_field_name[/repos/{org}/{repo}/compare/{th\ting}] PASSED [ 27%]
tests/test_default_router.py::test_print_src PASSED                      [ 27%]
tests/test_default_router.py::test_override PASSED                       [ 27%]
tests/test_default_router.py::test_literal_segment PASSED                [ 27%]
tests/test_default_router.py::test_dead_segment[/teams] PASSED           [ 27%]
tests/test_default_router.py::test_dead_segment[/emojis/signs] PASSED    [ 27%]
tests/test_default_router.py::test_dead_segment[/gists] PASSED           [ 27%]
tests/test_default_router.py::test_dead_segment[/gists/42] PASSED        [ 27%]
tests/test_default_router.py::test_malformed_pattern[/repos/racker/falcon/compare/foo] PASSED [ 27%]
tests/test_default_router.py::test_malformed_pattern[/repos/racker/falcon/compare/foo/full] PASSED [ 27%]
tests/test_default_router.py::test_literal PASSED                        [ 27%]
tests/test_default_router.py::test_converters[/cvt/teams/007-expected_params0] PASSED [ 27%]
tests/test_default_router.py::test_converters[/cvt/teams/1234/members-expected_params1] PASSED [ 27%]
tests/test_default_router.py::test_converters[/cvt/teams/default/members/700-5-expected_params2] PASSED [ 27%]
tests/test_default_router.py::test_converters[/cvt/repos/org/repo/compare/xkcd:353-expected_params3] PASSED [ 27%]
tests/test_default_router.py::test_converters[/cvt/repos/org/repo/compare/gunmachan:1234...kumamon:5678/part-expected_params4] PASSED [ 27%]
tests/test_default_router.py::test_converters[/cvt/repos/xkcd/353/compare/susan:0001/full-expected_params5] PASSED [ 27%]
tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(0)}] PASSED [ 27%]
tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(num_digits=0)}] PASSED [ 27%]
tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(-1)}/baz] PASSED [ 27%]
tests/test_default_router.py::test_converters_with_invalid_options[/foo/{bar:int(num_digits=-1)}/baz] PASSED [ 28%]
tests/test_default_router.py::test_converters_malformed_specification[/foo/{bar:}] PASSED [ 28%]
tests/test_default_router.py::test_converters_malformed_specification[/foo/{bar:unknown}/baz] PASSED [ 28%]
tests/test_default_router.py::test_variable PASSED                       [ 28%]
tests/test_default_router.py::test_single_character_field_name PASSED    [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/teams/default-19] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/teams/default/members-7] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/cvt/teams/default-31] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/cvt/teams/default/members/1234-10-32] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/teams/1234-6] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/teams/1234/members-7] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/gists/first-20] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/gists/first/raw-18] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/gists/first/pdf-21] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/gists/1776/pdf-21] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78-13] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78/small.png-24] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78/small(png)-25] PASSED [ 28%]
tests/test_default_router.py::test_literal_vs_variable[/emojis/signs/78/small_png-26] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/this/does/not/exist] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/user/bogus] PASSED         [ 28%]
tests/test_default_router.py::test_not_found[/repos/racker/falcon/compare/johndoe:master...janedoe:dev/bogus] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams] PASSED              [ 28%]
tests/test_default_router.py::test_not_found[/teams/42/members/undefined] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/42/undefined] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/42/undefined/segments] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/default/members/undefined] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/default/members/thing/undefined] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/default/members/thing/undefined/segments] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/default/undefined] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/teams/default/undefined/segments] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/cvt/teams/default/members] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/cvt/teams/NaN] PASSED      [ 28%]
tests/test_default_router.py::test_not_found[/cvt/teams/default/members/NaN] PASSED [ 28%]
tests/test_default_router.py::test_not_found[/emojis/signs] PASSED       [ 28%]
tests/test_default_router.py::test_not_found[/emojis/signs/0/small] PASSED [ 29%]
tests/test_default_router.py::test_not_found[/emojis/signs/0/undefined] PASSED [ 29%]
tests/test_default_router.py::test_not_found[/emojis/signs/0/undefined/segments] PASSED [ 29%]
tests/test_default_router.py::test_not_found[/emojis/signs/20/small] PASSED [ 29%]
tests/test_default_router.py::test_not_found[/emojis/signs/20/undefined] PASSED [ 29%]
tests/test_default_router.py::test_not_found[/emojis/signs/42/undefined] PASSED [ 29%]
tests/test_default_router.py::test_not_found[/emojis/signs/78/undefined] PASSED [ 29%]
tests/test_default_router.py::test_subsegment_not_found PASSED           [ 29%]
tests/test_default_router.py::test_multivar PASSED                       [ 29%]
tests/test_default_router.py::test_complex[-5] PASSED                    [ 29%]
tests/test_default_router.py::test_complex[/full-10] PASSED              [ 29%]
tests/test_default_router.py::test_complex[/part-15] PASSED              [ 29%]
tests/test_default_router.py::test_complex_alt[-16-/repos/{org}/{repo}/compare/{usr0}:{branch0}] PASSED [ 29%]
tests/test_default_router.py::test_complex_alt[/full-17-/repos/{org}/{repo}/compare/{usr0}:{branch0}/full] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_set PASSED         [ 29%]
tests/test_default_router.py::test_options_converters_update[spam] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_update[spam_2] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[has whitespace] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[whitespace ] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[ whitespace ] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[ whitespace] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[funky$character] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[42istheanswer] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name[with-hyphen] PASSED [ 29%]
tests/test_default_router.py::test_options_converters_invalid_name_on_update PASSED [ 29%]
tests/test_default_router.py::test_params_in_non_taken_branches[/c/foo/arg/baz-expected0-1] PASSED [ 29%]
tests/test_default_router.py::test_params_in_non_taken_branches[/c/foo/bar/other-expected1-2] PASSED [ 29%]
tests/test_default_router.py::test_params_in_non_taken_branches[/c/foo/42-7/baz-expected2-1] PASSED [ 29%]
tests/test_default_router.py::test_params_in_non_taken_branches[/upload/youtube/auth/token-expected3-4] PASSED [ 29%]
tests/test_default_router.py::test_params_in_non_taken_branches[/x/y/o.o/w-expected4-7] PASSED [ 29%]
tests/test_deprecations.py::test_bounded_stream PASSED                   [ 29%]
tests/test_deprecations.py::TestApiHelpers::test_imports PASSED          [ 29%]
tests/test_deprecations.py::TestApiHelpers::test_warning SKIPPED         [ 29%]
tests/test_deps.py::test_deps_mimeparse_correct_package PASSED           [ 29%]
tests/test_error.py::test_with_default_title_and_desc[HTTPBadRequest-400 Bad Request] PASSED [ 29%]
tests/test_error.py::test_with_default_title_and_desc[HTTPUnauthorized-401 Unauthorized] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPForbidden-403 Forbidden] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPNotFound-404 Not Found] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPRouteNotFound-404 Not Found] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPNotAcceptable-406 Not Acceptable] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPConflict-409 Conflict] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPGone-410 Gone] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPLengthRequired-411 Length Required] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPPreconditionFailed-412 Precondition Failed] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPPayloadTooLarge-413 Payload Too Large] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPUriTooLong-414 URI Too Long] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPUnsupportedMediaType-415 Unsupported Media Type] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPUnprocessableEntity-422 Unprocessable Entity] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPLocked-423 Locked] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPFailedDependency-424 Failed Dependency] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPPreconditionRequired-428 Precondition Required] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPTooManyRequests-429 Too Many Requests] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPRequestHeaderFieldsTooLarge-431 Request Header Fields Too Large] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPUnavailableForLegalReasons-451 Unavailable For Legal Reasons] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPInternalServerError-500 Internal Server Error] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPNotImplemented-501 Not Implemented] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPBadGateway-502 Bad Gateway] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPServiceUnavailable-503 Service Unavailable] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPGatewayTimeout-504 Gateway Timeout] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPVersionNotSupported-505 HTTP Version Not Supported] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPInsufficientStorage-507 Insufficient Storage] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPLoopDetected-508 Loop Detected] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc[HTTPNetworkAuthenticationRequired-511 Network Authentication Required] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc_args[HTTPMethodNotAllowed-405 Method Not Allowed-args0] PASSED [ 30%]
tests/test_error.py::test_with_default_title_and_desc_args[HTTPRangeNotSatisfiable-416 Range Not Satisfiable-args1] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPBadRequest] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPUnauthorized] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPForbidden] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPNotFound] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPRouteNotFound] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPNotAcceptable] PASSED [ 30%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPConflict] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPGone] PASSED   [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPLengthRequired] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPPreconditionFailed] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPPayloadTooLarge] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPUriTooLong] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPUnsupportedMediaType] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPUnprocessableEntity] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPLocked] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPFailedDependency] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPPreconditionRequired] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPTooManyRequests] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPRequestHeaderFieldsTooLarge] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPUnavailableForLegalReasons] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPInternalServerError] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPNotImplemented] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPBadGateway] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPServiceUnavailable] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPGatewayTimeout] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPVersionNotSupported] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPInsufficientStorage] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPLoopDetected] PASSED [ 31%]
tests/test_error.py::test_with_title_desc_and_headers[HTTPNetworkAuthenticationRequired] PASSED [ 31%]
tests/test_error.py::test_kw_only[HTTPBadRequest] PASSED                 [ 31%]
tests/test_error.py::test_kw_only[HTTPUnauthorized] PASSED               [ 31%]
tests/test_error.py::test_kw_only[HTTPForbidden] PASSED                  [ 31%]
tests/test_error.py::test_kw_only[HTTPNotFound] PASSED                   [ 31%]
tests/test_error.py::test_kw_only[HTTPRouteNotFound] PASSED              [ 31%]
tests/test_error.py::test_kw_only[HTTPNotAcceptable] PASSED              [ 31%]
tests/test_error.py::test_kw_only[HTTPConflict] PASSED                   [ 31%]
tests/test_error.py::test_kw_only[HTTPGone] PASSED                       [ 31%]
tests/test_error.py::test_kw_only[HTTPLengthRequired] PASSED             [ 31%]
tests/test_error.py::test_kw_only[HTTPPreconditionFailed] PASSED         [ 31%]
tests/test_error.py::test_kw_only[HTTPPayloadTooLarge] PASSED            [ 31%]
tests/test_error.py::test_kw_only[HTTPUriTooLong] PASSED                 [ 31%]
tests/test_error.py::test_kw_only[HTTPUnsupportedMediaType] PASSED       [ 32%]
tests/test_error.py::test_kw_only[HTTPUnprocessableEntity] PASSED        [ 32%]
tests/test_error.py::test_kw_only[HTTPLocked] PASSED                     [ 32%]
tests/test_error.py::test_kw_only[HTTPFailedDependency] PASSED           [ 32%]
tests/test_error.py::test_kw_only[HTTPPreconditionRequired] PASSED       [ 32%]
tests/test_error.py::test_kw_only[HTTPTooManyRequests] PASSED            [ 32%]
tests/test_error.py::test_kw_only[HTTPRequestHeaderFieldsTooLarge] PASSED [ 32%]
tests/test_error.py::test_kw_only[HTTPUnavailableForLegalReasons] PASSED [ 32%]
tests/test_error.py::test_kw_only[HTTPInternalServerError] PASSED        [ 32%]
tests/test_error.py::test_kw_only[HTTPNotImplemented] PASSED             [ 32%]
tests/test_error.py::test_kw_only[HTTPBadGateway] PASSED                 [ 32%]
tests/test_error.py::test_kw_only[HTTPServiceUnavailable] PASSED         [ 32%]
tests/test_error.py::test_kw_only[HTTPGatewayTimeout] PASSED             [ 32%]
tests/test_error.py::test_kw_only[HTTPVersionNotSupported] PASSED        [ 32%]
tests/test_error.py::test_kw_only[HTTPInsufficientStorage] PASSED        [ 32%]
tests/test_error.py::test_kw_only[HTTPLoopDetected] PASSED               [ 32%]
tests/test_error.py::test_kw_only[HTTPNetworkAuthenticationRequired] PASSED [ 32%]
tests/test_error.py::test_with_title_desc_and_headers_args[HTTPMethodNotAllowed-args0] PASSED [ 32%]
tests/test_error.py::test_with_title_desc_and_headers_args[HTTPRangeNotSatisfiable-args1] PASSED [ 32%]
tests/test_error.py::test_args_kw_only[HTTPMethodNotAllowed-args0] PASSED [ 32%]
tests/test_error.py::test_args_kw_only[HTTPRangeNotSatisfiable-args1] PASSED [ 32%]
tests/test_error.py::test_args_kw_only[HTTPInvalidHeader-args2] PASSED   [ 32%]
tests/test_error.py::test_args_kw_only[HTTPMissingHeader-args3] PASSED   [ 32%]
tests/test_error.py::test_args_kw_only[HTTPInvalidParam-args4] PASSED    [ 32%]
tests/test_error.py::test_args_kw_only[HTTPMissingParam-args5] PASSED    [ 32%]
tests/test_error.py::test_with_retry_after[HTTPServiceUnavailable] PASSED [ 32%]
tests/test_error.py::test_with_retry_after[HTTPTooManyRequests] PASSED   [ 32%]
tests/test_error.py::test_with_retry_after[HTTPPayloadTooLarge] PASSED   [ 32%]
tests/test_error.py::test_with_retry_after_and_headers[HTTPServiceUnavailable] PASSED [ 32%]
tests/test_error.py::test_with_retry_after_and_headers[HTTPTooManyRequests] PASSED [ 32%]
tests/test_error.py::test_with_retry_after_and_headers[HTTPPayloadTooLarge] PASSED [ 32%]
tests/test_error.py::test_http_error_repr PASSED                         [ 32%]
tests/test_error.py::test_custom_400[HTTPInvalidHeader-args0-Invalid header value-The value provided for the "bar" header is invalid. foo] PASSED [ 32%]
tests/test_error.py::test_custom_400[HTTPMissingHeader-args1-Missing header value-The "foo" header is required.] PASSED [ 32%]
tests/test_error.py::test_custom_400[HTTPInvalidParam-args2-Invalid parameter-The "bar" parameter is invalid. foo] PASSED [ 32%]
tests/test_error.py::test_custom_400[HTTPMissingParam-args3-Missing parameter-The "foo" parameter is required.] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPPayloadTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_no_header[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPPayloadTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPPayloadTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPPayloadTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_other_header_list[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPUnauthorized-WWW-Authenticate-challenges-args0-a, b-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPMethodNotAllowed-Allow-allowed_methods-args1-a, b-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPPayloadTooLarge-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPRangeNotSatisfiable-Content-Range-resource_length-123-bytes */123-True] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPTooManyRequests-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error.py::TestErrorsWithHeadersKW::test_override_header_list[HTTPServiceUnavailable-Retry-After-retry_after-123-123-False] PASSED [ 33%]
tests/test_error_handlers.py::TestErrorHandler::test_caught_error[asgi] PASSED [ 33%]
tests/test_error_handlers.py::TestErrorHandler::test_caught_error[wsgi] PASSED [ 33%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[asgi-None-application/json-{"] PASSED [ 33%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[asgi-get_headers1-application/json-{"] PASSED [ 33%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[asgi-get_headers2-application/xml-<?xml] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[wsgi-None-application/json-{"] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[wsgi-get_headers1-application/json-{"] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_python_error[wsgi-get_headers2-application/xml-<?xml] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_caught_error_async[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_caught_error_async[wsgi] SKIPPED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_error[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_error[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_error_else[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_uncaught_error_else[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_converted_error[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_converted_error[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handle_not_defined[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handle_not_defined[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_subclass_error[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_subclass_error[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_error_precedence_duplicate[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_error_precedence_duplicate[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_error_precedence_subclass[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_error_precedence_subclass[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_error_precedence_subclass_order_indifference[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_error_precedence_subclass_order_indifference[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_multiple_exception_iterable[asgi-exceptions0] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_multiple_exception_iterable[asgi-exceptions1] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_multiple_exception_iterable[wsgi-exceptions0] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_multiple_exception_iterable[wsgi-exceptions1] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_single_exception_iterable[asgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_single_exception_iterable[wsgi] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[asgi-exceptions0] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[asgi-Hello, world!] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[asgi-exceptions2] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[asgi-exceptions3] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[wsgi-exceptions0] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[wsgi-Hello, world!] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[wsgi-exceptions2] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_invalid_add_exception_handler_input[wsgi-exceptions3] PASSED [ 34%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_signature_shim PASSED [ 35%]
tests/test_error_handlers.py::TestErrorHandler::test_handler_must_be_coroutine_for_asgi PASSED [ 35%]
tests/test_error_handlers.py::TestErrorHandler::test_catch_http_no_route_error[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestErrorHandler::test_catch_http_no_route_error[wsgi] PASSED [ 35%]
tests/test_error_handlers.py::TestNoBodyWithStatus::test_data_is_set[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestNoBodyWithStatus::test_data_is_set[wsgi] PASSED [ 35%]
tests/test_error_handlers.py::TestNoBodyWithStatus::test_media_is_set[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestNoBodyWithStatus::test_media_is_set[wsgi] PASSED [ 35%]
tests/test_error_handlers.py::TestNoBodyWithStatus::test_body_is_set[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestNoBodyWithStatus::test_body_is_set[wsgi] PASSED [ 35%]
tests/test_error_handlers.py::TestCustomError::test_data_is_set[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestCustomError::test_data_is_set[wsgi] PASSED [ 35%]
tests/test_error_handlers.py::TestCustomError::test_media_is_set[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestCustomError::test_media_is_set[wsgi] PASSED [ 35%]
tests/test_error_handlers.py::TestCustomError::test_body_is_set[asgi] PASSED [ 35%]
tests/test_error_handlers.py::TestCustomError::test_body_is_set[wsgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_content_length[asgi] PASSED     [ 35%]
tests/test_headers.py::TestHeaders::test_content_length[wsgi] PASSED     [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_on_head[asgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_on_head[wsgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_overridden_by_no_body[asgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_overridden_by_no_body[wsgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_overriden_by_body_length[asgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_overriden_by_body_length[wsgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_overriden_by_data_length[asgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_declared_content_length_overriden_by_data_length[wsgi] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_expires_header[asgi] PASSED     [ 35%]
tests/test_headers.py::TestHeaders::test_expires_header[wsgi] PASSED     [ 35%]
tests/test_headers.py::TestHeaders::test_default_value[asgi] PASSED      [ 35%]
tests/test_headers.py::TestHeaders::test_default_value[wsgi] PASSED      [ 35%]
tests/test_headers.py::TestHeaders::test_unset_header[asgi-True] PASSED  [ 35%]
tests/test_headers.py::TestHeaders::test_unset_header[asgi-False] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_unset_header[wsgi-True] PASSED  [ 35%]
tests/test_headers.py::TestHeaders::test_unset_header[wsgi-False] PASSED [ 35%]
tests/test_headers.py::TestHeaders::test_required_header[asgi] PASSED    [ 35%]
tests/test_headers.py::TestHeaders::test_required_header[wsgi] PASSED    [ 36%]
tests/test_headers.py::TestHeaders::test_no_content_length[asgi-204 No Content] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_no_content_length[asgi-304 Not Modified] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_no_content_length[wsgi-204 No Content] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_no_content_length[wsgi-304 Not Modified] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_header_missing[asgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_header_missing[wsgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_passthrough_request_headers[asgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_passthrough_request_headers[wsgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_headers_as_list[asgi] PASSED    [ 36%]
tests/test_headers.py::TestHeaders::test_headers_as_list[wsgi] PASSED    [ 36%]
tests/test_headers.py::TestHeaders::test_default_media_type[asgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_default_media_type[wsgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_override_default_media_type[text/plain; charset=UTF-8-Hello Unicode! \U0001f638-True] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_override_default_media_type[text/plain; charset=UTF-8-Hello Unicode! \U0001f638-False] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_override_default_media_type[text/plain-Hello ISO-8859-1!-True] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_override_default_media_type[text/plain-Hello ISO-8859-1!-False] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_override_default_media_type_missing_encoding[True] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_override_default_media_type_missing_encoding[False] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_response_header_helpers_on_get[asgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_response_header_helpers_on_get[wsgi] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-report.csv-attachment; filename="report.csv"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-Hello World.txt-attachment; filename="Hello World.txt"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-Bold Digit \U0001d7cf.txt-attachment; filename=Bold_Digit_1.txt; filename*=UTF-8''Bold%20Digit%20%F0%9D%9F%8F.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-\xc5ngstr\xf6m unit.txt-attachment; filename=A_ngstro_m_unit.txt; filename*=UTF-8''%C3%85ngstr%C3%B6m%20unit.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-one,two.txt-attachment; filename="one,two.txt"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-\xbd,\xb2\u2044\u2082.txt-attachment; filename=1_2_2_2.txt; filename*=UTF-8''%C2%BD%2C%C2%B2%E2%81%84%E2%82%82.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-[foo] @ bar.txt-attachment; filename="[foo] @ bar.txt"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[asgi-[f\xf2\xf3]@b\xe0r,b\xe4z.txt-attachment; filename=_fo_o___ba_r_ba_z.txt; filename*=UTF-8''%5Bf%C3%B2%C3%B3%5D%40b%C3%A0r%2Cb%C3%A4z.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-report.csv-attachment; filename="report.csv"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-Hello World.txt-attachment; filename="Hello World.txt"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-Bold Digit \U0001d7cf.txt-attachment; filename=Bold_Digit_1.txt; filename*=UTF-8''Bold%20Digit%20%F0%9D%9F%8F.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-\xc5ngstr\xf6m unit.txt-attachment; filename=A_ngstro_m_unit.txt; filename*=UTF-8''%C3%85ngstr%C3%B6m%20unit.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-one,two.txt-attachment; filename="one,two.txt"] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-\xbd,\xb2\u2044\u2082.txt-attachment; filename=1_2_2_2.txt; filename*=UTF-8''%C2%BD%2C%C2%B2%E2%81%84%E2%82%82.txt] PASSED [ 36%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-[foo] @ bar.txt-attachment; filename="[foo] @ bar.txt"] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_attachment_header[wsgi-[f\xf2\xf3]@b\xe0r,b\xe4z.txt-attachment; filename=_fo_o___ba_r_ba_z.txt; filename*=UTF-8''%5Bf%C3%B2%C3%B3%5D%40b%C3%A0r%2Cb%C3%A4z.txt] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_inline_header[asgi-report.csv-inline; filename="report.csv"] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_inline_header[asgi-Hello World.txt-inline; filename="Hello World.txt"] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_inline_header[asgi-Bold Digit \U0001d7cf.txt-inline; filename=Bold_Digit_1.txt; filename*=UTF-8''Bold%20Digit%20%F0%9D%9F%8F.txt] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_inline_header[wsgi-report.csv-inline; filename="report.csv"] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_inline_header[wsgi-Hello World.txt-inline; filename="Hello World.txt"] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_content_disposition_inline_header[wsgi-Bold Digit \U0001d7cf.txt-inline; filename=Bold_Digit_1.txt; filename*=UTF-8''Bold%20Digit%20%F0%9D%9F%8F.txt] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_request_latin1_headers[asgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_request_latin1_headers[wsgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_location_headers[asgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_location_headers[wsgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_only_ascii[asgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_only_ascii[wsgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[asgi-CONNECT] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[asgi-PATCH] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[asgi-POST] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[asgi-PUT] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[wsgi-CONNECT] SKIPPED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[wsgi-PATCH] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[wsgi-POST] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_unicode_headers_contain_non_ascii[wsgi-PUT] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_response_set_and_get_header[asgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_response_set_and_get_header[wsgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_response_append_header[asgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_response_append_header[wsgi] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[asgi-ValueError-Set-Cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[asgi-ValueError-set-cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[asgi-ValueError-seT-cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[asgi-HeaderNotSupported-Set-Cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[asgi-HeaderNotSupported-set-cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[asgi-HeaderNotSupported-seT-cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[wsgi-ValueError-Set-Cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[wsgi-ValueError-set-cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[wsgi-ValueError-seT-cookie] PASSED [ 37%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[wsgi-HeaderNotSupported-Set-Cookie] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[wsgi-HeaderNotSupported-set-cookie] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_set_cookie_disallowed[wsgi-HeaderNotSupported-seT-cookie] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_vary_star[asgi] PASSED          [ 38%]
tests/test_headers.py::TestHeaders::test_vary_star[wsgi] PASSED          [ 38%]
tests/test_headers.py::TestHeaders::test_vary_header[asgi-vary0-accept-encoding] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_vary_header[asgi-vary1-accept-encoding, x-auth-token] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_vary_header[wsgi-vary0-accept-encoding] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_vary_header[wsgi-vary1-accept-encoding, x-auth-token] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_content_type_no_body[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_content_type_no_body[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_no_content_type[asgi-204 No Content] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_no_content_type[asgi-304 Not Modified] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_no_content_type[wsgi-204 No Content] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_no_content_type[wsgi-304 Not Modified] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_custom_content_type[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_custom_content_type[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_single[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_single[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_multiple[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_multiple[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_title[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_title[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_title_star[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_title_star[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_anchor[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_anchor[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_hreflang[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_hreflang[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_hreflang_multi[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_hreflang_multi[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_type_hint[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_with_type_hint[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_complex[asgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_complex[wsgi] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-None-</related/thing>; rel=alternate] PASSED [ 38%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-anonymous-</related/thing>; rel=alternate; crossorigin] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-Anonymous-</related/thing>; rel=alternate; crossorigin] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-AnOnYmOUs-</related/thing>; rel=alternate; crossorigin] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-Use-Credentials-</related/thing>; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-use-credentials-</related/thing>; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-None-</related/thing>; rel=alternate] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-anonymous-</related/thing>; rel=alternate; crossorigin] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-Anonymous-</related/thing>; rel=alternate; crossorigin] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-AnOnYmOUs-</related/thing>; rel=alternate; crossorigin] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-Use-Credentials-</related/thing>; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-use-credentials-</related/thing>; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[*] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[Allow-all] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[Lax] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[MUST-REVALIDATE] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[Strict] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_append_link_invalid_crossorigin_value[deny] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_content_length_options[asgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_content_length_options[wsgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_set_headers_with_custom_class[asgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_set_headers_with_custom_class[wsgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_headers_with_custom_class_not_callable[asgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_headers_with_custom_class_not_callable[wsgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_request_multiple_header[asgi] PASSED [ 39%]
tests/test_headers.py::TestHeaders::test_request_multiple_header[wsgi] PASSED [ 39%]
tests/test_hello.py::TestHelloWorld::test_env_headers_list_of_tuples PASSED [ 39%]
tests/test_hello.py::TestHelloWorld::test_root_route PASSED              [ 39%]
tests/test_hello.py::TestHelloWorld::test_no_route PASSED                [ 39%]
tests/test_hello.py::TestHelloWorld::test_body[/body-resource0-<lambda>] PASSED [ 39%]
tests/test_hello.py::TestHelloWorld::test_body[/bytes-resource1-<lambda>] PASSED [ 39%]
tests/test_hello.py::TestHelloWorld::test_body[/data-resource2-<lambda>] PASSED [ 39%]
tests/test_hello.py::TestHelloWorld::test_no_body_on_head PASSED         [ 39%]
tests/test_hello.py::TestHelloWorld::test_stream_chunked PASSED          [ 39%]
tests/test_hello.py::TestHelloWorld::test_stream_known_len PASSED        [ 39%]
tests/test_hello.py::TestHelloWorld::test_filelike PASSED                [ 39%]
tests/test_hello.py::TestHelloWorld::test_filelike_closing[ClosingBytesIO-True] PASSED [ 40%]
tests/test_hello.py::TestHelloWorld::test_filelike_closing[NonClosingBytesIO-False] PASSED [ 40%]
tests/test_hello.py::TestHelloWorld::test_filelike_using_helper PASSED   [ 40%]
tests/test_hello.py::TestHelloWorld::test_status_not_set PASSED          [ 40%]
tests/test_http_custom_method_routing.py::test_map_http_methods[asgi] PASSED [ 40%]
tests/test_http_custom_method_routing.py::test_map_http_methods[wsgi] PASSED [ 40%]
tests/test_http_custom_method_routing.py::test_environment_override[foo-expected0] SKIPPED [ 40%]
tests/test_http_custom_method_routing.py::test_environment_override[FOO-expected1] SKIPPED [ 40%]
tests/test_http_custom_method_routing.py::test_environment_override[FOO,-expected2] SKIPPED [ 40%]
tests/test_http_custom_method_routing.py::test_environment_override[FOO,BAR-expected3] SKIPPED [ 40%]
tests/test_http_custom_method_routing.py::test_environment_override[FOO, BAR-expected4] SKIPPED [ 40%]
tests/test_http_custom_method_routing.py::test_environment_override[ foo , BAR -expected5] SKIPPED [ 40%]
tests/test_http_custom_method_routing.py::test_foo[asgi] PASSED          [ 40%]
tests/test_http_custom_method_routing.py::test_foo[wsgi] PASSED          [ 40%]
tests/test_http_custom_method_routing.py::test_bar[asgi] PASSED          [ 40%]
tests/test_http_custom_method_routing.py::test_bar[wsgi] PASSED          [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_get[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_get[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_put[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_put[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_post_not_allowed[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_post_not_allowed[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_report[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_report[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_misc[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_misc[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_simple[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_simple[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_complex[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_methods_not_allowed_complex[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_method_not_allowed_with_param[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_method_not_allowed_with_param[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_default_on_options[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_default_on_options[wsgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_on_options[asgi] PASSED [ 40%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_on_options[wsgi] PASSED [ 41%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[asgi-WEBSOCKET] PASSED [ 41%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[asgi-SETECASTRONOMY] PASSED [ 41%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[wsgi-WEBSOCKET] PASSED [ 41%]
tests/test_http_method_routing.py::TestHttpMethodRouting::test_meta_and_others_disallowed[wsgi-SETECASTRONOMY] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_base_class[asgi] PASSED     [ 41%]
tests/test_httperror.py::TestHTTPError::test_base_class[wsgi] PASSED     [ 41%]
tests/test_httperror.py::TestHTTPError::test_has_representation PASSED   [ 41%]
tests/test_httperror.py::TestHTTPError::test_no_description_json[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_no_description_json[wsgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_no_description_xml[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_no_description_xml[wsgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_json_or_xml[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_json_or_xml[wsgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer[wsgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-GET-/404-404] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-GET-/notfound-404] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-REPORT-/404-405] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[asgi-BREW-/notfound-400] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-GET-/404-404] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-GET-/notfound-404] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-REPORT-/404-405] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_error_serializer_optional_representation[wsgi-BREW-/notfound-400] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_serializer_no_representation[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_custom_serializer_no_representation[wsgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_anything[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_client_does_not_accept_anything[wsgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_forbidden[asgi-application/json] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_forbidden[asgi-application/vnd.company.system.project.resource+json;v=1.1] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_forbidden[asgi-application/json-patch+json] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_forbidden[wsgi-application/json] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_forbidden[wsgi-application/vnd.company.system.project.resource+json;v=1.1] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_forbidden[wsgi-application/json-patch+json] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_json[asgi] PASSED [ 41%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_json[wsgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-text/xml] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-application/xml] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-application/vnd.company.system.project.resource+xml;v=1.1] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[asgi-application/atom+xml] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-text/xml] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-application/xml] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-application/vnd.company.system.project.resource+xml;v=1.1] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_epic_fail_xml[wsgi-application/atom+xml] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_unicode_json[asgi] PASSED   [ 42%]
tests/test_httperror.py::TestHTTPError::test_unicode_json[wsgi] PASSED   [ 42%]
tests/test_httperror.py::TestHTTPError::test_unicode_xml[asgi] PASSED    [ 42%]
tests/test_httperror.py::TestHTTPError::test_unicode_xml[wsgi] PASSED    [ 42%]
tests/test_httperror.py::TestHTTPError::test_401[asgi] PASSED            [ 42%]
tests/test_httperror.py::TestHTTPError::test_401[wsgi] PASSED            [ 42%]
tests/test_httperror.py::TestHTTPError::test_404_without_body[asgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_404_without_body[wsgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_404_with_body[asgi] PASSED  [ 42%]
tests/test_httperror.py::TestHTTPError::test_404_with_body[wsgi] PASSED  [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_without_body[asgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_without_body[wsgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers[asgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers[wsgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers_double_check[asgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_without_body_with_extra_headers_double_check[wsgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_with_body[asgi] PASSED  [ 42%]
tests/test_httperror.py::TestHTTPError::test_405_with_body[wsgi] PASSED  [ 42%]
tests/test_httperror.py::TestHTTPError::test_410_without_body[asgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_410_without_body[wsgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_410_with_body[asgi] PASSED  [ 42%]
tests/test_httperror.py::TestHTTPError::test_410_with_body[wsgi] PASSED  [ 42%]
tests/test_httperror.py::TestHTTPError::test_411[asgi] PASSED            [ 42%]
tests/test_httperror.py::TestHTTPError::test_411[wsgi] PASSED            [ 42%]
tests/test_httperror.py::TestHTTPError::test_413[asgi] PASSED            [ 42%]
tests/test_httperror.py::TestHTTPError::test_413[wsgi] PASSED            [ 42%]
tests/test_httperror.py::TestHTTPError::test_temporary_413_integer_retry_after[asgi] PASSED [ 42%]
tests/test_httperror.py::TestHTTPError::test_temporary_413_integer_retry_after[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_temporary_413_datetime_retry_after[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_temporary_413_datetime_retry_after[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_414[asgi] PASSED            [ 43%]
tests/test_httperror.py::TestHTTPError::test_414[wsgi] PASSED            [ 43%]
tests/test_httperror.py::TestHTTPError::test_414_with_title[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_414_with_title[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_414_with_description[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_414_with_description[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_414_with_custom_kwargs[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_414_with_custom_kwargs[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_416[asgi] PASSED            [ 43%]
tests/test_httperror.py::TestHTTPError::test_416[wsgi] PASSED            [ 43%]
tests/test_httperror.py::TestHTTPError::test_429_no_retry_after[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_429_no_retry_after[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_429[asgi] PASSED            [ 43%]
tests/test_httperror.py::TestHTTPError::test_429[wsgi] PASSED            [ 43%]
tests/test_httperror.py::TestHTTPError::test_429_datetime[asgi] PASSED   [ 43%]
tests/test_httperror.py::TestHTTPError::test_429_datetime[wsgi] PASSED   [ 43%]
tests/test_httperror.py::TestHTTPError::test_503_integer_retry_after[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_503_integer_retry_after[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_503_datetime_retry_after[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_503_datetime_retry_after[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_invalid_header[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_invalid_header[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_missing_header[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_missing_header[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_invalid_param[asgi] PASSED  [ 43%]
tests/test_httperror.py::TestHTTPError::test_invalid_param[wsgi] PASSED  [ 43%]
tests/test_httperror.py::TestHTTPError::test_missing_param[asgi] PASSED  [ 43%]
tests/test_httperror.py::TestHTTPError::test_missing_param[wsgi] PASSED  [ 43%]
tests/test_httperror.py::TestHTTPError::test_misc[asgi] PASSED           [ 43%]
tests/test_httperror.py::TestHTTPError::test_misc[wsgi] PASSED           [ 43%]
tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[asgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_title_default_message_if_none[wsgi] PASSED [ 43%]
tests/test_httperror.py::TestHTTPError::test_to_json_dumps PASSED        [ 44%]
tests/test_httperror.py::TestHTTPError::test_serialize_error_uses_media_handler[asgi] PASSED [ 44%]
tests/test_httperror.py::TestHTTPError::test_serialize_error_uses_media_handler[wsgi] PASSED [ 44%]
tests/test_httperror.py::TestHTTPError::test_serialize_no_json_media_handler[asgi] PASSED [ 44%]
tests/test_httperror.py::TestHTTPError::test_serialize_no_json_media_handler[wsgi] PASSED [ 44%]
tests/test_httperror.py::TestHTTPError::test_MediaMalformedError PASSED  [ 44%]
tests/test_httperror.py::test_kw_only PASSED                             [ 44%]
tests/test_httperror.py::test_NoRepresentation PASSED                    [ 44%]
tests/test_httperror.py::TestOptionalRepresentation::test_OptionalRepresentation_false PASSED [ 44%]
tests/test_httperror.py::TestOptionalRepresentation::test_OptionalRepresentation_true PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_before_hook[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_before_hook[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_responder[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_in_responder[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_runs_after_hooks[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_runs_after_hooks[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_survives_after_hooks[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_survives_after_hooks[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_empty_body[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatus::test_raise_status_empty_body[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_request[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_request[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_resource[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_in_process_resource[False] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_runs_process_response[True] PASSED [ 44%]
tests/test_httpstatus.py::TestHTTPStatusWithMiddleware::test_raise_status_runs_process_response[False] PASSED [ 44%]
tests/test_httpstatus.py::TestNoBodyWithStatus::test_data_is_set[asgi] PASSED [ 44%]
tests/test_httpstatus.py::TestNoBodyWithStatus::test_data_is_set[wsgi] PASSED [ 44%]
tests/test_httpstatus.py::TestNoBodyWithStatus::test_media_is_set[asgi] PASSED [ 44%]
tests/test_httpstatus.py::TestNoBodyWithStatus::test_media_is_set[wsgi] PASSED [ 44%]
tests/test_httpstatus.py::TestNoBodyWithStatus::test_body_is_set[asgi] PASSED [ 44%]
tests/test_httpstatus.py::TestNoBodyWithStatus::test_body_is_set[wsgi] PASSED [ 44%]
tests/test_httpstatus.py::test_non_string_status[asgi-200-200_0] PASSED  [ 44%]
tests/test_httpstatus.py::test_non_string_status[asgi-202-202] PASSED    [ 44%]
tests/test_httpstatus.py::test_non_string_status[asgi-403-403] PASSED    [ 44%]
tests/test_httpstatus.py::test_non_string_status[asgi-500-500_0] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-200-200_1] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-305-305] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-404-404] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-501-501] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-200-200_2] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-307-307] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-500-500_1] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-702-702] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-200 OK-200] PASSED [ 45%]
tests/test_httpstatus.py::test_non_string_status[asgi-702 Emacs-702] PASSED [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-200-200_0] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-202-202] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-403-403] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-500-500_0] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-200-200_1] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-305-305] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-404-404] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-501-501] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-200-200_2] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-307-307] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-500-500_1] PASSED  [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-702-702] PASSED    [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-200 OK-200] PASSED [ 45%]
tests/test_httpstatus.py::test_non_string_status[wsgi-702 Emacs-702] PASSED [ 45%]
tests/test_httpstatus.py::test_deprecated_body PASSED                    [ 45%]
tests/test_inspect.py::TestInspectApp::test_empty_app[asgi] PASSED       [ 45%]
tests/test_inspect.py::TestInspectApp::test_empty_app[wsgi] PASSED       [ 45%]
tests/test_inspect.py::TestInspectApp::test_dependent_middleware[asgi] PASSED [ 45%]
tests/test_inspect.py::TestInspectApp::test_dependent_middleware[wsgi] PASSED [ 45%]
tests/test_inspect.py::TestInspectApp::test_app[asgi] PASSED             [ 45%]
tests/test_inspect.py::TestInspectApp::test_app[wsgi] PASSED             [ 45%]
tests/test_inspect.py::TestInspectApp::test_routes[asgi] PASSED          [ 45%]
tests/test_inspect.py::TestInspectApp::test_routes[wsgi] PASSED          [ 45%]
tests/test_inspect.py::TestInspectApp::test_routes_empty_paths[asgi] PASSED [ 45%]
tests/test_inspect.py::TestInspectApp::test_routes_empty_paths[wsgi] PASSED [ 46%]
tests/test_inspect.py::TestInspectApp::test_static_routes[asgi] PASSED   [ 46%]
tests/test_inspect.py::TestInspectApp::test_static_routes[wsgi] PASSED   [ 46%]
tests/test_inspect.py::TestInspectApp::test_sink[asgi] PASSED            [ 46%]
tests/test_inspect.py::TestInspectApp::test_sink[wsgi] PASSED            [ 46%]
tests/test_inspect.py::TestInspectApp::test_error_handler[asgi] PASSED   [ 46%]
tests/test_inspect.py::TestInspectApp::test_error_handler[wsgi] PASSED   [ 46%]
tests/test_inspect.py::TestInspectApp::test_middleware[asgi] PASSED      [ 46%]
tests/test_inspect.py::TestInspectApp::test_middleware[wsgi] PASSED      [ 46%]
tests/test_inspect.py::TestInspectApp::test_middleware_tree[asgi] PASSED [ 46%]
tests/test_inspect.py::TestInspectApp::test_middleware_tree[wsgi] PASSED [ 46%]
tests/test_inspect.py::test_route_method_info_suffix PASSED              [ 46%]
tests/test_inspect.py::TestRouter::test_compiled_partial PASSED          [ 46%]
tests/test_inspect.py::TestRouter::test_compiled_no_method_map PASSED    [ 46%]
tests/test_inspect.py::TestRouter::test_register_router_not_found PASSED [ 46%]
tests/test_inspect.py::TestRouter::test_register_other_router PASSED     [ 46%]
tests/test_inspect.py::TestRouter::test_register_router_multiple_time PASSED [ 46%]
tests/test_inspect.py::test_info_class_repr_to_string PASSED             [ 46%]
tests/test_inspect.py::TestInspectVisitor::test_inspect_visitor PASSED   [ 46%]
tests/test_inspect.py::TestInspectVisitor::test_process PASSED           [ 46%]
tests/test_inspect.py::test_string_visitor_class PASSED                  [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_method[True] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_method[False] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_method_verbose[True] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_method_verbose[False] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route[True] PASSED        [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route[False] PASSED       [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_verbose[True] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_verbose[False] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_no_methods[True] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_route_no_methods[False] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_static_route[True-True] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_static_route[True-False] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_static_route[False-True] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_static_route[False-False] PASSED [ 46%]
tests/test_inspect.py::TestStringVisitor::test_sink[True] PASSED         [ 46%]
tests/test_inspect.py::TestStringVisitor::test_sink[False] PASSED        [ 47%]
tests/test_inspect.py::TestStringVisitor::test_sink_verbose[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_sink_verbose[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_error_handler[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_error_handler[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_error_handler_verbose[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_error_handler_verbose[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_method[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_method[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_method_verbose[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_method_verbose[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_class[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_class[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_class_verbose[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_class_verbose[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_class_no_methods[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_class_no_methods[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[True-True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[True-False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[False-True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_item[False-False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree[True-True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree[True-False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree[False-True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree[False-False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_response_only[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_response_only[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_response[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_response[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_resource[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_tree_no_resource[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware[True] PASSED   [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware[False] PASSED  [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_verbose[True] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_middleware_verbose[False] PASSED [ 47%]
tests/test_inspect.py::TestStringVisitor::test_app[True-True] PASSED     [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app[True-False] PASSED    [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app[False-True] PASSED    [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app[False-False] PASSED   [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_routes[True-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_routes[True-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_routes[False-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_routes[False-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[True-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[True-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[False-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_middleware[False-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_static_routes[True-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_static_routes[True-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_static_routes[False-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_static_routes[False-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_sink[True-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_sink[True-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_sink[False-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_sink[False-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_errors[True-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_errors[True-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_errors[False-True] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_no_errors[False-False] PASSED [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_name[True] PASSED     [ 48%]
tests/test_inspect.py::TestStringVisitor::test_app_name[False] PASSED    [ 48%]
tests/test_inspect.py::test_is_internal PASSED                           [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-None-body0-{"test":"value"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-func1-body1-{"test":"value"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-dumps-body2-{"test":"value"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-func3-body3-[{"test":"value"},{"ensure_ascii":true}]] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-None-body4-{"yen":"\xc2\xa5"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-dumps-body5-{"test":"value"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[asgi-dumps-body6-{"test":"value"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[wsgi-None-body0-{"test":"value"}] PASSED [ 48%]
tests/test_media_handlers.py::test_serialization[wsgi-func1-body1-{"test":"value"}] PASSED [ 49%]
tests/test_media_handlers.py::test_serialization[wsgi-dumps-body2-{"test":"value"}] PASSED [ 49%]
tests/test_media_handlers.py::test_serialization[wsgi-func3-body3-[{"test":"value"},{"ensure_ascii":true}]] PASSED [ 49%]
tests/test_media_handlers.py::test_serialization[wsgi-None-body4-{"yen":"\xc2\xa5"}] PASSED [ 49%]
tests/test_media_handlers.py::test_serialization[wsgi-dumps-body5-{"test":"value"}] PASSED [ 49%]
tests/test_media_handlers.py::test_serialization[wsgi-dumps-body6-{"test":"value"}] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[asgi-None-[1, 2]-expected0] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[asgi-func1-{"key": "value"}-expected1] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[asgi-temp_json_func-{"test": "value"}-expected2] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[asgi-loads-{"test": "value"}-expected3] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[asgi-loads-{"test": "value"}-expected4] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[asgi-loads-{"test": "value"}-expected5] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[wsgi-None-[1, 2]-expected0] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[wsgi-func1-{"key": "value"}-expected1] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[wsgi-temp_json_func-{"test": "value"}-expected2] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[wsgi-loads-{"test": "value"}-expected3] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[wsgi-loads-{"test": "value"}-expected4] PASSED [ 49%]
tests/test_media_handlers.py::test_deserialization[wsgi-loads-{"test": "value"}-expected5] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-True-dumps-loads0] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-True-dumps1-temp_json_func] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-True-dumps-loads1] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-True-dumps-loads2] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-True-dumps-loads3] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-False-dumps-loads0] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-False-dumps1-temp_json_func] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-False-dumps-loads1] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-False-dumps-loads2] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[asgi-False-dumps-loads3] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-True-dumps-loads0] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-True-dumps1-temp_json_func] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-True-dumps-loads1] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-True-dumps-loads2] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-True-dumps-loads3] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-False-dumps-loads0] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-False-dumps1-temp_json_func] PASSED [ 49%]
tests/test_media_handlers.py::test_full_app[wsgi-False-dumps-loads1] PASSED [ 50%]
tests/test_media_handlers.py::test_full_app[wsgi-False-dumps-loads2] PASSED [ 50%]
tests/test_media_handlers.py::test_full_app[wsgi-False-dumps-loads3] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[asgi-application/json-True] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[asgi-application/json-False] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[asgi-application/json; answer=42-True] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[asgi-application/json; answer=42-False] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[wsgi-application/json-True] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[wsgi-application/json-False] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[wsgi-application/json; answer=42-True] PASSED [ 50%]
tests/test_media_handlers.py::test_deserialization_raises[wsgi-application/json; answer=42-False] PASSED [ 50%]
tests/test_media_handlers.py::test_sync_methods_not_overridden[asgi] PASSED [ 50%]
tests/test_media_handlers.py::test_sync_methods_not_overridden[wsgi] PASSED [ 50%]
tests/test_media_handlers.py::test_async_methods_not_overridden PASSED   [ 50%]
tests/test_media_handlers.py::test_async_handler_returning_none PASSED   [ 50%]
tests/test_media_handlers.py::test_json_err_no_handler[asgi-True] PASSED [ 50%]
tests/test_media_handlers.py::test_json_err_no_handler[asgi-False] PASSED [ 50%]
tests/test_media_handlers.py::test_json_err_no_handler[wsgi-True] PASSED [ 50%]
tests/test_media_handlers.py::test_json_err_no_handler[wsgi-False] PASSED [ 50%]
tests/test_media_handlers.py::TestBaseHandler::test_defaultError PASSED  [ 50%]
tests/test_media_handlers.py::TestBaseHandler::test_json PASSED          [ 50%]
tests/test_media_multipart.py::test_parse[5b11af82ab65407ba8cdccf37d2a9c4f] PASSED [ 50%]
tests/test_media_multipart.py::test_parse[---------------------------1574247108204320607285918568] PASSED [ 50%]
tests/test_media_multipart.py::test_parse[BOUNDARY] PASSED               [ 50%]
tests/test_media_multipart.py::test_parse[boundary] PASSED               [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-7] PASSED     [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-8] PASSED     [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-9] PASSED     [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-10] PASSED    [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-32] PASSED    [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-64] PASSED    [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-128] PASSED   [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[32-256] PASSED   [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[64-7] PASSED     [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[64-8] PASSED     [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[64-9] PASSED     [ 50%]
tests/test_media_multipart.py::test_parsing_correctness[64-10] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[64-32] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[64-64] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[64-128] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[64-256] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-7] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-8] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-9] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-10] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-32] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-64] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-128] PASSED  [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[128-256] PASSED  [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-7] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-8] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-9] PASSED    [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-10] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-32] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-64] PASSED   [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-128] PASSED  [ 51%]
tests/test_media_multipart.py::test_parsing_correctness[256-256] PASSED  [ 51%]
tests/test_media_multipart.py::test_missing_boundary PASSED              [ 51%]
tests/test_media_multipart.py::test_empty_input PASSED                   [ 51%]
tests/test_media_multipart.py::test_serialize PASSED                     [ 51%]
tests/test_media_multipart.py::test_invalid_text_or_charset[utf-8-Impossible byte: \xff] PASSED [ 51%]
tests/test_media_multipart.py::test_invalid_text_or_charset[utf-8-Overlong... \xfc\x83\xbf\xbf\xbf\xbf ... sequence] PASSED [ 51%]
tests/test_media_multipart.py::test_invalid_text_or_charset[ascii-\x80\x80\x80] PASSED [ 51%]
tests/test_media_multipart.py::test_invalid_text_or_charset[pecyn-AAHEHlRoZSBGYWxjb24gV2ViIEZyYW1ld29yaywgMjAxOQ==] PASSED [ 51%]
tests/test_media_multipart.py::test_unknown_header PASSED                [ 51%]
tests/test_media_multipart.py::test_from_buffered_stream PASSED          [ 51%]
tests/test_media_multipart.py::test_body_part_media PASSED               [ 51%]
tests/test_media_multipart.py::test_body_part_properties PASSED          [ 51%]
tests/test_media_multipart.py::test_empty_filename PASSED                [ 51%]
tests/test_media_multipart.py::test_async_unsupported SKIPPED (Testing
missing ASGI support)                                                    [ 51%]
tests/test_media_multipart.py::test_upload_multipart[asgi] PASSED        [ 51%]
tests/test_media_multipart.py::test_upload_multipart[wsgi] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[asgi-1] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[asgi-2] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[asgi-3] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[asgi-4] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[wsgi-1] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[wsgi-2] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[wsgi-3] PASSED        [ 52%]
tests/test_media_multipart.py::test_truncated_form[wsgi-4] PASSED        [ 52%]
tests/test_media_multipart.py::test_unexected_form_structure[asgi] PASSED [ 52%]
tests/test_media_multipart.py::test_unexected_form_structure[wsgi] PASSED [ 52%]
tests/test_media_multipart.py::test_data_too_large[asgi] PASSED          [ 52%]
tests/test_media_multipart.py::test_data_too_large[wsgi] PASSED          [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-0] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-1] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-2] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-3] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-4] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-5] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-6] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-100] PASSED [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[asgi-1000] PASSED [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-0] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-1] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-2] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-3] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-4] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-5] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-6] PASSED   [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-100] PASSED [ 52%]
tests/test_media_multipart.py::test_too_many_body_parts[wsgi-1000] PASSED [ 52%]
tests/test_media_multipart.py::test_random_form[asgi] PASSED             [ 52%]
tests/test_media_multipart.py::test_random_form[wsgi] PASSED             [ 52%]
tests/test_media_multipart.py::test_invalid_random_form[asgi] PASSED     [ 52%]
tests/test_media_multipart.py::test_invalid_random_form[wsgi] PASSED     [ 52%]
tests/test_media_multipart.py::test_nested_multipart_mixed PASSED        [ 53%]
tests/test_media_multipart.py::test_content_transfer_encoding_header[asgi] PASSED [ 53%]
tests/test_media_multipart.py::test_content_transfer_encoding_header[wsgi] PASSED [ 53%]
tests/test_media_multipart.py::test_unsupported_charset[asgi] PASSED     [ 53%]
tests/test_media_multipart.py::test_unsupported_charset[wsgi] PASSED     [ 53%]
tests/test_media_multipart.py::test_filename_star[asgi] PASSED           [ 53%]
tests/test_media_multipart.py::test_filename_star[wsgi] PASSED           [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[asgi-64] PASSED   [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[asgi-140] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[asgi-141] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[asgi-142] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[asgi-256] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[asgi-1024] PASSED [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[wsgi-64] PASSED   [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[wsgi-140] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[wsgi-141] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[wsgi-142] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[wsgi-256] PASSED  [ 53%]
tests/test_media_multipart.py::test_headers_edge_cases[wsgi-1024] PASSED [ 53%]
tests/test_media_multipart.py::test_deserialize_part_media[asgi] PASSED  [ 53%]
tests/test_media_multipart.py::test_deserialize_part_media[wsgi] PASSED  [ 53%]
tests/test_media_multipart.py::test_deserialize_custom_media[asgi] PASSED [ 53%]
tests/test_media_multipart.py::test_deserialize_custom_media[wsgi] PASSED [ 53%]
tests/test_media_urlencoded.py::test_deserialize_empty_form PASSED       [ 53%]
tests/test_media_urlencoded.py::test_deserialize_invalid_unicode PASSED  [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form_handler_serialize[data0-hello=world] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form_handler_serialize[data1-number=1&number=2] PASSED [ 53%]
tests/test_media_urlencoded.py::test_empty_form[asgi] PASSED             [ 53%]
tests/test_media_urlencoded.py::test_empty_form[wsgi] PASSED             [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[asgi-a=1&b=&c=3-expected0] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[asgi-param=undefined-expected1] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[asgi-color=green&color=black-expected2] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[asgi-food=hamburger+%28%F0%9F%8D%94%29&sauce=BBQ-expected3] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[asgi-flag%1&flag%2&flag%1&flag%2-expected4] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-a=1&b=&c=3-expected0] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-param=undefined-expected1] PASSED [ 53%]
tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-color=green&color=black-expected2] PASSED [ 54%]
tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-food=hamburger+%28%F0%9F%8D%94%29&sauce=BBQ-expected3] PASSED [ 54%]
tests/test_media_urlencoded.py::test_urlencoded_form[wsgi-flag%1&flag%2&flag%1&flag%2-expected4] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_skip_process_resource[asgi] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_skip_process_resource[wsgi] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_add_invalid_middleware[asgi] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_add_invalid_middleware[wsgi] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_response_middleware_raises_exception[asgi] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_response_middleware_raises_exception[wsgi] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[asgi-True] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[asgi-False] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[wsgi-True] PASSED [ 54%]
tests/test_middleware.py::TestRequestTimeMiddleware::test_log_get_request[wsgi-False] PASSED [ 54%]
tests/test_middleware.py::TestTransactionIdMiddleware::test_generate_trans_id_with_request[asgi] PASSED [ 54%]
tests/test_middleware.py::TestTransactionIdMiddleware::test_generate_trans_id_with_request[wsgi] PASSED [ 54%]
tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[asgi-True] PASSED [ 54%]
tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[asgi-False] PASSED [ 54%]
tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[wsgi-True] PASSED [ 54%]
tests/test_middleware.py::TestSeveralMiddlewares::test_generate_trans_id_and_time_with_request[wsgi-False] PASSED [ 54%]
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 [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_resp[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_resp[asgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_resp[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_req[asgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_req[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_req[asgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_req[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_rsrc[asgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_mw_executed_when_exception_in_rsrc[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_rsrc[asgi] PASSED [ 55%]
tests/test_middleware.py::TestSeveralMiddlewares::test_order_independent_mw_executed_when_exception_in_rsrc[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestRemoveBasePathMiddleware::test_base_path_is_removed_before_routing[asgi] PASSED [ 55%]
tests/test_middleware.py::TestRemoveBasePathMiddleware::test_base_path_is_removed_before_routing[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[asgi-True] PASSED [ 55%]
tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[asgi-False] PASSED [ 55%]
tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[wsgi-True] PASSED [ 55%]
tests/test_middleware.py::TestResourceMiddleware::test_can_access_resource_params[wsgi-False] PASSED [ 55%]
tests/test_middleware.py::TestEmptySignatureMiddleware::test_dont_need_params_in_signature[asgi] PASSED [ 55%]
tests/test_middleware.py::TestEmptySignatureMiddleware::test_dont_need_params_in_signature[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestErrorHandling::test_error_composed_before_resp_middleware_called[asgi] PASSED [ 55%]
tests/test_middleware.py::TestErrorHandling::test_error_composed_before_resp_middleware_called[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestErrorHandling::test_http_status_raised_from_error_handler[asgi] PASSED [ 55%]
tests/test_middleware.py::TestErrorHandling::test_http_status_raised_from_error_handler[wsgi] PASSED [ 55%]
tests/test_middleware.py::TestShortCircuiting::test_process_request_not_cached[asgi] PASSED [ 55%]
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] PASSED [ 55%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw1] PASSED [ 56%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw2] PASSED [ 56%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[asgi-mw3] PASSED [ 56%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw0] PASSED [ 56%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw1] PASSED [ 56%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw2] PASSED [ 56%]
tests/test_middleware.py::TestCORSMiddlewareWithAnotherMiddleware::test_api_initialization_with_cors_enabled_and_middleware_param[wsgi-mw3] PASSED [ 56%]
tests/test_middleware.py::test_async_postfix_method_must_be_coroutine SKIPPED [ 56%]
tests/test_options.py::TestRequestOptions::test_option_defaults PASSED   [ 56%]
tests/test_options.py::TestRequestOptions::test_options_toggle[keep_blank_qs_values] PASSED [ 56%]
tests/test_options.py::TestRequestOptions::test_options_toggle[auto_parse_form_urlencoded] PASSED [ 56%]
tests/test_options.py::TestRequestOptions::test_options_toggle[auto_parse_qs_csv] PASSED [ 56%]
tests/test_options.py::TestRequestOptions::test_options_toggle[strip_url_path_trailing_slash] PASSED [ 56%]
tests/test_options.py::TestRequestOptions::test_incorrect_options PASSED [ 56%]
tests/test_python_version_requirements.py::test_asgi PASSED              [ 56%]
tests/test_query_params.py::TestQueryParams::test_none[simulate_request_get_query_params-asgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_none[simulate_request_get_query_params-wsgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_default[simulate_request_get_query_params-asgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_default[simulate_request_get_query_params-wsgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_get_query_params-asgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_get_query_params-wsgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_get_query_params-asgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_get_query_params-wsgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_get_query_params-asgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_get_query_params-wsgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_get_query_params-asgi] PASSED [ 56%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_get_query_params-wsgi] PASSED [ 56%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
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 [ 57%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_get_query_params-asgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_get_query_params-wsgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_get_query_params-asgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_get_query_params-wsgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_get_query_params-asgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_get_query_params-wsgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_get_query_params-asgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_get_query_params-wsgi] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_int] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_float] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_uuid] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_bool] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-asgi-get_param_as_list] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_int] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_float] PASSED [ 57%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_get_query_params-wsgi-get_param_as_uuid] PASSED [ 57%]
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 [ 58%]
tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_float[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_float[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_get_query_params-wsgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_get_query_params-asgi] PASSED [ 58%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_get_query_params-asgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_get_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_none[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%]
tests/test_query_params.py::TestQueryParams::test_none[simulate_request_post_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_default[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%]
tests/test_query_params.py::TestQueryParams::test_default[simulate_request_post_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%]
tests/test_query_params.py::TestQueryParams::test_blank[simulate_request_post_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%]
tests/test_query_params.py::TestQueryParams::test_simple[simulate_request_post_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 59%]
tests/test_query_params.py::TestQueryParams::test_percent_encoded[simulate_request_post_query_params-wsgi] PASSED [ 59%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_false[simulate_request_post_query_params-wsgi] PASSED [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_true[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_simple_true[simulate_request_post_query_params-wsgi] PASSED [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_false[simulate_request_post_query_params-asgi] SKIPPED [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_multiple_fields_false[simulate_request_post_query_params-wsgi] PASSED [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
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 [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_option_auto_parse_qs_csv_complex_false[simulate_request_post_query_params-wsgi] PASSED [ 60%]
tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_default_auto_parse_csv_behaviour[simulate_request_post_query_params-wsgi] PASSED [ 60%]
tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_bad_percentage[simulate_request_post_query_params-wsgi] PASSED [ 60%]
tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_allowed_names[simulate_request_post_query_params-wsgi] PASSED [ 60%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_int] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_float] SKIPPEDm_urlencoded) [ 60%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_uuid] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_bool] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-asgi-get_param_as_list] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_int] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_float] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_uuid] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_bool] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_required[simulate_request_post_query_params-wsgi-get_param_as_list] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_int[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_int[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_int_neg[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_float[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_float[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_float_neg[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_uuid[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_boolean[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_boolean_blank[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_list_type[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_list_type_blank[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_list_transformer[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_param_property[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_bool[simulate_request_post_query_params-wsgi] PASSED [ 61%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 61%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_int[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_multiple_keys_as_float[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_multiple_form_keys_as_list[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_missing_param[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_valid_with_format[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_store[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_date_invalid[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_missing_param[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_valid_with_format[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_store[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_datetime_invalid[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_valid[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_missing_param[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_store[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_dict_invalid[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_post_query_params-asgi] SKIPPEDm_urlencoded) [ 62%]
tests/test_query_params.py::TestQueryParams::test_has_param[simulate_request_post_query_params-wsgi] PASSED [ 62%]
tests/test_query_params.py::TestQueryParams::test_get_param_as_json_handler_json[asgi] PASSED [ 63%]
tests/test_query_params.py::TestQueryParams::test_get_param_as_json_handler_json[wsgi] PASSED [ 63%]
tests/test_query_params.py::TestQueryParams::test_get_param_as_json_no_handler_json[asgi] PASSED [ 63%]
tests/test_query_params.py::TestQueryParams::test_get_param_as_json_no_handler_json[wsgi] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-POST] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-PUT] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-PATCH] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-DELETE] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[asgi-OPTIONS] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-POST] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-PUT] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-PATCH] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-DELETE] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_expected[wsgi-OPTIONS] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[asgi-GET] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[asgi-HEAD] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[wsgi-GET] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_http_methods_body_not_expected[wsgi-HEAD] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_non_ascii[asgi] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_non_ascii[wsgi] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_empty_body[asgi] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_empty_body[wsgi] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_empty_body_no_content_length[asgi] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_empty_body_no_content_length[wsgi] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_explicitly_disable_auto_parse[asgi] SKIPPEDm_urlencoded) [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_explicitly_disable_auto_parse[wsgi] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParams::test_asgi_raises_error PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParamsDefaultBehavior::test_dont_auto_parse_by_default[True] PASSED [ 63%]
tests/test_query_params.py::TestPostQueryParamsDefaultBehavior::test_dont_auto_parse_by_default[False] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[asgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[asgi-POST-302 Found-/found] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[asgi-PUT-303 See Other-/see/other] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[asgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[asgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[wsgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 63%]
tests/test_redirects.py::TestRedirects::test_redirect[wsgi-POST-302 Found-/found] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect[wsgi-PUT-303 See Other-/see/other] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect[wsgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect[wsgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-POST-302 Found-/found] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-PUT-303 See Other-/see/other] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[asgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-GET-301 Moved Permanently-/moved/perm] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-POST-302 Found-/found] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-PUT-303 See Other-/see/other] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-DELETE-307 Temporary Redirect-/tmp/redirect] PASSED [ 64%]
tests/test_redirects.py::TestRedirects::test_redirect_with_headers[wsgi-HEAD-308 Permanent Redirect-/perm/redirect] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr_default[asgi] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr_default[wsgi] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr_non_default[asgi] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr_non_default[wsgi] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr_only[asgi] PASSED   [ 64%]
tests/test_request_access_route.py::test_remote_addr_only[wsgi] PASSED   [ 64%]
tests/test_request_access_route.py::test_rfc_forwarded[asgi] PASSED      [ 64%]
tests/test_request_access_route.py::test_rfc_forwarded[wsgi] PASSED      [ 64%]
tests/test_request_access_route.py::test_malformed_rfc_forwarded[asgi] PASSED [ 64%]
tests/test_request_access_route.py::test_malformed_rfc_forwarded[wsgi] PASSED [ 64%]
tests/test_request_access_route.py::test_x_forwarded_for[asgi-True] PASSED [ 64%]
tests/test_request_access_route.py::test_x_forwarded_for[asgi-False] PASSED [ 64%]
tests/test_request_access_route.py::test_x_forwarded_for[wsgi-True] PASSED [ 64%]
tests/test_request_access_route.py::test_x_forwarded_for[wsgi-False] PASSED [ 64%]
tests/test_request_access_route.py::test_x_real_ip[asgi] PASSED          [ 64%]
tests/test_request_access_route.py::test_x_real_ip[wsgi] PASSED          [ 64%]
tests/test_request_access_route.py::test_remote_addr[asgi-10.0.0.1] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr[asgi-98.245.211.177] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr[wsgi-10.0.0.1] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr[wsgi-98.245.211.177] PASSED [ 64%]
tests/test_request_access_route.py::test_remote_addr_missing PASSED      [ 64%]
tests/test_request_attrs.py::test_missing_qs PASSED                      [ 65%]
tests/test_request_attrs.py::test_app_missing PASSED                     [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_empty[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_empty[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_host[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_host[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_subdomain[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_subdomain[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_reconstruct_url[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_reconstruct_url[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[/hello_\u043f\u0440\u0438\u0432\u0435\u0442-True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[/hello_\u043f\u0440\u0438\u0432\u0435\u0442-False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[/test/%E5%BB%B6%E5%AE%89-True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[/test/%E5%BB%B6%E5%AE%89-False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[/test/%C3%A4%C3%B6%C3%BC%C3%9F%E2%82%AC-True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_nonlatin_path[/test/%C3%A4%C3%B6%C3%BC%C3%9F%E2%82%AC-False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_uri[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_uri[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_uri_https[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_uri_https[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_uri_http_1_0[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_uri_http_1_0[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_relative_uri[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_relative_uri[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_bogus[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_bogus[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_props[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_accepts_props[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_prefers[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_client_prefers[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_range[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_range[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_range_unit[True] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_range_unit[False] PASSED [ 65%]
tests/test_request_attrs.py::TestRequestAttributes::test_range_invalid[True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_range_invalid[False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_missing_attribute_header[True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_missing_attribute_header[False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_content_length[True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_content_length[False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_nan[True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_nan[False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_neg[True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_bogus_content_length_neg[False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date[Date-date-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date[Date-date-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date[If-Modified-Since-if_modified_since-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date[If-Modified-Since-if_modified_since-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date[If-Unmodified-Since-if_unmodified_since-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date[If-Unmodified-Since-if_unmodified_since-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[Date-date-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[Date-date-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[If-Modified-Since-if_modified_since-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[If-Modified-Since-if_modified_since-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[If-Unmodified-Since-if_unmodified_since-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_invalid[If-Unmodified-Since-if_unmodified_since-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[date-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[date-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[if_modified_since-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[if_modified_since-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[if_unmodified_since-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_date_missing[if_unmodified_since-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Accept-x-falcon-accept-*/*-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Accept-x-falcon-accept-*/*-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Authorization-HMAC_SHA1 c590afa9bb59191ffab30f223791e82d3fd3e3af-auth-None-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Authorization-HMAC_SHA1 c590afa9bb59191ffab30f223791e82d3fd3e3af-auth-None-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Content-Type-text/plain-content_type-None-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Content-Type-text/plain-content_type-None-False] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Expect-100-continue-expect-None-True] PASSED [ 66%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Expect-100-continue-expect-None-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[If-Range-Wed, 21 Oct 2015 07:28:00 GMT-if_range-None-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[If-Range-Wed, 21 Oct 2015 07:28:00 GMT-if_range-None-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[User-Agent-testing/3.0-user_agent-falcon-client/3.1.3-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[User-Agent-testing/3.0-user_agent-falcon-client/3.1.3-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Referer-https://www.google.com/-referer-None-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_attribute_headers[Referer-https://www.google.com/-referer-None-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_method[True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_method[False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_empty_path[True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_empty_path[False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_content_type_method[True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_content_type_method[False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_content_length_method[True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_content_length_method[False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[1.0-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[1.0-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[1.1-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[1.1-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[2-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_port_explicit[2-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[1.0-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[1.0-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[1.1-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[1.1-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[2-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_https[2-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.0-True-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.0-True-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.0-False-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.0-False-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.1-True-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.1-True-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.1-False-True] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[1.1-False-False] PASSED [ 67%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[2-True-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[2-True-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[2-False-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_scheme_http[2-False-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[1.0-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[1.0-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[1.1-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[1.1-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[2-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_default_port[2-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[1.0-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[1.0-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[1.1-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[1.1-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[2-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_nondefault_port[2-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[1.0-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[1.0-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[1.1-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[1.1-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[2-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_netloc_from_env[2-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_app_present[True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_app_present[False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_app_blank[True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_app_blank[False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match--None-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match--None-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- -None-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- -None-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-   -None-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-   -None-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-\t-None-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-\t-None-False] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- \t-None-True] PASSED [ 68%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- \t-None-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-,-None-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-,-None-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-,,-None-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-,,-None-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-,, -None-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-,, -None-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-, , -None-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-, , -None-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-*-expected_value9-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-*-expected_value9-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-W/"67ab43"-expected_value10-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-W/"67ab43"-expected_value10-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-w/"67ab43"-expected_value11-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-w/"67ab43"-expected_value11-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- w/"67ab43"-expected_value12-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- w/"67ab43"-expected_value12-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-w/"67ab43" -expected_value13-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-w/"67ab43" -expected_value13-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-w/"67ab43 " -expected_value14-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-w/"67ab43 " -expected_value14-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-"67ab43"-expected_value15-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-"67ab43"-expected_value15-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- "67ab43"-expected_value16-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- "67ab43"-expected_value16-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- "67ab43" -expected_value17-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match- "67ab43" -expected_value17-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-"67ab43" -expected_value18-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-"67ab43" -expected_value18-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-" 67ab43" -expected_value19-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-" 67ab43" -expected_value19-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-67ab43"-expected_value20-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-67ab43"-expected_value20-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-"67ab43-expected_value21-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-"67ab43-expected_value21-False] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-67ab43-expected_value22-True] PASSED [ 69%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-67ab43-expected_value22-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-67ab43 -expected_value23-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-67ab43 -expected_value23-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-  67ab43 -expected_value24-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-  67ab43 -expected_value24-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-  67ab43-expected_value25-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-  67ab43-expected_value25-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-Match-if_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match--None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match--None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- -None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- -None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-   -None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-   -None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-\t-None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-\t-None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- \t-None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- \t-None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-,-None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-,-None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-,,-None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-,,-None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-,, -None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-,, -None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-, , -None-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-, , -None-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-*-expected_value9-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-*-expected_value9-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-W/"67ab43"-expected_value10-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-W/"67ab43"-expected_value10-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-w/"67ab43"-expected_value11-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-w/"67ab43"-expected_value11-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- w/"67ab43"-expected_value12-True] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- w/"67ab43"-expected_value12-False] PASSED [ 70%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-w/"67ab43" -expected_value13-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-w/"67ab43" -expected_value13-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-w/"67ab43 " -expected_value14-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-w/"67ab43 " -expected_value14-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-"67ab43"-expected_value15-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-"67ab43"-expected_value15-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- "67ab43"-expected_value16-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- "67ab43"-expected_value16-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- "67ab43" -expected_value17-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match- "67ab43" -expected_value17-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-"67ab43" -expected_value18-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-"67ab43" -expected_value18-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-" 67ab43" -expected_value19-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-" 67ab43" -expected_value19-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-67ab43"-expected_value20-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-67ab43"-expected_value20-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-"67ab43-expected_value21-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-"67ab43-expected_value21-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-67ab43-expected_value22-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-67ab43-expected_value22-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-67ab43 -expected_value23-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-67ab43 -expected_value23-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-  67ab43 -expected_value24-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-  67ab43 -expected_value24-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-  67ab43-expected_value25-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-  67ab43-expected_value25-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag[If-None-Match-if_none_match-W/"67ab43", "54ed21", junk"F9,22", junk "41, 7F", unquoted, w/"22, 41, 7F", "", W/""-expected_value26-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_is_missing[True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_is_missing[False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[-True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[-False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[ -True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[ -False] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[  -True] PASSED [ 71%]
tests/test_request_attrs.py::TestRequestAttributes::test_etag_parsing_helper[  -False] PASSED [ 72%]
tests/test_request_body.py::TestRequestBody::test_empty_body PASSED      [ 72%]
tests/test_request_body.py::TestRequestBody::test_tiny_body PASSED       [ 72%]
tests/test_request_body.py::TestRequestBody::test_tiny_body_overflow PASSED [ 72%]
tests/test_request_body.py::TestRequestBody::test_read_body PASSED       [ 72%]
tests/test_request_body.py::TestRequestBody::test_bounded_stream_property_empty_body PASSED [ 72%]
tests/test_request_body.py::TestRequestBody::test_body_stream_wrapper PASSED [ 72%]
tests/test_request_body.py::TestRequestBody::test_request_repr PASSED    [ 72%]
tests/test_request_context.py::TestRequestContext::test_default_request_context PASSED [ 72%]
tests/test_request_context.py::TestRequestContext::test_custom_request_context PASSED [ 72%]
tests/test_request_context.py::TestRequestContext::test_custom_request_context_failure PASSED [ 72%]
tests/test_request_context.py::TestRequestContext::test_custom_request_context_request_access PASSED [ 72%]
tests/test_request_forwarded.py::test_no_forwarded_headers[asgi] PASSED  [ 72%]
tests/test_request_forwarded.py::test_no_forwarded_headers[wsgi] PASSED  [ 72%]
tests/test_request_forwarded.py::test_no_forwarded_headers_with_port[asgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_no_forwarded_headers_with_port[wsgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_x_forwarded_host[asgi] PASSED      [ 72%]
tests/test_request_forwarded.py::test_x_forwarded_host[wsgi] PASSED      [ 72%]
tests/test_request_forwarded.py::test_x_forwarded_host_with_port[asgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_x_forwarded_host_with_port[wsgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_x_forwarded_proto[asgi] PASSED     [ 72%]
tests/test_request_forwarded.py::test_x_forwarded_proto[wsgi] PASSED     [ 72%]
tests/test_request_forwarded.py::test_forwarded_host[asgi] PASSED        [ 72%]
tests/test_request_forwarded.py::test_forwarded_host[wsgi] PASSED        [ 72%]
tests/test_request_forwarded.py::test_forwarded_invalid[asgi] PASSED     [ 72%]
tests/test_request_forwarded.py::test_forwarded_invalid[wsgi] PASSED     [ 72%]
tests/test_request_forwarded.py::test_forwarded_multiple_params[asgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_forwarded_multiple_params[wsgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_forwarded_missing_first_hop_host[asgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_forwarded_missing_first_hop_host[wsgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_forwarded_quote_escaping[asgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_forwarded_quote_escaping[wsgi] PASSED [ 72%]
tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by="-None] PASSED [ 72%]
tests/test_request_forwarded.py::test_escape_malformed_requests[asgi-for=1.2.3.4;by=4\\.3.2.1thing=blah-4] PASSED [ 72%]
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 [ 72%]
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 [ 73%]
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 [ 73%]
tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by="-None] PASSED [ 73%]
tests/test_request_forwarded.py::test_escape_malformed_requests[wsgi-for=1.2.3.4;by=4\\.3.2.1thing=blah-4] PASSED [ 73%]
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 [ 73%]
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 [ 73%]
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 [ 73%]
tests/test_request_media.py::test_json[asgi-None] PASSED                 [ 73%]
tests/test_request_media.py::test_json[asgi-*/*] PASSED                  [ 73%]
tests/test_request_media.py::test_json[asgi-application/json] PASSED     [ 73%]
tests/test_request_media.py::test_json[asgi-application/json; charset=utf-8] PASSED [ 73%]
tests/test_request_media.py::test_json[wsgi-None] PASSED                 [ 73%]
tests/test_request_media.py::test_json[wsgi-*/*] PASSED                  [ 73%]
tests/test_request_media.py::test_json[wsgi-application/json] PASSED     [ 73%]
tests/test_request_media.py::test_json[wsgi-application/json; charset=utf-8] PASSED [ 73%]
tests/test_request_media.py::test_msgpack[asgi-application/msgpack] PASSED [ 73%]
tests/test_request_media.py::test_msgpack[asgi-application/msgpack; charset=utf-8] PASSED [ 73%]
tests/test_request_media.py::test_msgpack[asgi-application/x-msgpack] PASSED [ 73%]
tests/test_request_media.py::test_msgpack[wsgi-application/msgpack] PASSED [ 73%]
tests/test_request_media.py::test_msgpack[wsgi-application/msgpack; charset=utf-8] PASSED [ 73%]
tests/test_request_media.py::test_msgpack[wsgi-application/x-msgpack] PASSED [ 73%]
tests/test_request_media.py::test_unknown_media_type[asgi-nope/json] PASSED [ 73%]
tests/test_request_media.py::test_unknown_media_type[wsgi-nope/json] PASSED [ 73%]
tests/test_request_media.py::test_empty_body[asgi-application/json] PASSED [ 73%]
tests/test_request_media.py::test_empty_body[asgi-application/msgpack] PASSED [ 73%]
tests/test_request_media.py::test_empty_body[wsgi-application/json] PASSED [ 73%]
tests/test_request_media.py::test_empty_body[wsgi-application/msgpack] PASSED [ 73%]
tests/test_request_media.py::test_invalid_json[asgi] PASSED              [ 73%]
tests/test_request_media.py::test_invalid_json[wsgi] PASSED              [ 73%]
tests/test_request_media.py::test_invalid_msgpack[asgi] PASSED           [ 73%]
tests/test_request_media.py::test_invalid_msgpack[wsgi] PASSED           [ 73%]
tests/test_request_media.py::test_complete_consumption[asgi] PASSED      [ 73%]
tests/test_request_media.py::test_complete_consumption[wsgi] PASSED      [ 73%]
tests/test_request_media.py::test_empty_json_media[asgi-False] PASSED    [ 73%]
tests/test_request_media.py::test_empty_json_media[asgi-0] PASSED        [ 73%]
tests/test_request_media.py::test_empty_json_media[asgi-0.0] PASSED      [ 73%]
tests/test_request_media.py::test_empty_json_media[asgi-] PASSED         [ 74%]
tests/test_request_media.py::test_empty_json_media[asgi-payload4] PASSED [ 74%]
tests/test_request_media.py::test_empty_json_media[asgi-payload5] PASSED [ 74%]
tests/test_request_media.py::test_empty_json_media[wsgi-False] PASSED    [ 74%]
tests/test_request_media.py::test_empty_json_media[wsgi-0] PASSED        [ 74%]
tests/test_request_media.py::test_empty_json_media[wsgi-0.0] PASSED      [ 74%]
tests/test_request_media.py::test_empty_json_media[wsgi-] PASSED         [ 74%]
tests/test_request_media.py::test_empty_json_media[wsgi-payload4] PASSED [ 74%]
tests/test_request_media.py::test_empty_json_media[wsgi-payload5] PASSED [ 74%]
tests/test_request_media.py::test_null_json_media[asgi] PASSED           [ 74%]
tests/test_request_media.py::test_null_json_media[wsgi] PASSED           [ 74%]
tests/test_request_media.py::test_fallback[asgi] PASSED                  [ 74%]
tests/test_request_media.py::test_fallback[wsgi] PASSED                  [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[asgi-True-True] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[asgi-True-False] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[asgi-False-True] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[asgi-False-False] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-True-True] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-True-False] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-False-True] PASSED [ 74%]
tests/test_request_media.py::test_fallback_not_for_error_body[wsgi-False-False] PASSED [ 74%]
tests/test_request_media.py::test_fallback_does_not_override_media_default[asgi] PASSED [ 74%]
tests/test_request_media.py::test_fallback_does_not_override_media_default[wsgi] PASSED [ 74%]
tests/test_request_media.py::test_repeated_error[asgi-{] PASSED          [ 74%]
tests/test_request_media.py::test_repeated_error[asgi-] PASSED           [ 74%]
tests/test_request_media.py::test_repeated_error[wsgi-{] PASSED          [ 74%]
tests/test_request_media.py::test_repeated_error[wsgi-] PASSED           [ 74%]
tests/test_request_media.py::test_error_after_first_default[asgi] PASSED [ 74%]
tests/test_request_media.py::test_error_after_first_default[wsgi] PASSED [ 74%]
tests/test_response.py::test_response_set_content_type_set[True] PASSED  [ 74%]
tests/test_response.py::test_response_set_content_type_set[False] PASSED [ 74%]
tests/test_response.py::test_response_set_content_type_not_set[True] PASSED [ 74%]
tests/test_response.py::test_response_set_content_type_not_set[False] PASSED [ 74%]
tests/test_response.py::test_response_get_headers[True] PASSED           [ 74%]
tests/test_response.py::test_response_get_headers[False] PASSED          [ 74%]
tests/test_response.py::test_response_attempt_to_set_read_only_headers[True] PASSED [ 75%]
tests/test_response.py::test_response_attempt_to_set_read_only_headers[False] PASSED [ 75%]
tests/test_response.py::test_response_removed_stream_len[True] PASSED    [ 75%]
tests/test_response.py::test_response_removed_stream_len[False] PASSED   [ 75%]
tests/test_response.py::test_response_option_mimetype_init PASSED        [ 75%]
tests/test_response_body.py::test_append_body[asgi] PASSED               [ 75%]
tests/test_response_body.py::test_append_body[wsgi] PASSED               [ 75%]
tests/test_response_body.py::test_response_repr[asgi] PASSED             [ 75%]
tests/test_response_body.py::test_response_repr[wsgi] PASSED             [ 75%]
tests/test_response_body.py::test_content_length_set_on_head_with_no_body[asgi] PASSED [ 75%]
tests/test_response_body.py::test_content_length_set_on_head_with_no_body[wsgi] PASSED [ 75%]
tests/test_response_body.py::test_content_length_not_set_when_streaming_response[asgi-GET] PASSED [ 75%]
tests/test_response_body.py::test_content_length_not_set_when_streaming_response[asgi-HEAD] PASSED [ 75%]
tests/test_response_body.py::test_content_length_not_set_when_streaming_response[wsgi-GET] PASSED [ 75%]
tests/test_response_body.py::test_content_length_not_set_when_streaming_response[wsgi-HEAD] PASSED [ 75%]
tests/test_response_body.py::test_unsupported_response_content_type[asgi] PASSED [ 75%]
tests/test_response_body.py::test_unsupported_response_content_type[wsgi] PASSED [ 75%]
tests/test_response_body.py::test_response_body_rendition_error[asgi] PASSED [ 75%]
tests/test_response_body.py::test_response_body_rendition_error[wsgi] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_default_response_context[True] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_default_response_context[False] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_custom_response_context[True] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_custom_response_context[False] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_custom_response_context_failure[True] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_custom_response_context_failure[False] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_custom_response_context_factory[True] PASSED [ 75%]
tests/test_response_context.py::TestResponseContext::test_custom_response_context_factory[False] PASSED [ 75%]
tests/test_response_media.py::test_json[*/*] PASSED                      [ 75%]
tests/test_response_media.py::test_json[application/json] PASSED         [ 75%]
tests/test_response_media.py::test_json[application/json; charset=utf-8] PASSED [ 75%]
tests/test_response_media.py::test_non_ascii_json_serialization[] PASSED [ 75%]
tests/test_response_media.py::test_non_ascii_json_serialization[I am a \u1d0a\ua731\u1d0f\u0274 string.] PASSED [ 75%]
tests/test_response_media.py::test_non_ascii_json_serialization[document2] PASSED [ 75%]
tests/test_response_media.py::test_non_ascii_json_serialization[document3] PASSED [ 75%]
tests/test_response_media.py::test_non_ascii_json_serialization[document4] PASSED [ 75%]
tests/test_response_media.py::test_msgpack[application/msgpack] PASSED   [ 76%]
tests/test_response_media.py::test_msgpack[application/msgpack; charset=utf-8] PASSED [ 76%]
tests/test_response_media.py::test_msgpack[application/x-msgpack] PASSED [ 76%]
tests/test_response_media.py::test_unknown_media_type PASSED             [ 76%]
tests/test_response_media.py::test_use_cached_media PASSED               [ 76%]
tests/test_response_media.py::test_default_media_type PASSED             [ 76%]
tests/test_response_media.py::test_mimeparse_edgecases PASSED            [ 76%]
tests/test_response_media.py::TestRenderBodyPrecedence::test_text PASSED [ 76%]
tests/test_response_media.py::TestRenderBodyPrecedence::test_body PASSED [ 76%]
tests/test_response_media.py::TestRenderBodyPrecedence::test_data PASSED [ 76%]
tests/test_response_media.py::TestRenderBodyPrecedence::test_media PASSED [ 76%]
tests/test_response_media.py::test_media_rendered_cached PASSED          [ 76%]
tests/test_sink_and_static.py::test_sink_before_static_route[asgi] PASSED [ 76%]
tests/test_sink_and_static.py::test_sink_before_static_route[wsgi] PASSED [ 76%]
tests/test_sink_and_static.py::test_sink_after_static_route[asgi] PASSED [ 76%]
tests/test_sink_and_static.py::test_sink_after_static_route[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_single_default_pattern[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_single_default_pattern[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_single_simple_pattern[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_single_simple_pattern[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_single_compiled_pattern[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_single_compiled_pattern[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_named_groups[asgi] PASSED  [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_named_groups[wsgi] PASSED  [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_multiple_patterns[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_multiple_patterns[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_with_route[asgi] PASSED    [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_with_route[wsgi] PASSED    [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_route_precedence[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_route_precedence[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_id[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_id[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_both_id[asgi] PASSED [ 76%]
tests/test_sinks.py::TestDefaultRouting::test_route_precedence_with_both_id[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestSinkMethodCompatibility::test_add_async_sink[asgi] PASSED [ 76%]
tests/test_sinks.py::TestSinkMethodCompatibility::test_add_async_sink[wsgi] PASSED [ 76%]
tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink[asgi] PASSED [ 77%]
tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink[wsgi] PASSED [ 77%]
tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink_with_wrapping[asgi] PASSED [ 77%]
tests/test_sinks.py::TestSinkMethodCompatibility::test_add_sync_sink_with_wrapping[wsgi] PASSED [ 77%]
tests/test_slots.py::TestSlots::test_slots_request[asgi] PASSED          [ 77%]
tests/test_slots.py::TestSlots::test_slots_request[wsgi] PASSED          [ 77%]
tests/test_slots.py::TestSlots::test_slots_response[asgi] PASSED         [ 77%]
tests/test_slots.py::TestSlots::test_slots_response[wsgi] PASSED         [ 77%]
tests/test_static.py::test_bad_path[asgi-/static] PASSED                 [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/] PASSED                [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.] PASSED               [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/..] PASSED              [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/../.] PASSED            [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.././etc/passwd] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/../etc/passwd] PASSED   [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/css/../../secret] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/css/../../etc/passwd] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/./../etc/passwd] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/css/../.\\056/etc/passwd] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/./\\056./etc/passwd] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/\\056\\056/etc/passwd] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static//test.css] PASSED       [ 77%]
tests/test_static.py::test_bad_path[asgi-/static//COM10] PASSED          [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/path//test.css] PASSED  [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/path///test.css] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/path////test.css] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/path/foo//test.css] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.\x00ssh/authorized_keys] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.\x1fssh/authorized_keys] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.\x80ssh/authorized_keys] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.\x9fssh/authorized_keys] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/~/.ssh/authorized_keys] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key?] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key>foo] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key|foo] PASSED [ 77%]
tests/test_static.py::test_bad_path[asgi-/static/.ssh/authorized_key<foo] PASSED [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/something:something] PASSED [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/thing*.sql] PASSED      [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/'thing'.sql] PASSED     [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/"thing".sql] PASSED     [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/something.] PASSED      [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/something..] PASSED     [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/something ] PASSED      [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/ something 0] PASSED    [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/ something 1] PASSED    [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/something\t] PASSED     [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/\tsomething] PASSED     [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttx] PASSED [ 78%]
tests/test_static.py::test_bad_path[asgi-/static/\ufffdsomething] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static] PASSED                 [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/] PASSED                [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/.] PASSED               [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/..] PASSED              [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/../.] PASSED            [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/.././etc/passwd] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/../etc/passwd] PASSED   [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/css/../../secret] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/css/../../etc/passwd] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/./../etc/passwd] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/css/../.\\056/etc/passwd] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/./\\056./etc/passwd] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/\\056\\056/etc/passwd] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static//test.css] PASSED       [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static//COM10] PASSED          [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/path//test.css] PASSED  [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/path///test.css] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/path////test.css] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/path/foo//test.css] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/.\x00ssh/authorized_keys] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/.\x1fssh/authorized_keys] PASSED [ 78%]
tests/test_static.py::test_bad_path[wsgi-/static/.\x80ssh/authorized_keys] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/.\x9fssh/authorized_keys] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/~/.ssh/authorized_keys] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/.ssh/authorized_key?] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/.ssh/authorized_key>foo] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/.ssh/authorized_key|foo] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/.ssh/authorized_key<foo] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/something:something] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/thing*.sql] PASSED      [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/'thing'.sql] PASSED     [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/"thing".sql] PASSED     [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/something.] PASSED      [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/something..] PASSED     [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/something ] PASSED      [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/ something 0] PASSED    [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/ something 1] PASSED    [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/something\t] PASSED     [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/\tsomething] PASSED     [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttx] PASSED [ 79%]
tests/test_static.py::test_bad_path[wsgi-/static/\ufffdsomething] PASSED [ 79%]
tests/test_static.py::test_invalid_args[asgi-static-/var/www/statics] PASSED [ 79%]
tests/test_static.py::test_invalid_args[asgi-/static-./var/www/statics] PASSED [ 79%]
tests/test_static.py::test_invalid_args[asgi-/static-statics] PASSED     [ 79%]
tests/test_static.py::test_invalid_args[asgi-/static-../statics] PASSED  [ 79%]
tests/test_static.py::test_invalid_args[wsgi-static-/var/www/statics] PASSED [ 79%]
tests/test_static.py::test_invalid_args[wsgi-/static-./var/www/statics] PASSED [ 79%]
tests/test_static.py::test_invalid_args[wsgi-/static-statics] PASSED     [ 79%]
tests/test_static.py::test_invalid_args[wsgi-/static-../statics] PASSED  [ 79%]
tests/test_static.py::test_invalid_args_fallback_filename[asgi-not-existing-file] PASSED [ 79%]
tests/test_static.py::test_invalid_args_fallback_filename[asgi-.] PASSED [ 79%]
tests/test_static.py::test_invalid_args_fallback_filename[asgi-/tmp] PASSED [ 79%]
tests/test_static.py::test_invalid_args_fallback_filename[wsgi-not-existing-file] PASSED [ 79%]
tests/test_static.py::test_invalid_args_fallback_filename[wsgi-.] PASSED [ 79%]
tests/test_static.py::test_invalid_args_fallback_filename[wsgi-/tmp] PASSED [ 79%]
tests/test_static.py::test_good_path[asgi-/static/-/css/test.css-/css/test.css-text/css] PASSED [ 79%]
tests/test_static.py::test_good_path[asgi-/static-/css/test.css-/css/test.css-text/css] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/static-/tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt-/tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt-application/octet-stream] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/static-/.test.css-/.test.css-text/css] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/some/download/-/report.pdf-/report.pdf-application/pdf] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/some/download/-/Fancy Report.pdf-/Fancy Report.pdf-application/pdf] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/some/download-/report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/some/download-/foo/../report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/some/download-/foo/../bar/../report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[asgi-/some/download-/foo/bar/../../report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/static/-/css/test.css-/css/test.css-text/css] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/static-/css/test.css-/css/test.css-text/css] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/static-/tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt-/tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt-application/octet-stream] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/static-/.test.css-/.test.css-text/css] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/some/download/-/report.pdf-/report.pdf-application/pdf] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/some/download/-/Fancy Report.pdf-/Fancy Report.pdf-application/pdf] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/some/download-/report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/some/download-/foo/../report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/some/download-/foo/../bar/../report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_good_path[wsgi-/some/download-/foo/bar/../../report.zip-/report.zip-application/zip] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-bytes=1-3-bytes 1-3/16-123] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-bytes=-3-bytes 13-15/16-def] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-bytes=8--bytes 8-15/16-89abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-words=1-3-None-0123456789abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-bytes=15-30-bytes 15-15/16-f] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-bytes=0-30-bytes 0-15/16-0123456789abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-True-bytes=-30-bytes 0-15/16-0123456789abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-bytes=1-3-bytes 1-3/16-123] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-bytes=-3-bytes 13-15/16-def] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-bytes=8--bytes 8-15/16-89abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-words=1-3-None-0123456789abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-bytes=15-30-bytes 15-15/16-f] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-bytes=0-30-bytes 0-15/16-0123456789abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[asgi-False-bytes=-30-bytes 0-15/16-0123456789abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[wsgi-True-bytes=1-3-bytes 1-3/16-123] PASSED [ 80%]
tests/test_static.py::test_range_requests[wsgi-True-bytes=-3-bytes 13-15/16-def] PASSED [ 80%]
tests/test_static.py::test_range_requests[wsgi-True-bytes=8--bytes 8-15/16-89abcdef] PASSED [ 80%]
tests/test_static.py::test_range_requests[wsgi-True-words=1-3-None-0123456789abcdef] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-True-bytes=15-30-bytes 15-15/16-f] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-True-bytes=0-30-bytes 0-15/16-0123456789abcdef] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-True-bytes=-30-bytes 0-15/16-0123456789abcdef] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-bytes=1-3-bytes 1-3/16-123] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-bytes=-3-bytes 13-15/16-def] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-bytes=8--bytes 8-15/16-89abcdef] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-words=1-3-None-0123456789abcdef] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-bytes=15-30-bytes 15-15/16-f] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-bytes=0-30-bytes 0-15/16-0123456789abcdef] PASSED [ 81%]
tests/test_static.py::test_range_requests[wsgi-False-bytes=-30-bytes 0-15/16-0123456789abcdef] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-bytes=1-3] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-bytes=-3] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-bytes=8-] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-words=1-3] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-bytes=15-30] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-bytes=0-30] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[asgi-bytes=-30] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-bytes=1-3] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-bytes=-3] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-bytes=8-] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-words=1-3] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-bytes=15-30] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-bytes=0-30] PASSED [ 81%]
tests/test_static.py::test_range_request_zero_length[wsgi-bytes=-30] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-1-3-400 Bad Request] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=0-0,-1-400 Bad Request] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=8-4-400 Bad Request] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=1--3-400 Bad Request] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=--0-400 Bad Request] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=100-200-416 Range Not Satisfiable] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=100--416 Range Not Satisfiable] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=16-20-416 Range Not Satisfiable] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[asgi-bytes=16--416 Range Not Satisfiable] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[wsgi-1-3-400 Bad Request] PASSED [ 81%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=0-0,-1-400 Bad Request] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=8-4-400 Bad Request] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=1--3-400 Bad Request] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=--0-400 Bad Request] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=100-200-416 Range Not Satisfiable] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=100--416 Range Not Satisfiable] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=16-20-416 Range Not Satisfiable] PASSED [ 82%]
tests/test_static.py::test_bad_range_requests[wsgi-bytes=16--416 Range Not Satisfiable] PASSED [ 82%]
tests/test_static.py::test_pathlib_path[asgi] PASSED                     [ 82%]
tests/test_static.py::test_pathlib_path[wsgi] PASSED                     [ 82%]
tests/test_static.py::test_lifo[asgi] PASSED                             [ 82%]
tests/test_static.py::test_lifo[wsgi] PASSED                             [ 82%]
tests/test_static.py::test_lifo_negative[asgi] PASSED                    [ 82%]
tests/test_static.py::test_lifo_negative[wsgi] PASSED                    [ 82%]
tests/test_static.py::test_downloadable[asgi] PASSED                     [ 82%]
tests/test_static.py::test_downloadable[wsgi] PASSED                     [ 82%]
tests/test_static.py::test_downloadable_not_found[asgi] PASSED           [ 82%]
tests/test_static.py::test_downloadable_not_found[wsgi] PASSED           [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True--default-default-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True-other-default.html-default.html-text/html] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True-zip-default.zip-default.zip-application/zip] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True-index2-index-index2-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True-absolute-/foo/bar/index-/foo/bar/index-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True-docs/notes/test.txt-index.html-index.html-text/html] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-True-index.html_files/test.txt-index.html-index.html_files/test.txt-text/plain] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False--default-default-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False-other-default.html-default.html-text/html] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False-zip-default.zip-default.zip-application/zip] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False-index2-index-index2-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False-absolute-/foo/bar/index-/foo/bar/index-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False-docs/notes/test.txt-index.html-index.html-text/html] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[asgi-False-index.html_files/test.txt-index.html-index.html_files/test.txt-text/plain] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[wsgi-True--default-default-application/octet-stream] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[wsgi-True-other-default.html-default.html-text/html] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[wsgi-True-zip-default.zip-default.zip-application/zip] PASSED [ 82%]
tests/test_static.py::test_fallback_filename[wsgi-True-index2-index-index2-application/octet-stream] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-True-absolute-/foo/bar/index-/foo/bar/index-application/octet-stream] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-True-docs/notes/test.txt-index.html-index.html-text/html] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-True-index.html_files/test.txt-index.html-index.html_files/test.txt-text/plain] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False--default-default-application/octet-stream] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False-other-default.html-default.html-text/html] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False-zip-default.zip-default.zip-application/zip] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False-index2-index-index2-application/octet-stream] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False-absolute-/foo/bar/index-/foo/bar/index-application/octet-stream] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False-docs/notes/test.txt-index.html-index.html-text/html] PASSED [ 83%]
tests/test_static.py::test_fallback_filename[wsgi-False-index.html_files/test.txt-index.html-index.html_files/test.txt-text/plain] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/index-index.html-index-index-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/index-index.html-index-index-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi--index.html-index.html-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi--index.html-index.html-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/-index.html-index.html-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/-index.html-index.html-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/other-index.html-index.html-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/other-index.html-index.html-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/other-index.raise-None-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[asgi-/other-index.raise-None-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/index-index.html-index-index-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/index-index.html-index-index-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi--index.html-index.html-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi--index.html-index.html-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/-index.html-index.html-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/-index.html-index.html-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/other-index.html-index.html-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/other-index.html-index.html-None-False] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/other-index.raise-None-None-True] PASSED [ 83%]
tests/test_static.py::test_e2e_fallback_filename[wsgi-/other-index.raise-None-None-False] PASSED [ 83%]
tests/test_static.py::test_match[asgi-None-/static-False] PASSED         [ 83%]
tests/test_static.py::test_match[asgi-None-/static/-True] PASSED         [ 83%]
tests/test_static.py::test_match[asgi-None-/staticfoo-False] PASSED      [ 83%]
tests/test_static.py::test_match[asgi-None-/static/foo-True] PASSED      [ 83%]
tests/test_static.py::test_match[asgi-index2-/static-True] PASSED        [ 84%]
tests/test_static.py::test_match[asgi-index2-/static/-True] PASSED       [ 84%]
tests/test_static.py::test_match[asgi-index2-/staticfoo-False] PASSED    [ 84%]
tests/test_static.py::test_match[asgi-index2-/static/foo-True] PASSED    [ 84%]
tests/test_static.py::test_match[wsgi-None-/static-False] PASSED         [ 84%]
tests/test_static.py::test_match[wsgi-None-/static/-True] PASSED         [ 84%]
tests/test_static.py::test_match[wsgi-None-/staticfoo-False] PASSED      [ 84%]
tests/test_static.py::test_match[wsgi-None-/static/foo-True] PASSED      [ 84%]
tests/test_static.py::test_match[wsgi-index2-/static-True] PASSED        [ 84%]
tests/test_static.py::test_match[wsgi-index2-/static/-True] PASSED       [ 84%]
tests/test_static.py::test_match[wsgi-index2-/staticfoo-False] PASSED    [ 84%]
tests/test_static.py::test_match[wsgi-index2-/static/foo-True] PASSED    [ 84%]
tests/test_static.py::test_filesystem_traversal_fuse[asgi] PASSED        [ 84%]
tests/test_static.py::test_filesystem_traversal_fuse[wsgi] PASSED        [ 84%]
tests/test_static.py::test_bounded_file_wrapper PASSED                   [ 84%]
tests/test_static.py::test_file_closed[asgi] PASSED                      [ 84%]
tests/test_static.py::test_file_closed[wsgi] PASSED                      [ 84%]
tests/test_testing.py::test_testing_client_handles_wsgi_generator_app PASSED [ 84%]
tests/test_testing.py::test_closed_wsgi_iterable[items0] PASSED          [ 84%]
tests/test_testing.py::test_closed_wsgi_iterable[items1] PASSED          [ 84%]
tests/test_testing.py::test_closed_wsgi_iterable[items2] PASSED          [ 84%]
tests/test_testing.py::test_closed_wsgi_iterable[items3] PASSED          [ 84%]
tests/test_testing.py::test_simulate_request_http_version[1-True] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[1.0-True] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[1.1-True] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[2-True] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[2.0-True] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[0-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[1.2-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[2.1-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[3-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[3.1-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[11-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_http_version[22-False] PASSED [ 84%]
tests/test_testing.py::test_simulate_request_content_type PASSED         [ 84%]
tests/test_testing.py::test_create_environ_cookies[cookies0] PASSED      [ 85%]
tests/test_testing.py::test_create_environ_cookies[cookies1] PASSED      [ 85%]
tests/test_testing.py::test_create_environ_cookies_options_method PASSED [ 85%]
tests/test_testing.py::test_cookies_jar PASSED                           [ 85%]
tests/test_testing.py::test_create_environ_default_ua PASSED             [ 85%]
tests/test_testing.py::test_create_environ_default_ua_override PASSED    [ 85%]
tests/test_testing.py::test_create_environ_preserve_raw_uri PASSED       [ 85%]
tests/test_testing.py::test_missing_header_is_none PASSED                [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-DELETE] PASSED  [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-GET] PASSED     [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-HEAD] PASSED    [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-LOCK] PASSED    [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-OPTIONS] PASSED [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-PATCH] PASSED   [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-POST] PASSED    [ 85%]
tests/test_testing.py::test_client_simulate_aliases[asgi-PUT] PASSED     [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-DELETE] PASSED  [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-GET] PASSED     [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-HEAD] PASSED    [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-LOCK] PASSED    [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-OPTIONS] PASSED [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-PATCH] PASSED   [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-POST] PASSED    [ 85%]
tests/test_testing.py::test_client_simulate_aliases[wsgi-PUT] PASSED     [ 85%]
tests/test_things_example.py::test_things_resource_response PASSED       [ 85%]
tests/test_uri_converters.py::test_int_converter[123-None-None-None-123] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[01-None-None-None-1] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[001-None-None-None-1] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[0-None-None-None-0] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[00-None-None-None-0] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[1-1-None-None-1] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[12-1-None-None-None0] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[12-2-None-None-12_0] PASSED [ 85%]
tests/test_uri_converters.py::test_int_converter[1-1-1-1-1] PASSED       [ 85%]
tests/test_uri_converters.py::test_int_converter[1-1-1-None-1] PASSED    [ 85%]
tests/test_uri_converters.py::test_int_converter[1-1-1-2-1] PASSED       [ 86%]
tests/test_uri_converters.py::test_int_converter[1-1-2-None-None] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter[1-1-2-1-None] PASSED    [ 86%]
tests/test_uri_converters.py::test_int_converter[2-1-1-2-2] PASSED       [ 86%]
tests/test_uri_converters.py::test_int_converter[2-1-2-2-2] PASSED       [ 86%]
tests/test_uri_converters.py::test_int_converter[3-1-1-2-None] PASSED    [ 86%]
tests/test_uri_converters.py::test_int_converter[12-1-None-None-None1] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter[12-1-1-12-None] PASSED  [ 86%]
tests/test_uri_converters.py::test_int_converter[12-2-None-None-12_1] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter[12-2-1-12-12] PASSED    [ 86%]
tests/test_uri_converters.py::test_int_converter[12-2-12-12-12] PASSED   [ 86%]
tests/test_uri_converters.py::test_int_converter[12-2-13-12-None] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter[12-2-13-13-None] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[0x0F] PASSED  [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[something] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[] PASSED      [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[ ] PASSED     [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[123 ] PASSED  [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[123\t] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[123\n] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[123\r] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[123\x0b] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[123\x0c] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[ 123] PASSED  [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[\t123] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[\n123] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[\r123] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[\x0b123] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_malformed[\x0c123] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_invalid_config[0] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_invalid_config[-1] PASSED [ 86%]
tests/test_uri_converters.py::test_int_converter_invalid_config[-10] PASSED [ 86%]
tests/test_uri_converters.py::test_datetime_converter[07-03-17-%m-%d-%y-expected0] PASSED [ 86%]
tests/test_uri_converters.py::test_datetime_converter[07-03-17 -%m-%d-%y -expected1] PASSED [ 86%]
tests/test_uri_converters.py::test_datetime_converter[2017-07-03T14:30:01Z-%Y-%m-%dT%H:%M:%SZ-expected2] PASSED [ 86%]
tests/test_uri_converters.py::test_datetime_converter[2017-07-03T14:30:01-%Y-%m-%dT%H:%M:%S-expected3] PASSED [ 87%]
tests/test_uri_converters.py::test_datetime_converter[2017_19-%Y_%H-expected4] PASSED [ 87%]
tests/test_uri_converters.py::test_datetime_converter[2017-07-03T14:30:01-%Y-%m-%dT%H:%M:%SZ-None] PASSED [ 87%]
tests/test_uri_converters.py::test_datetime_converter[07-03-17 -%m-%d-%y-None] PASSED [ 87%]
tests/test_uri_converters.py::test_datetime_converter[ 07-03-17-%m-%d-%y-None] PASSED [ 87%]
tests/test_uri_converters.py::test_datetime_converter[07 -03-17-%m-%d-%y-None] PASSED [ 87%]
tests/test_uri_converters.py::test_datetime_converter_default_format PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc643-2b67-4e8d-a882-e5bb09229623-expected0] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc6432b67-4e8d-a882-e5bb09229623-expected1] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc6432b674e8da882e5bb09229623-expected2] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[urn:uuid:cc4fc643-2b67-4e8d-a882-e5bb09229623-expected3] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[urn:uuid:cc4fc6432b674e8da882e5bb09229623-expected4] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[ -None] PASSED         [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc643-2b67-4e8d-a882-e5bb09229623 -None] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[ cc4fc643-2b67-4e8d-a882-e5bb09229623-None] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc643-2b67-4e8d-a882-e5bb0922962-None] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[c-None] PASSED         [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc643-2b67-4e8d-a882-e5bb0922962g-None] PASSED [ 87%]
tests/test_uri_converters.py::test_uuid_converter[cc4fc643_2b67_4e8d_a882_e5bb09229623-None] PASSED [ 87%]
tests/test_uri_templates.py::test_root_path[asgi] PASSED                 [ 87%]
tests/test_uri_templates.py::test_root_path[wsgi] PASSED                 [ 87%]
tests/test_uri_templates.py::test_no_vars[asgi] PASSED                   [ 87%]
tests/test_uri_templates.py::test_no_vars[wsgi] PASSED                   [ 87%]
tests/test_uri_templates.py::test_special_chars[asgi] PASSED             [ 87%]
tests/test_uri_templates.py::test_special_chars[wsgi] PASSED             [ 87%]
tests/test_uri_templates.py::test_single[asgi-id] PASSED                 [ 87%]
tests/test_uri_templates.py::test_single[asgi-id123] PASSED              [ 87%]
tests/test_uri_templates.py::test_single[asgi-widget_id] PASSED          [ 87%]
tests/test_uri_templates.py::test_single[wsgi-id] PASSED                 [ 87%]
tests/test_uri_templates.py::test_single[wsgi-id123] PASSED              [ 87%]
tests/test_uri_templates.py::test_single[wsgi-widget_id] PASSED          [ 87%]
tests/test_uri_templates.py::test_single_path_segment[asgi] PASSED       [ 87%]
tests/test_uri_templates.py::test_single_path_segment[wsgi] PASSED       [ 87%]
tests/test_uri_templates.py::test_int_converter[asgi-/{id:int}] PASSED   [ 87%]
tests/test_uri_templates.py::test_int_converter[asgi-/{id:int(3)}] PASSED [ 87%]
tests/test_uri_templates.py::test_int_converter[asgi-/{id:int(min=123)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter[asgi-/{id:int(min=123, max=123)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter[wsgi-/{id:int}] PASSED   [ 88%]
tests/test_uri_templates.py::test_int_converter[wsgi-/{id:int(3)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter[wsgi-/{id:int(min=123)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter[wsgi-/{id:int(min=123, max=123)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter_rejections[asgi-/{id:int(2)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter_rejections[asgi-/{id:int(min=124)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter_rejections[asgi-/{id:int(num_digits=3, max=100)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter_rejections[wsgi-/{id:int(2)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter_rejections[wsgi-/{id:int(min=124)}] PASSED [ 88%]
tests/test_uri_templates.py::test_int_converter_rejections[wsgi-/{id:int(num_digits=3, max=100)}] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[asgi-/{start_year:int}-to-{timestamp:dt}-/1961-to-1969-07-21T02:56:00Z-dt_expected0] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[asgi-/{start_year:int}-to-{timestamp:dt("%Y-%m-%d")}-/1961-to-1969-07-21-dt_expected1] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[asgi-/{start_year:int}/{timestamp:dt("%Y-%m-%d %H:%M")}-/1961/1969-07-21 14:30-dt_expected2] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[asgi-/{start_year:int}-to-{timestamp:dt("%Y-%m")}-/1961-to-1969-07-21-None] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[wsgi-/{start_year:int}-to-{timestamp:dt}-/1961-to-1969-07-21T02:56:00Z-dt_expected0] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[wsgi-/{start_year:int}-to-{timestamp:dt("%Y-%m-%d")}-/1961-to-1969-07-21-dt_expected1] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[wsgi-/{start_year:int}/{timestamp:dt("%Y-%m-%d %H:%M")}-/1961/1969-07-21 14:30-dt_expected2] PASSED [ 88%]
tests/test_uri_templates.py::test_datetime_converter[wsgi-/{start_year:int}-to-{timestamp:dt("%Y-%m")}-/1961-to-1969-07-21-None] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[asgi-/widgets/{widget_id:uuid}-/widgets/210afa29-ba65-4d93-a9fb-6fcfd03479af-expected0] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[asgi-/widgets/{widget_id:uuid}/orders-/widgets/210afa29ba654d93a9fb6fcfd03479af/orders-expected1] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[asgi-/versions/diff/{left:uuid()}...{right:uuid()}-/versions/diff/210afa29-ba65-4d93-a9fb-6fcfd03479af...1a676b70-fb6a-4bf9-b1a4-ba152a6daf7e-expected2] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[asgi-/versions/diff/{left:uuid}...{right:uuid()}-/versions/diff/210afa29-ba65-4d93-a9fb-6fcfd03479af...1a676b70-fb6a-4bf9-b1a4-ba152a6daf7e-expected3] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[asgi-/versions/diff/{left:uuid()}...{right:uuid}-/versions/diff/210afa29-ba65-4d93-a9fb-6fcfd03479af...1a676b70-fb6a-4bf9-b1a4-ba152a6daf7e-expected4] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[asgi-/widgets/{widget_id:uuid}/orders-/widgets/210afa29ba654d93a9fb6fcfd03479a/orders-None] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[wsgi-/widgets/{widget_id:uuid}-/widgets/210afa29-ba65-4d93-a9fb-6fcfd03479af-expected0] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[wsgi-/widgets/{widget_id:uuid}/orders-/widgets/210afa29ba654d93a9fb6fcfd03479af/orders-expected1] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[wsgi-/versions/diff/{left:uuid()}...{right:uuid()}-/versions/diff/210afa29-ba65-4d93-a9fb-6fcfd03479af...1a676b70-fb6a-4bf9-b1a4-ba152a6daf7e-expected2] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[wsgi-/versions/diff/{left:uuid}...{right:uuid()}-/versions/diff/210afa29-ba65-4d93-a9fb-6fcfd03479af...1a676b70-fb6a-4bf9-b1a4-ba152a6daf7e-expected3] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[wsgi-/versions/diff/{left:uuid()}...{right:uuid}-/versions/diff/210afa29-ba65-4d93-a9fb-6fcfd03479af...1a676b70-fb6a-4bf9-b1a4-ba152a6daf7e-expected4] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter[wsgi-/widgets/{widget_id:uuid}/orders-/widgets/210afa29ba654d93a9fb6fcfd03479a/orders-None] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter_complex_segment[asgi] PASSED [ 88%]
tests/test_uri_templates.py::test_uuid_converter_complex_segment[wsgi] PASSED [ 88%]
tests/test_uri_templates.py::test_converter_custom[asgi-/{food:spam}-/something-expected0] PASSED [ 88%]
tests/test_uri_templates.py::test_converter_custom[asgi-/{food:spam(")")}:{food_too:spam("()")}-/bacon:eggs-expected1] PASSED [ 88%]
tests/test_uri_templates.py::test_converter_custom[asgi-/({food:spam()}){food_too:spam("()")}-/(bacon)eggs-expected2] PASSED [ 89%]
tests/test_uri_templates.py::test_converter_custom[wsgi-/{food:spam}-/something-expected0] PASSED [ 89%]
tests/test_uri_templates.py::test_converter_custom[wsgi-/{food:spam(")")}:{food_too:spam("()")}-/bacon:eggs-expected1] PASSED [ 89%]
tests/test_uri_templates.py::test_converter_custom[wsgi-/({food:spam()}){food_too:spam("()")}-/(bacon)eggs-expected2] PASSED [ 89%]
tests/test_uri_templates.py::test_single_trailing_slash[asgi] PASSED     [ 89%]
tests/test_uri_templates.py::test_single_trailing_slash[wsgi] PASSED     [ 89%]
tests/test_uri_templates.py::test_multiple[asgi] PASSED                  [ 89%]
tests/test_uri_templates.py::test_multiple[wsgi] PASSED                  [ 89%]
tests/test_uri_templates.py::test_empty_path_component[asgi-//] PASSED   [ 89%]
tests/test_uri_templates.py::test_empty_path_component[asgi-//begin] PASSED [ 89%]
tests/test_uri_templates.py::test_empty_path_component[asgi-/end//] PASSED [ 89%]
tests/test_uri_templates.py::test_empty_path_component[asgi-/in//side] PASSED [ 89%]
tests/test_uri_templates.py::test_empty_path_component[wsgi-//] PASSED   [ 89%]
tests/test_uri_templates.py::test_empty_path_component[wsgi-//begin] PASSED [ 89%]
tests/test_uri_templates.py::test_empty_path_component[wsgi-/end//] PASSED [ 89%]
tests/test_uri_templates.py::test_empty_path_component[wsgi-/in//side] PASSED [ 89%]
tests/test_uri_templates.py::test_relative_path[asgi-] PASSED            [ 89%]
tests/test_uri_templates.py::test_relative_path[asgi-no] PASSED          [ 89%]
tests/test_uri_templates.py::test_relative_path[asgi-no/leading_slash] PASSED [ 89%]
tests/test_uri_templates.py::test_relative_path[wsgi-] PASSED            [ 89%]
tests/test_uri_templates.py::test_relative_path[wsgi-no] PASSED          [ 89%]
tests/test_uri_templates.py::test_relative_path[wsgi-no/leading_slash] PASSED [ 89%]
tests/test_uri_templates.py::test_same_level_complex_var[asgi-True] PASSED [ 89%]
tests/test_uri_templates.py::test_same_level_complex_var[asgi-False] PASSED [ 89%]
tests/test_uri_templates.py::test_same_level_complex_var[wsgi-True] PASSED [ 89%]
tests/test_uri_templates.py::test_same_level_complex_var[wsgi-False] PASSED [ 89%]
tests/test_uri_templates.py::test_adding_suffix_routes[asgi] PASSED      [ 89%]
tests/test_uri_templates.py::test_adding_suffix_routes[wsgi] PASSED      [ 89%]
tests/test_uri_templates.py::test_with_and_without_trailing_slash[asgi-True] PASSED [ 89%]
tests/test_uri_templates.py::test_with_and_without_trailing_slash[asgi-False] PASSED [ 89%]
tests/test_uri_templates.py::test_with_and_without_trailing_slash[wsgi-True] PASSED [ 89%]
tests/test_uri_templates.py::test_with_and_without_trailing_slash[wsgi-False] PASSED [ 89%]
tests/test_uri_templates.py::test_custom_error_on_suffix_route_not_found[asgi] PASSED [ 89%]
tests/test_uri_templates.py::test_custom_error_on_suffix_route_not_found[wsgi] PASSED [ 89%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_string_type_required[42] PASSED [ 89%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_string_type_required[App] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_must_start_with_slash[this] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_must_start_with_slash[this/that] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_may_not_contain_double_slash[//] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_may_not_contain_double_slash[a//] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_may_not_contain_double_slash[//b] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_may_not_contain_double_slash[a//b] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_may_not_contain_double_slash[a/b//] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_template_may_not_contain_double_slash[a/b//c] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_root PASSED   [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_no_fields[/hello] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_no_fields[/hello/world] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_no_fields[/hi/there/how/are/you] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_one_field PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_one_field_with_digits PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_one_field_with_prefixed_digits PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_two_fields[] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_two_fields[/] PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_three_fields PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_malformed_field PASSED [ 90%]
tests/test_uri_templates_legacy.py::TestUriTemplates::test_deprecated_warning PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_deprecated_decorator PASSED   [ 90%]
tests/test_utils.py::TestFalconUtils::test_http_now PASSED               [ 90%]
tests/test_utils.py::TestFalconUtils::test_dt_to_http PASSED             [ 90%]
tests/test_utils.py::TestFalconUtils::test_http_date_to_dt PASSED        [ 90%]
tests/test_utils.py::TestFalconUtils::test_pack_query_params_none PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_pack_query_params_one PASSED  [ 90%]
tests/test_utils.py::TestFalconUtils::test_pack_query_params_several PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params0-True] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params0-False] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params1-True] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params1-False] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params2-True] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params2-False] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params3-True] PASSED [ 90%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params3-False] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params4-True] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_to_query_str_encoding[params4-False] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_encode PASSED             [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_encode_double PASSED      [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_encode_value PASSED       [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode[bytearray] PASSED  [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode[join_list] PASSED  [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_coding[bytearray-ab%2Gcd-ab%2Gcd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_coding[bytearray-ab%2Fcd: 100% coverage-ab/cd: 100% coverage] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_coding[bytearray-%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s-%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_coding[join_list-ab%2Gcd-ab%2Gcd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_coding[join_list-ab%2Fcd: 100% coverage-ab/cd: 100% coverage] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_coding[join_list-%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s-%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[bytearray-+%80- \ufffd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[bytearray-+++%FF+++-   \ufffd   ] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[bytearray-%fc%83%bf%bf%bf%bf-\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[bytearray-%ed%ae%80%ed%b0%80-\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[join_list-+%80- \ufffd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[join_list-+++%FF+++-   \ufffd   ] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[join_list-%fc%83%bf%bf%bf%bf-\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_bad_unicode[join_list-%ed%ae%80%ed%b0%80-\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_unquote_plus[bytearray] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_uri_decode_unquote_plus[join_list] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_prop_uri_encode_models_stdlib_quote PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_prop_uri_encode_value_models_stdlib_quote_safe_tilde PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_prop_uri_decode_models_stdlib_unquote_plus PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_unquote_string PASSED         [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string PASSED     [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[-True-expected0] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[-False-expected1] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[flag1&&&&&flag2&&&-True-expected2] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[flag1&&&&&flag2&&&-False-expected3] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[malformed=%FG%1%Hi%%%a-False-expected4] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[=-False-expected5] PASSED [ 91%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[==-False-expected6] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[%==+==&&&&&&&&&%%==+=&&&&&&%0g%=%=-False-expected7] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[%=&%%=&&%%%=-False-expected8] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[%=&%%=&&%%%=-True-expected9] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[+=&%+=&&%++=-True-expected10] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[=x=&=x=+1=x=&%=x-False-expected11] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[%=+&%=&+%+=&%+&=%&=+%&+==%+&=%&+=+%&=+&%=&%+=&+%+%=&+%&=+=%&+=&%+&%=+&=%&%=+&%+=&=%+&=+%&+%=&+=%-False-expected12] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[%%%\x00%\x00==\x00\x00==-True-expected13] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_query_string_edge_cases[spade=\u2660&spade=\u2660-False-expected14] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_parse_host PASSED             [ 92%]
tests/test_utils.py::TestFalconUtils::test_get_http_status_warns PASSED  [ 92%]
tests/test_utils.py::TestFalconUtils::test_get_http_status PASSED        [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[703-703 Explosion] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[404-404 Not Found] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[404.9-404 Not Found] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[200 OK-200 OK0] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[307 Temporary Redirect-307 Temporary Redirect] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[404 Not Found-404 Not Found] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[123-123 Unknown] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[123 Wow Such Status-123 Wow Such Status0] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[123 Wow Such Status-123 Wow Such Status1] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[200 OK-200 OK1] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[200-200 OK] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[307-307 Temporary Redirect] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[401-401 Unauthorized] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[410-410 Gone] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[429-429 Too Many Requests] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status[500-500 Internal Server Error] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[0] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[13] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[99] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[1000] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[1337.01] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[-99] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[-404.3_0] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[-404] PASSED [ 92%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[-404.3_1] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[Successful] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[Failed] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_code_to_http_status_value_error[None] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[505-505_0] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[712-712_0] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[712-712_1] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[404 Not Found-404_0] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[712 NoSQL-712] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[404 Not Found-404_1] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[123 Wow Such Status-123_0] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[505-505_1] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code[123 Wow Such Status-123_1] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[0] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[ ] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[1] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[12] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[99] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[catsup] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[2] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_http_status_to_code_neg[5.2] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_etag_dumps_to_header_format PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_etag_strong_vs_weak_comparison PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[.-_] PASSED   [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[..-_.] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[hello.txt-hello.txt] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[\u0104\u017euolai \u017ealiuos.jpeg-A_z_uolai_z_aliuos.jpeg] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[/etc/shadow-_etc_shadow] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[. \u2b05 a dot-____a_dot] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename[C:\\Windows\\kernel32.dll-C__Windows_kernel32.dll] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_secure_filename_empty_value PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii--True] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii-/-True] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii-/api-True] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii-/data/items/something?query=apples%20and%20oranges-True] PASSED [ 93%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii-/food?item=\xf0\x9f\x8d\x94-False] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii-\x00\x00\x7f\x00\x00\x7f\x00-True] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[isascii-\x00\x00\x7f\x00\x00\x80\x00-False] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii--True] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii-/-True] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii-/api-True] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii-/data/items/something?query=apples%20and%20oranges-True] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii-/food?item=\xf0\x9f\x8d\x94-False] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii-\x00\x00\x7f\x00\x00\x7f\x00-True] PASSED [ 94%]
tests/test_utils.py::TestFalconUtils::test_misc_isascii[_isascii-\x00\x00\x7f\x00\x00\x80\x00-False] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-CONNECT] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-DELETE] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-GET] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-HEAD] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-OPTIONS] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-PATCH] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-POST] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-PUT] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-https-TRACE] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-CONNECT] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-DELETE] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-GET] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-HEAD] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-OPTIONS] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-PATCH] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-POST] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-PUT] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[asgi-http-TRACE] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-CONNECT] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-DELETE] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-GET] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-HEAD] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-OPTIONS] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-PATCH] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-POST] PASSED [ 94%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-PUT] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-https-TRACE] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-CONNECT] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-DELETE] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-GET] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-HEAD] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-OPTIONS] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-PATCH] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-POST] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-PUT] PASSED [ 95%]
tests/test_utils.py::test_simulate_request_protocol[wsgi-http-TRACE] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_get] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_head] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_post] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_put] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_options] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_patch] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[asgi-simulate_delete] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_get] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_head] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_post] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_put] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_options] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_patch] PASSED [ 95%]
tests/test_utils.py::test_simulate_free_functions[wsgi-simulate_delete] PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_path_escape_chars_in_create_environ PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_no_prefix_allowed_for_query_strings_in_create_environ PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_plus_in_path_in_create_environ PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_none_header_value_in_create_environ PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_decode_empty_result[asgi] PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_decode_empty_result[wsgi] PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_httpnow_alias_for_backwards_compat PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_default_headers[asgi] PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_default_headers[wsgi] PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_default_headers_with_override[asgi] PASSED [ 95%]
tests/test_utils.py::TestFalconTestingUtils::test_default_headers_with_override[wsgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_status[asgi] PASSED    [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_status[wsgi] PASSED    [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_wsgi_iterable_not_closeable PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_path_must_start_with_slash[asgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_path_must_start_with_slash[wsgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_cached_text_in_result[asgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_cached_text_in_result[wsgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simple_resource_body_json_xor[SimpleTestResource] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simple_resource_body_json_xor[SimpleTestResourceAsync] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_query_string[asgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_query_string[wsgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_query_string_no_question[asgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_query_string_no_question[wsgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_query_string_in_path[asgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_query_string_in_path[wsgi] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-16.0625] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-123456789] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-True] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-I am a \u1d0a\ua731\u1d0f\u0274 string.] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-document5] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-document6] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[asgi-document7] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-16.0625] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-123456789] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-True] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-I am a \u1d0a\ua731\u1d0f\u0274 string.] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-document5] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-document6] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_json_body[wsgi-document7] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[asgi-None] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[asgi-127.0.0.1] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[asgi-8.8.8.8] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[asgi-104.24.101.85] PASSED [ 96%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[asgi-2606:4700:30::6818:6455] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[wsgi-None] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[wsgi-127.0.0.1] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[wsgi-8.8.8.8] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[wsgi-104.24.101.85] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_remote_addr[wsgi-2606:4700:30::6818:6455] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_hostname[asgi] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_hostname[wsgi] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_with_environ_extras[extras0-expected_headers0] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_with_environ_extras[extras1-expected_headers1] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_override_method_with_extras[asgi] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_override_method_with_extras[wsgi] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type[application/json] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type[application/json; charset=UTF-8] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type[application/yaml] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[asgi-application/json] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[asgi-application/json; charset=UTF-8] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[asgi-application/yaml] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[asgi-application/msgpack] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[asgi-application/x-www-form-urlencoded] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[wsgi-application/json] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[wsgi-application/json; charset=UTF-8] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[wsgi-application/yaml] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[wsgi-application/msgpack] PASSED [ 97%]
tests/test_utils.py::TestFalconTestingUtils::test_simulate_content_type_extra_handler[wsgi-application/x-www-form-urlencoded] PASSED [ 97%]
tests/test_utils.py::TestNoApiClass::test_something PASSED               [ 97%]
tests/test_utils.py::TestSetupApi::test_something PASSED                 [ 97%]
tests/test_utils.py::test_get_argnames PASSED                            [ 97%]
tests/test_utils.py::TestContextType::test_attributes[CustomContextType] PASSED [ 97%]
tests/test_utils.py::TestContextType::test_attributes[Context] PASSED    [ 97%]
tests/test_utils.py::TestContextType::test_items_from_attributes[CustomContextType] PASSED [ 97%]
tests/test_utils.py::TestContextType::test_items_from_attributes[Context] PASSED [ 97%]
tests/test_utils.py::TestContextType::test_attributes_from_items[CustomContextType] PASSED [ 97%]
tests/test_utils.py::TestContextType::test_attributes_from_items[Context] PASSED [ 97%]
tests/test_utils.py::TestContextType::test_dict_interface[CustomContextType-CustomContextType] PASSED [ 97%]
tests/test_utils.py::TestContextType::test_dict_interface[Context-Context] PASSED [ 98%]
tests/test_utils.py::TestContextType::test_keys_and_values[CustomContextType] PASSED [ 98%]
tests/test_utils.py::TestContextType::test_keys_and_values[Context] PASSED [ 98%]
tests/test_utils.py::TestDeprecatedArgs::test_method PASSED              [ 98%]
tests/test_utils.py::TestDeprecatedArgs::test_function PASSED            [ 98%]
tests/test_utils.py::test_json_deprecation PASSED                        [ 98%]
tests/test_validators.py::test_req_schema_validation_success[asgi] SKIPPED [ 98%]
tests/test_validators.py::test_req_schema_validation_success[wsgi] SKIPPED [ 98%]
tests/test_validators.py::test_req_schema_validation_failure[asgi-HTTPBadRequest] SKIPPED [ 98%]
tests/test_validators.py::test_req_schema_validation_failure[asgi-MediaValidationError] SKIPPED [ 98%]
tests/test_validators.py::test_req_schema_validation_failure[wsgi-HTTPBadRequest] SKIPPED [ 98%]
tests/test_validators.py::test_req_schema_validation_failure[wsgi-MediaValidationError] SKIPPED [ 98%]
tests/test_validators.py::test_resp_schema_validation_success[asgi] SKIPPED [ 98%]
tests/test_validators.py::test_resp_schema_validation_success[wsgi] SKIPPED [ 98%]
tests/test_validators.py::test_resp_schema_validation_failure[asgi] SKIPPED [ 98%]
tests/test_validators.py::test_resp_schema_validation_failure[wsgi] SKIPPED [ 98%]
tests/test_validators.py::test_both_schemas_validation_success[asgi] SKIPPED [ 98%]
tests/test_validators.py::test_both_schemas_validation_success[wsgi] SKIPPED [ 98%]
tests/test_validators.py::test_both_schemas_validation_failure[asgi] SKIPPED [ 98%]
tests/test_validators.py::test_both_schemas_validation_failure[wsgi] SKIPPED [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_get PASSED                      [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_put PASSED                      [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_head_405 PASSED                 [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_post PASSED                     [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_post_invalid_content_length PASSED [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_post_read_bounded_stream PASSED [ 98%]
tests/test_wsgi.py::TestWSGIServer::test_post_read_bounded_stream_no_body PASSED [ 98%]
tests/test_wsgi_errors.py::TestWSGIError::test_responder_logged_bytestring PASSED [ 98%]
tests/test_wsgi_interface.py::TestWSGIInterface::test_srmock PASSED      [ 98%]
tests/test_wsgi_interface.py::TestWSGIInterface::test_pep3333 PASSED     [ 98%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get[gunicorn] PASSED    [ 98%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get[meinheld] SKIPPED   [ 98%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get[uvicorn] PASSED     [ 98%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get[uwsgi] SKIPPED      [ 98%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get[waitress] PASSED    [ 98%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get_deprecated[gunicorn] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get_deprecated[meinheld] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get_deprecated[uvicorn] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get_deprecated[uwsgi] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_get_deprecated[waitress] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_post_multipart_form[gunicorn] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_post_multipart_form[meinheld] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_post_multipart_form[uvicorn] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_post_multipart_form[uwsgi] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_post_multipart_form[waitress] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file[gunicorn] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file[meinheld] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file[uvicorn] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file[uwsgi] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file[waitress] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[gunicorn-7--hashlib] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[gunicorn-2-6-port] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[gunicorn-32-38-random] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[gunicorn--47-The content of this comment is part of a test.\n] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[meinheld-7--hashlib] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[meinheld-2-6-port] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[meinheld-32-38-random] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[meinheld--47-The content of this comment is part of a test.\n] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uvicorn-7--hashlib] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uvicorn-2-6-port] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uvicorn-32-38-random] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uvicorn--47-The content of this comment is part of a test.\n] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uwsgi-7--hashlib] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uwsgi-2-6-port] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uwsgi-32-38-random] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[uwsgi--47-The content of this comment is part of a test.\n] SKIPPED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[waitress-7--hashlib] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[waitress-2-6-port] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[waitress-32-38-random] PASSED [ 99%]
tests/test_wsgi_servers.py::TestWSGIServer::test_static_file_byte_range[waitress--47-The content of this comment is part of a test.\n] PASSED [ 99%]
tests/test_wsgiref_inputwrapper_with_size.py::TestWsgiRefInputWrapper::test_resources_can_read_request_stream_during_tests PASSED [100%]

=============================== warnings summary ===============================
test_dir/usr/lib/python3.12/site-packages/falcon/util/sync.py:229
  /home/buildozer/aports/testing/py3-falcon/src/falcon-3.1.3/test_dir/usr/lib/python3.12/site-packages/falcon/util/sync.py:229: DeprecationWarning: There is no current event loop
    loop = asyncio.get_event_loop_policy().get_event_loop()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========== 3373 passed, 153 skipped, 1 warning in 117.42s (0:01:57) ===========
>>> py3-falcon: Entering fakeroot...
>>> py3-falcon-pyc*: Running split function pyc...
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/media/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/media/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/media/validators/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/media/validators/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/nuts/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/model/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/model/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/tests/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/tests/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/controllers/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/nuts/nuts/controllers/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/queues/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/queues/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/dj/hello/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/hello/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/dj/hello/migrations/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/hello/migrations/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/dj/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/bench/dj/dj/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/bench/dj/dj/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/cmd/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/cmd/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/asgi/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/asgi/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/util/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/util/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/testing/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/testing/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/vendor/mimeparse/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/vendor/mimeparse/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/vendor/__pycache__' -> '/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon-pyc/usr/lib/python3.12/site-packages/falcon/vendor/__pycache__'
'/home/buildozer/aports/testing/py3-falcon/pkg/py3-falcon/usr/lib/python3.12/site-packages/falcon/routing/__pycache__' -> '/home/buildozer/aports/testing/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~3.12
>>> py3-falcon-pyc*: Package size: 1.4 MB
>>> py3-falcon-pyc*: Compressing data...
>>> py3-falcon-pyc*: Create checksum...
>>> py3-falcon-pyc*: Create py3-falcon-pyc-3.1.3-r0.apk
>>> py3-falcon*: Tracing dependencies...
	python3~3.12
	so:libc.musl-armv7.so.1
>>> py3-falcon*: Package size: 4.0 MB
>>> py3-falcon*: Compressing data...
>>> py3-falcon*: Create checksum...
>>> py3-falcon*: Create py3-falcon-3.1.3-r0.apk
>>> py3-falcon: Build complete at Mon, 27 May 2024 02:16:11 +0000 elapsed time 0h 5m 9s
>>> py3-falcon: Cleaning up srcdir
>>> py3-falcon: Cleaning up pkgdir
>>> py3-falcon: Uninstalling dependencies...
(1/174) Purging .makedepends-py3-falcon (20240527.021103)
(2/174) Purging py3-gpep517-pyc (16-r0)
(3/174) Purging py3-gpep517 (16-r0)
(4/174) Purging py3-installer-pyc (0.7.0-r2)
(5/174) Purging py3-installer (0.7.0-r2)
(6/174) Purging py3-wheel-pyc (0.42.0-r1)
(7/174) Purging py3-wheel (0.42.0-r1)
(8/174) Purging python3-dev (3.12.3-r1)
(9/174) Purging cython-pyc (3.0.10-r0)
(10/174) Purging cython (3.0.10-r0)
(11/174) Purging py3-coverage-pyc (7.5.1-r0)
(12/174) Purging py3-coverage (7.5.1-r0)
(13/174) Purging py3-pyaml-pyc (24.4.0-r0)
(14/174) Purging py3-pyaml (24.4.0-r0)
(15/174) Purging py3-yaml-pyc (6.0.1-r3)
(16/174) Purging py3-yaml (6.0.1-r3)
(17/174) Purging py3-pytest-asyncio-pyc (0.21.2-r0)
(18/174) Purging py3-pytest-asyncio (0.21.2-r0)
(19/174) Purging py3-pytest-pyc (8.2.1-r0)
(20/174) Purging py3-pytest (8.2.1-r0)
(21/174) Purging py3-iniconfig-pyc (2.0.0-r1)
(22/174) Purging py3-iniconfig (2.0.0-r1)
(23/174) Purging py3-pluggy-pyc (1.5.0-r0)
(24/174) Purging py3-pluggy (1.5.0-r0)
(25/174) Purging py3-py-pyc (1.11.0-r3)
(26/174) Purging py3-py (1.11.0-r3)
(27/174) Purging py3-aiofiles-pyc (23.2.1-r1)
(28/174) Purging py3-aiofiles (23.2.1-r1)
(29/174) Purging py3-httpx-pyc (0.27.0-r1)
(30/174) Purging py3-httpx (0.27.0-r1)
(31/174) Purging py3-httpcore-pyc (1.0.4-r1)
(32/174) Purging py3-httpcore (1.0.4-r1)
(33/174) Purging py3-anyio-pyc (4.3.0-r2)
(34/174) Purging py3-anyio (4.3.0-r2)
(35/174) Purging py3-sniffio-pyc (1.3.1-r1)
(36/174) Purging py3-sniffio (1.3.1-r1)
(37/174) Purging py3-curio-pyc (1.6-r2)
(38/174) Purging py3-curio (1.6-r2)
(39/174) Purging uvicorn-pyc (0.29.0-r1)
(40/174) Purging uvicorn (0.29.0-r1)
(41/174) Purging py3-click-pyc (8.1.7-r2)
(42/174) Purging py3-click (8.1.7-r2)
(43/174) Purging py3-h11-pyc (0.14.0-r4)
(44/174) Purging py3-h11 (0.14.0-r4)
(45/174) Purging py3-websockets-pyc (12.0-r2)
(46/174) Purging py3-websockets (12.0-r2)
(47/174) Purging py3-cbor2-pyc (5.6.1-r1)
(48/174) Purging py3-cbor2 (5.6.1-r1)
(49/174) Purging py3-msgpack-pyc (1.0.8-r1)
(50/174) Purging py3-msgpack (1.0.8-r1)
(51/174) Purging py3-mujson-pyc (1.4-r0)
(52/174) Purging py3-mujson (1.4-r0)
(53/174) Purging py3-ujson (5.9.0-r1)
(54/174) Purging py3-rapidjson (1.12-r1)
(55/174) Purging py3-orjson-pyc (3.10.1-r0)
(56/174) Purging py3-orjson (3.10.1-r0)
(57/174) Purging py3-gunicorn-pyc (21.2.0-r1)
(58/174) Purging py3-gunicorn (21.2.0-r1)
(59/174) Purging py3-daphne-pyc (4.1.2-r0)
(60/174) Purging py3-daphne (4.1.2-r0)
(61/174) Purging py3-autobahn-pyc (23.6.2-r1)
(62/174) Purging py3-autobahn (23.6.2-r1)
(63/174) Purging py3-txaio-pyc (23.1.1-r2)
(64/174) Purging py3-txaio (23.1.1-r2)
(65/174) Purging py3-twisted-pyc (22.10.0-r5)
(66/174) Purging py3-twisted (22.10.0-r5)
(67/174) Purging py3-zope-interface-pyc (6.0-r1)
(68/174) Purging py3-zope-interface (6.0-r1)
(69/174) Purging py3-constantly-pyc (23.10.4-r1)
(70/174) Purging py3-constantly (23.10.4-r1)
(71/174) Purging py3-incremental-pyc (22.10.0-r3)
(72/174) Purging py3-incremental (22.10.0-r3)
(73/174) Purging py3-automat-pyc (22.10.0-r3)
(74/174) Purging py3-automat (22.10.0-r3)
(75/174) Purging py3-six-pyc (1.16.0-r9)
(76/174) Purging py3-six (1.16.0-r9)
(77/174) Purging py3-hyperlink-pyc (21.0.0-r5)
(78/174) Purging py3-hyperlink (21.0.0-r5)
(79/174) Purging py3-typing-extensions-pyc (4.11.0-r1)
(80/174) Purging py3-typing-extensions (4.11.0-r1)
(81/174) Purging py3-pyhamcrest-pyc (2.1.0-r1)
(82/174) Purging py3-pyhamcrest (2.1.0-r1)
(83/174) Purging py3-service_identity-pyc (24.1.0-r1)
(84/174) Purging py3-service_identity (24.1.0-r1)
(85/174) Purging py3-asn1-modules-pyc (0.4.0-r0)
(86/174) Purging py3-asn1-modules (0.4.0-r0)
(87/174) Purging py3-asn1-pyc (0.6.0-r1)
(88/174) Purging py3-asn1 (0.6.0-r1)
(89/174) Purging py3-attrs-pyc (23.2.0-r1)
(90/174) Purging py3-attrs (23.2.0-r1)
(91/174) Purging py3-cryptography-pyc (42.0.7-r0)
(92/174) Purging py3-cryptography (42.0.7-r0)
(93/174) Purging py3-pyserial-pyc (3.5-r7)
(94/174) Purging py3-pyserial (3.5-r7)
(95/174) Purging py3-h2-pyc (4.1.0-r3)
(96/174) Purging py3-h2 (4.1.0-r3)
(97/174) Purging py3-hyperframe-pyc (6.0.1-r4)
(98/174) Purging py3-hyperframe (6.0.1-r4)
(99/174) Purging py3-hpack-pyc (4.0.0-r9)
(100/174) Purging py3-hpack (4.0.0-r9)
(101/174) Purging py3-sphinxcontrib-images-pyc (0.9.4-r4)
(102/174) Purging py3-sphinxcontrib-images (0.9.4-r4)
(103/174) Purging py3-sphinx-pyc (7.2.6-r1)
(104/174) Purging py3-sphinx (7.2.6-r1)
(105/174) Purging py3-babel-pyc (2.14.0-r2)
(106/174) Purging py3-babel (2.14.0-r2)
(107/174) Purging py3-tz-pyc (2024.1-r1)
(108/174) Purging py3-tz (2024.1-r1)
(109/174) Purging py3-docutils-pyc (0.20.1-r2)
(110/174) Purging py3-docutils (0.20.1-r2)
(111/174) Purging py3-imagesize-pyc (1.4.1-r4)
(112/174) Purging py3-imagesize (1.4.1-r4)
(113/174) Purging py3-jinja2-pyc (3.1.4-r0)
(114/174) Purging py3-jinja2 (3.1.4-r0)
(115/174) Purging py3-markupsafe-pyc (2.1.5-r1)
(116/174) Purging py3-markupsafe (2.1.5-r1)
(117/174) Purging py3-pygments-pyc (2.18.0-r0)
(118/174) Purging py3-pygments (2.18.0-r0)
(119/174) Purging py3-requests-pyc (2.32.2-r0)
(120/174) Purging py3-requests (2.32.2-r0)
(121/174) Purging py3-certifi-pyc (2024.2.2-r1)
(122/174) Purging py3-certifi (2024.2.2-r1)
(123/174) Purging py3-charset-normalizer-pyc (3.3.2-r1)
(124/174) Purging py3-charset-normalizer (3.3.2-r1)
(125/174) Purging py3-idna-pyc (3.7-r0)
(126/174) Purging py3-idna (3.7-r0)
(127/174) Purging py3-urllib3-pyc (1.26.18-r1)
(128/174) Purging py3-urllib3 (1.26.18-r1)
(129/174) Purging py3-snowballstemmer-pyc (2.2.0-r4)
(130/174) Purging py3-snowballstemmer (2.2.0-r4)
(131/174) Purging py3-alabaster-pyc (0.7.16-r1)
(132/174) Purging py3-alabaster (0.7.16-r1)
(133/174) Purging py3-sphinxcontrib-applehelp-pyc (1.0.4-r3)
(134/174) Purging py3-sphinxcontrib-applehelp (1.0.4-r3)
(135/174) Purging py3-sphinxcontrib-devhelp-pyc (1.0.5-r2)
(136/174) Purging py3-sphinxcontrib-devhelp (1.0.5-r2)
(137/174) Purging py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3)
(138/174) Purging py3-sphinxcontrib-htmlhelp (2.0.1-r3)
(139/174) Purging py3-sphinxcontrib-jsmath-pyc (1.0.1-r8)
(140/174) Purging py3-sphinxcontrib-jsmath (1.0.1-r8)
(141/174) Purging py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2)
(142/174) Purging py3-sphinxcontrib-serializinghtml (1.1.9-r2)
(143/174) Purging py3-sphinxcontrib-qthelp-pyc (1.0.6-r2)
(144/174) Purging py3-sphinxcontrib-qthelp (1.0.6-r2)
(145/174) Purging py3-setuptools-pyc (69.5.1-r0)
(146/174) Purging py3-setuptools (69.5.1-r0)
(147/174) Purging py3-packaging-pyc (24.0-r1)
(148/174) Purging py3-packaging (24.0-r1)
(149/174) Purging py3-parsing-pyc (3.1.2-r1)
(150/174) Purging py3-parsing (3.1.2-r1)
(151/174) Purging py3-pynacl-pyc (1.5.0-r5)
(152/174) Purging py3-pynacl (1.5.0-r5)
(153/174) Purging py3-cffi-pyc (1.16.0-r1)
(154/174) Purging py3-cffi (1.16.0-r1)
(155/174) Purging py3-cparser-pyc (2.22-r1)
(156/174) Purging py3-cparser (2.22-r1)
(157/174) Purging py3-asgiref-pyc (3.8.1-r1)
(158/174) Purging py3-asgiref (3.8.1-r1)
(159/174) Purging py3-waitress-openrc (3.0.0-r3)
(160/174) Purging py3-waitress-pyc (3.0.0-r3)
(161/174) Purging py3-waitress (3.0.0-r3)
(162/174) Purging python3-pyc (3.12.3-r1)
(163/174) Purging python3-pycache-pyc0 (3.12.3-r1)
(164/174) Purging pyc (3.12.3-r1)
(165/174) Purging python3 (3.12.3-r1)
(166/174) Purging gdbm (1.23-r1)
(167/174) Purging libbz2 (1.0.8-r6)
(168/174) Purging libffi (3.4.6-r0)
(169/174) Purging libpanelw (6.4_p20240420-r0)
(170/174) Purging mpdecimal (4.0.0-r0)
(171/174) Purging readline (8.2.10-r0)
(172/174) Purging sqlite-libs (3.46.0-r0)
(173/174) Purging xz-libs (5.6.1-r3)
(174/174) Purging yaml (0.2.5-r2)
Executing busybox-1.36.1-r28.trigger
OK: 270 MiB in 103 packages
>>> py3-falcon: Updating the testing/armv7 repository index...
>>> py3-falcon: Signing the index...