>>> py3-falcon: Building testing/py3-falcon 3.1.3-r0 (using abuild 3.13.0-r5) started Wed, 25 Sep 2024 14:15:15 +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/173) Installing libbz2 (1.0.8-r6) (2/173) Installing libffi (3.4.6-r0) (3/173) Installing gdbm (1.24-r0) (4/173) Installing xz-libs (5.6.2-r0) (5/173) Installing mpdecimal (4.0.0-r0) (6/173) Installing libpanelw (6.5_p20240601-r1) (7/173) Installing sqlite-libs (3.46.1-r0) (8/173) Installing python3 (3.12.6-r0) (9/173) Installing python3-pycache-pyc0 (3.12.6-r0) (10/173) Installing pyc (3.12.6-r0) (11/173) Installing py3-installer-pyc (0.7.0-r2) (12/173) Installing py3-gpep517-pyc (16-r0) (13/173) Installing python3-pyc (3.12.6-r0) (14/173) Installing py3-installer (0.7.0-r2) (15/173) Installing py3-gpep517 (16-r0) (16/173) Installing py3-parsing (3.1.4-r0) (17/173) Installing py3-parsing-pyc (3.1.4-r0) (18/173) Installing py3-packaging (24.1-r0) (19/173) Installing py3-packaging-pyc (24.1-r0) (20/173) Installing py3-setuptools (70.3.0-r0) (21/173) Installing py3-setuptools-pyc (70.3.0-r0) (22/173) Installing py3-wheel (0.43.0-r0) (23/173) Installing py3-wheel-pyc (0.43.0-r0) (24/173) Installing python3-dev (3.12.6-r0) (25/173) Installing cython (3.0.10-r0) (26/173) Installing cython-pyc (3.0.10-r0) (27/173) Installing py3-coverage (7.5.1-r0) (28/173) Installing py3-coverage-pyc (7.5.1-r0) (29/173) Installing py3-iniconfig (2.0.0-r1) (30/173) Installing py3-iniconfig-pyc (2.0.0-r1) (31/173) Installing py3-pluggy (1.5.0-r0) (32/173) Installing py3-pluggy-pyc (1.5.0-r0) (33/173) Installing py3-py (1.11.0-r4) (34/173) Installing py3-py-pyc (1.11.0-r4) (35/173) Installing py3-pytest (8.3.3-r0) (36/173) Installing py3-pytest-pyc (8.3.3-r0) (37/173) Installing yaml (0.2.5-r2) (38/173) Installing py3-yaml (6.0.2-r0) (39/173) Installing py3-yaml-pyc (6.0.2-r0) (40/173) Installing py3-pyaml (24.7.0-r0) (41/173) Installing py3-pyaml-pyc (24.7.0-r0) (42/173) Installing py3-certifi (2024.2.2-r1) (43/173) Installing py3-certifi-pyc (2024.2.2-r1) (44/173) Installing py3-charset-normalizer (3.3.2-r1) (45/173) Installing py3-charset-normalizer-pyc (3.3.2-r1) (46/173) Installing py3-idna (3.8-r0) (47/173) Installing py3-idna-pyc (3.8-r0) (48/173) Installing py3-urllib3 (1.26.18-r1) (49/173) Installing py3-urllib3-pyc (1.26.18-r1) (50/173) Installing py3-requests (2.32.3-r0) (51/173) Installing py3-requests-pyc (2.32.3-r0) (52/173) Installing py3-pytest-asyncio (0.24.0-r0) (53/173) Installing py3-pytest-asyncio-pyc (0.24.0-r0) (54/173) Installing py3-aiofiles (23.2.1-r1) (55/173) Installing py3-aiofiles-pyc (23.2.1-r1) (56/173) Installing py3-curio (1.6-r2) (57/173) Installing py3-curio-pyc (1.6-r2) (58/173) Installing py3-sniffio (1.3.1-r1) (59/173) Installing py3-sniffio-pyc (1.3.1-r1) (60/173) Installing py3-anyio (4.3.0-r2) (61/173) Installing py3-anyio-pyc (4.3.0-r2) (62/173) Installing py3-h11 (0.14.0-r4) (63/173) Installing py3-h11-pyc (0.14.0-r4) (64/173) Installing py3-httpcore (1.0.5-r0) (65/173) Installing py3-httpcore-pyc (1.0.5-r0) (66/173) Installing py3-httpx (0.27.2-r0) (67/173) Installing py3-httpx-pyc (0.27.2-r0) (68/173) Installing py3-asgiref (3.8.1-r1) (69/173) Installing py3-asgiref-pyc (3.8.1-r1) (70/173) Installing py3-click (8.1.7-r2) (71/173) Installing py3-click-pyc (8.1.7-r2) (72/173) Installing uvicorn (0.29.0-r1) (73/173) Installing uvicorn-pyc (0.29.0-r1) (74/173) Installing py3-websockets (13.1-r0) (75/173) Installing py3-websockets-pyc (13.1-r0) (76/173) Installing py3-cbor2 (5.6.1-r1) (77/173) Installing py3-cbor2-pyc (5.6.1-r1) (78/173) Installing py3-msgpack (1.0.8-r1) (79/173) Installing py3-msgpack-pyc (1.0.8-r1) (80/173) Installing py3-mujson (1.4-r0) (81/173) Installing py3-mujson-pyc (1.4-r0) (82/173) Installing py3-ujson (5.10.0-r0) (83/173) Installing py3-rapidjson (1.12-r1) (84/173) Installing py3-orjson (3.10.7-r0) (85/173) Installing py3-orjson-pyc (3.10.7-r0) (86/173) Installing py3-gunicorn (23.0.0-r0) (87/173) Installing py3-gunicorn-pyc (23.0.0-r0) (88/173) Installing py3-cparser (2.22-r1) (89/173) Installing py3-cparser-pyc (2.22-r1) (90/173) Installing py3-cffi (1.17.1-r1) (91/173) Installing py3-cffi-pyc (1.17.1-r1) (92/173) Installing py3-cryptography (43.0.1-r0) (93/173) Installing py3-cryptography-pyc (43.0.1-r0) (94/173) Installing py3-zope-interface (6.0-r1) (95/173) Installing py3-zope-interface-pyc (6.0-r1) (96/173) Installing py3-constantly (23.10.4-r1) (97/173) Installing py3-constantly-pyc (23.10.4-r1) (98/173) Installing py3-incremental (22.10.0-r3) (99/173) Installing py3-incremental-pyc (22.10.0-r3) (100/173) Installing py3-attrs (23.2.0-r1) (101/173) Installing py3-attrs-pyc (23.2.0-r1) (102/173) Installing py3-six (1.16.0-r9) (103/173) Installing py3-six-pyc (1.16.0-r9) (104/173) Installing py3-automat (22.10.0-r3) (105/173) Installing py3-automat-pyc (22.10.0-r3) (106/173) Installing py3-hyperlink (21.0.0-r5) (107/173) Installing py3-hyperlink-pyc (21.0.0-r5) (108/173) Installing py3-typing-extensions (4.12.2-r0) (109/173) Installing py3-typing-extensions-pyc (4.12.2-r0) (110/173) Installing py3-pyhamcrest (2.1.0-r1) (111/173) Installing py3-pyhamcrest-pyc (2.1.0-r1) (112/173) Installing py3-asn1 (0.6.0-r1) (113/173) Installing py3-asn1-pyc (0.6.0-r1) (114/173) Installing py3-asn1-modules (0.4.1-r0) (115/173) Installing py3-asn1-modules-pyc (0.4.1-r0) (116/173) Installing py3-service_identity (24.1.0-r1) (117/173) Installing py3-service_identity-pyc (24.1.0-r1) (118/173) Installing py3-pyserial (3.5-r7) (119/173) Installing py3-pyserial-pyc (3.5-r7) (120/173) Installing py3-hyperframe (6.0.1-r4) (121/173) Installing py3-hyperframe-pyc (6.0.1-r4) (122/173) Installing py3-hpack (4.0.0-r9) (123/173) Installing py3-hpack-pyc (4.0.0-r9) (124/173) Installing py3-h2 (4.1.0-r3) (125/173) Installing py3-h2-pyc (4.1.0-r3) (126/173) Installing py3-twisted (22.10.0-r5) (127/173) Installing py3-twisted-pyc (22.10.0-r5) (128/173) Installing py3-txaio (23.1.1-r2) (129/173) Installing py3-txaio-pyc (23.1.1-r2) (130/173) Installing py3-tz (2024.2-r0) (131/173) Installing py3-tz-pyc (2024.2-r0) (132/173) Installing py3-babel (2.14.0-r2) (133/173) Installing py3-babel-pyc (2.14.0-r2) (134/173) Installing py3-docutils (0.21.2-r0) (135/173) Installing py3-docutils-pyc (0.21.2-r0) (136/173) Installing py3-imagesize (1.4.1-r4) (137/173) Installing py3-imagesize-pyc (1.4.1-r4) (138/173) Installing py3-markupsafe (2.1.5-r2) (139/173) Installing py3-markupsafe-pyc (2.1.5-r2) (140/173) Installing py3-jinja2 (3.1.4-r0) (141/173) Installing py3-jinja2-pyc (3.1.4-r0) (142/173) Installing py3-pygments (2.18.0-r0) (143/173) Installing py3-pygments-pyc (2.18.0-r0) (144/173) Installing py3-snowballstemmer (2.2.0-r5) (145/173) Installing py3-snowballstemmer-pyc (2.2.0-r5) (146/173) Installing py3-alabaster (1.0.0-r0) (147/173) Installing py3-alabaster-pyc (1.0.0-r0) (148/173) Installing py3-sphinxcontrib-applehelp (1.0.4-r3) (149/173) Installing py3-sphinxcontrib-applehelp-pyc (1.0.4-r3) (150/173) Installing py3-sphinxcontrib-devhelp (1.0.5-r2) (151/173) Installing py3-sphinxcontrib-devhelp-pyc (1.0.5-r2) (152/173) Installing py3-sphinxcontrib-htmlhelp (2.0.1-r3) (153/173) Installing py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3) (154/173) Installing py3-sphinxcontrib-jsmath (1.0.1-r8) (155/173) Installing py3-sphinxcontrib-jsmath-pyc (1.0.1-r8) (156/173) Installing py3-sphinxcontrib-serializinghtml (1.1.9-r2) (157/173) Installing py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2) (158/173) Installing py3-sphinxcontrib-qthelp (1.0.6-r2) (159/173) Installing py3-sphinxcontrib-qthelp-pyc (1.0.6-r2) (160/173) Installing py3-sphinx (7.2.6-r2) (161/173) Installing py3-sphinx-pyc (7.2.6-r2) (162/173) Installing py3-sphinxcontrib-images (0.9.4-r4) (163/173) Installing py3-sphinxcontrib-images-pyc (0.9.4-r4) (164/173) Installing py3-pynacl (1.5.0-r5) (165/173) Installing py3-pynacl-pyc (1.5.0-r5) (166/173) Installing py3-autobahn (23.6.2-r1) (167/173) Installing py3-autobahn-pyc (23.6.2-r1) (168/173) Installing py3-daphne (4.1.2-r0) (169/173) Installing py3-daphne-pyc (4.1.2-r0) (170/173) Installing py3-waitress (3.0.0-r3) (171/173) Installing py3-waitress-pyc (3.0.0-r3) (172/173) Installing .makedepends-py3-falcon (20240925.141518) (173/173) Installing py3-waitress-openrc (3.0.0-r3) Executing busybox-1.36.1-r32.trigger OK: 693 MiB in 276 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 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 404 >>> py3-falcon: Fetching py3-falcon-3.1.3.tar.gz::https://github.com/falconry/falcon/archive/refs/tags/3.1.3.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 1189k 0 1189k 0 0 1935k 0 --:--:-- --:--:-- --:--:-- 1935k >>> 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/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-09-25 14:15:23,647 gpep517 INFO Building wheel via backend setuptools.build_meta 2024-09-25 14:15:23,883 root INFO running bdist_wheel 2024-09-25 14:15:23,939 root INFO running build 2024-09-25 14:15:23,939 root INFO running build_py 2024-09-25 14:15:23,952 root INFO creating build 2024-09-25 14:15:23,952 root INFO creating build/lib.linux-loongarch64-cpython-312 2024-09-25 14:15:23,952 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,952 root INFO copying falcon/status_codes.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,952 root INFO copying falcon/response.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,953 root INFO copying falcon/inspect.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,953 root INFO copying falcon/constants.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,954 root INFO copying falcon/request.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,954 root INFO copying falcon/forwarded.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,954 root INFO copying falcon/app.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,955 root INFO copying falcon/request_helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,955 root INFO copying falcon/http_status.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,955 root INFO copying falcon/responders.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,955 root INFO copying falcon/errors.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,956 root INFO copying falcon/app_helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,956 root INFO copying falcon/hooks.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,957 root INFO copying falcon/http_error.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,957 root INFO copying falcon/middleware.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,957 root INFO copying falcon/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,958 root INFO copying falcon/asgi_spec.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,958 root INFO copying falcon/uri.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,958 root INFO copying falcon/api_helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,958 root INFO copying falcon/stream.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,959 root INFO copying falcon/response_helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,959 root INFO copying falcon/version.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,959 root INFO copying falcon/redirects.py -> build/lib.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:23,960 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/cmd 2024-09-25 14:15:23,960 root INFO copying falcon/cmd/bench.py -> build/lib.linux-loongarch64-cpython-312/falcon/cmd 2024-09-25 14:15:23,960 root INFO copying falcon/cmd/inspect_app.py -> build/lib.linux-loongarch64-cpython-312/falcon/cmd 2024-09-25 14:15:23,961 root INFO copying falcon/cmd/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/cmd 2024-09-25 14:15:23,961 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,961 root INFO copying falcon/testing/test_case.py -> build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,962 root INFO copying falcon/testing/resource.py -> build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,962 root INFO copying falcon/testing/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,962 root INFO copying falcon/testing/client.py -> build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,963 root INFO copying falcon/testing/helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,963 root INFO copying falcon/testing/srmock.py -> build/lib.linux-loongarch64-cpython-312/falcon/testing 2024-09-25 14:15:23,964 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,964 root INFO copying falcon/util/time.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,964 root INFO copying falcon/util/misc.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,964 root INFO copying falcon/util/structures.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,965 root INFO copying falcon/util/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,965 root INFO copying falcon/util/uri.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,965 root INFO copying falcon/util/sync.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,966 root INFO copying falcon/util/reader.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,966 root INFO copying falcon/util/deprecation.py -> build/lib.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:15:23,966 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,967 root INFO copying falcon/asgi/response.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,967 root INFO copying falcon/asgi/_request_helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,967 root INFO copying falcon/asgi/request.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,968 root INFO copying falcon/asgi/app.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,968 root INFO copying falcon/asgi/_asgi_helpers.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,968 root INFO copying falcon/asgi/multipart.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,969 root INFO copying falcon/asgi/structures.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,969 root INFO copying falcon/asgi/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,969 root INFO copying falcon/asgi/stream.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,970 root INFO copying falcon/asgi/reader.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,970 root INFO copying falcon/asgi/ws.py -> build/lib.linux-loongarch64-cpython-312/falcon/asgi 2024-09-25 14:15:23,970 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/vendor 2024-09-25 14:15:23,971 root INFO copying falcon/vendor/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/vendor 2024-09-25 14:15:23,971 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,971 root INFO copying falcon/media/urlencoded.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,972 root INFO copying falcon/media/msgpack.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,972 root INFO copying falcon/media/base.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,972 root INFO copying falcon/media/multipart.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,972 root INFO copying falcon/media/handlers.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,973 root INFO copying falcon/media/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,973 root INFO copying falcon/media/json.py -> build/lib.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:15:23,974 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench 2024-09-25 14:15:23,974 root INFO copying falcon/bench/bench.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench 2024-09-25 14:15:23,974 root INFO copying falcon/bench/create.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench 2024-09-25 14:15:23,974 root INFO copying falcon/bench/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench 2024-09-25 14:15:23,975 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:15:23,975 root INFO copying falcon/routing/static.py -> build/lib.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:15:23,975 root INFO copying falcon/routing/util.py -> build/lib.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:15:23,976 root INFO copying falcon/routing/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:15:23,976 root INFO copying falcon/routing/compiled.py -> build/lib.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:15:23,976 root INFO copying falcon/routing/converters.py -> build/lib.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:15:23,977 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse 2024-09-25 14:15:23,977 root INFO copying falcon/vendor/mimeparse/mimeparse.py -> build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse 2024-09-25 14:15:23,977 root INFO copying falcon/vendor/mimeparse/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse 2024-09-25 14:15:23,978 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/media/validators 2024-09-25 14:15:23,978 root INFO copying falcon/media/validators/jsonschema.py -> build/lib.linux-loongarch64-cpython-312/falcon/media/validators 2024-09-25 14:15:23,978 root INFO copying falcon/media/validators/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/media/validators 2024-09-25 14:15:23,979 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/dj 2024-09-25 14:15:23,979 root INFO copying falcon/bench/dj/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj 2024-09-25 14:15:23,979 root INFO copying falcon/bench/dj/manage.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj 2024-09-25 14:15:23,980 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts 2024-09-25 14:15:23,980 root INFO copying falcon/bench/nuts/config.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts 2024-09-25 14:15:23,980 root INFO copying falcon/bench/nuts/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts 2024-09-25 14:15:23,980 root INFO copying falcon/bench/nuts/setup.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts 2024-09-25 14:15:23,981 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,981 root INFO copying falcon/bench/queues/claims.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,981 root INFO copying falcon/bench/queues/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,982 root INFO copying falcon/bench/queues/messages.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,982 root INFO copying falcon/bench/queues/api.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,982 root INFO copying falcon/bench/queues/stats.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,982 root INFO copying falcon/bench/queues/queues.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/queues 2024-09-25 14:15:23,983 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj 2024-09-25 14:15:23,983 root INFO copying falcon/bench/dj/dj/urls.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj 2024-09-25 14:15:23,983 root INFO copying falcon/bench/dj/dj/settings.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj 2024-09-25 14:15:23,984 root INFO copying falcon/bench/dj/dj/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj 2024-09-25 14:15:23,984 root INFO copying falcon/bench/dj/dj/wsgi.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj 2024-09-25 14:15:23,985 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,985 root INFO copying falcon/bench/dj/hello/apps.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,985 root INFO copying falcon/bench/dj/hello/views.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,985 root INFO copying falcon/bench/dj/hello/tests.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,986 root INFO copying falcon/bench/dj/hello/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,986 root INFO copying falcon/bench/dj/hello/models.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,986 root INFO copying falcon/bench/dj/hello/admin.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello 2024-09-25 14:15:23,987 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/migrations 2024-09-25 14:15:23,987 root INFO copying falcon/bench/dj/hello/migrations/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/migrations 2024-09-25 14:15:23,987 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts 2024-09-25 14:15:23,987 root INFO copying falcon/bench/nuts/nuts/app.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts 2024-09-25 14:15:23,988 root INFO copying falcon/bench/nuts/nuts/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts 2024-09-25 14:15:23,988 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests 2024-09-25 14:15:23,988 root INFO copying falcon/bench/nuts/nuts/tests/test_functional.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests 2024-09-25 14:15:23,989 root INFO copying falcon/bench/nuts/nuts/tests/config.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests 2024-09-25 14:15:23,989 root INFO copying falcon/bench/nuts/nuts/tests/test_units.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests 2024-09-25 14:15:23,989 root INFO copying falcon/bench/nuts/nuts/tests/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests 2024-09-25 14:15:23,990 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/model 2024-09-25 14:15:23,990 root INFO copying falcon/bench/nuts/nuts/model/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/model 2024-09-25 14:15:23,990 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/controllers 2024-09-25 14:15:23,991 root INFO copying falcon/bench/nuts/nuts/controllers/__init__.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/controllers 2024-09-25 14:15:23,991 root INFO copying falcon/bench/nuts/nuts/controllers/root.py -> build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/controllers 2024-09-25 14:15:23,991 root INFO running egg_info 2024-09-25 14:15:23,991 root INFO creating falcon.egg-info 2024-09-25 14:15:24,003 root INFO writing falcon.egg-info/PKG-INFO 2024-09-25 14:15:24,004 root INFO writing dependency_links to falcon.egg-info/dependency_links.txt 2024-09-25 14:15:24,004 root INFO writing entry points to falcon.egg-info/entry_points.txt 2024-09-25 14:15:24,004 root INFO writing top-level names to falcon.egg-info/top_level.txt 2024-09-25 14:15:24,005 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt' 2024-09-25 14:15:24,023 root INFO reading manifest file 'falcon.egg-info/SOURCES.txt' 2024-09-25 14:15:24,023 root INFO reading manifest template 'MANIFEST.in' 2024-09-25 14:15:24,049 root WARNING no previously-included directories found matching 'docs/_build' 2024-09-25 14:15:24,049 root INFO adding license file 'LICENSE' 2024-09-25 14:15:24,054 root INFO writing manifest file 'falcon.egg-info/SOURCES.txt' /usr/lib/python3.12/site-packages/setuptools/command/build_py.py:215: _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-09-25 14:15:24,060 root INFO creating build/lib.linux-loongarch64-cpython-312/falcon/cyutil 2024-09-25 14:15:24,060 root INFO copying falcon/cyutil/misc.pyx -> build/lib.linux-loongarch64-cpython-312/falcon/cyutil 2024-09-25 14:15:24,060 root INFO copying falcon/cyutil/reader.pyx -> build/lib.linux-loongarch64-cpython-312/falcon/cyutil 2024-09-25 14:15:24,061 root INFO copying falcon/cyutil/uri.pyx -> build/lib.linux-loongarch64-cpython-312/falcon/cyutil 2024-09-25 14:15:24,064 root INFO running build_ext Compiling falcon/status_codes.py because it changed. [1/1] Cythonizing falcon/status_codes.py 2024-09-25 14:15:24,715 root INFO building 'falcon.status_codes' extension 2024-09-25 14:15:24,715 root INFO creating build/temp.linux-loongarch64-cpython-312 2024-09-25 14:15:24,716 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon 2024-09-25 14:15:24,716 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-loongarch64-cpython-312/falcon/status_codes.o 2024-09-25 14:15:30,927 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/status_codes.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/status_codes.cpython-312-loongarch64-linux-musl.so Compiling falcon/response.py because it changed. [1/1] Cythonizing falcon/response.py 2024-09-25 14:15:31,230 root INFO building 'falcon.response' extension 2024-09-25 14:15:31,230 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-loongarch64-cpython-312/falcon/response.o 2024-09-25 14:15:45,463 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/response.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/response.cpython-312-loongarch64-linux-musl.so Compiling falcon/inspect.py because it changed. [1/1] Cythonizing falcon/inspect.py 2024-09-25 14:15:46,065 root INFO building 'falcon.inspect' extension 2024-09-25 14:15:46,066 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-loongarch64-cpython-312/falcon/inspect.o 2024-09-25 14:16:07,614 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/inspect.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/inspect.cpython-312-loongarch64-linux-musl.so Compiling falcon/constants.py because it changed. [1/1] Cythonizing falcon/constants.py 2024-09-25 14:16:08,126 root INFO building 'falcon.constants' extension 2024-09-25 14:16:08,126 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-loongarch64-cpython-312/falcon/constants.o 2024-09-25 14:16:10,848 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/constants.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/constants.cpython-312-loongarch64-linux-musl.so Compiling falcon/request.py because it changed. [1/1] Cythonizing falcon/request.py 2024-09-25 14:16:11,435 root INFO building 'falcon.request' extension 2024-09-25 14:16:11,436 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-loongarch64-cpython-312/falcon/request.o 2024-09-25 14:16:36,794 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/request.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/request.cpython-312-loongarch64-linux-musl.so Compiling falcon/forwarded.py because it changed. [1/1] Cythonizing falcon/forwarded.py 2024-09-25 14:16:37,397 root INFO building 'falcon.forwarded' extension 2024-09-25 14:16:37,398 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-loongarch64-cpython-312/falcon/forwarded.o 2024-09-25 14:16:41,839 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/forwarded.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/forwarded.cpython-312-loongarch64-linux-musl.so Compiling falcon/app.py because it changed. [1/1] Cythonizing falcon/app.py 2024-09-25 14:16:42,170 root INFO building 'falcon.app' extension 2024-09-25 14:16:42,171 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-loongarch64-cpython-312/falcon/app.o 2024-09-25 14:16:58,654 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/app.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/app.cpython-312-loongarch64-linux-musl.so Compiling falcon/request_helpers.py because it changed. [1/1] Cythonizing falcon/request_helpers.py 2024-09-25 14:16:59,007 root INFO building 'falcon.request_helpers' extension 2024-09-25 14:16:59,008 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-loongarch64-cpython-312/falcon/request_helpers.o 2024-09-25 14:17:02,329 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/request_helpers.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/request_helpers.cpython-312-loongarch64-linux-musl.so Compiling falcon/http_status.py because it changed. [1/1] Cythonizing falcon/http_status.py 2024-09-25 14:17:02,413 root INFO building 'falcon.http_status' extension 2024-09-25 14:17:02,413 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-loongarch64-cpython-312/falcon/http_status.o 2024-09-25 14:17:04,428 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/http_status.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/http_status.cpython-312-loongarch64-linux-musl.so Compiling falcon/errors.py because it changed. [1/1] Cythonizing falcon/errors.py 2024-09-25 14:17:04,930 root INFO building 'falcon.errors' extension 2024-09-25 14:17:04,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/errors.c -o build/temp.linux-loongarch64-cpython-312/falcon/errors.o 2024-09-25 14:17:26,319 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/errors.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/errors.cpython-312-loongarch64-linux-musl.so Compiling falcon/app_helpers.py because it changed. [1/1] Cythonizing falcon/app_helpers.py 2024-09-25 14:17:26,879 root INFO building 'falcon.app_helpers' extension 2024-09-25 14:17:26,879 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-loongarch64-cpython-312/falcon/app_helpers.o 2024-09-25 14:17:33,236 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/app_helpers.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/app_helpers.cpython-312-loongarch64-linux-musl.so Compiling falcon/http_error.py because it changed. [1/1] Cythonizing falcon/http_error.py 2024-09-25 14:17:33,402 root INFO building 'falcon.http_error' extension 2024-09-25 14:17:33,403 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-loongarch64-cpython-312/falcon/http_error.o 2024-09-25 14:17:38,021 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/http_error.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/http_error.cpython-312-loongarch64-linux-musl.so Compiling falcon/middleware.py because it changed. [1/1] Cythonizing falcon/middleware.py 2024-09-25 14:17:38,154 root INFO building 'falcon.middleware' extension 2024-09-25 14:17:38,154 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-loongarch64-cpython-312/falcon/middleware.o 2024-09-25 14:17:42,258 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/middleware.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/middleware.cpython-312-loongarch64-linux-musl.so Compiling falcon/asgi_spec.py because it changed. [1/1] Cythonizing falcon/asgi_spec.py 2024-09-25 14:17:42,342 root INFO building 'falcon.asgi_spec' extension 2024-09-25 14:17:42,342 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-loongarch64-cpython-312/falcon/asgi_spec.o 2024-09-25 14:17:43,677 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/asgi_spec.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/asgi_spec.cpython-312-loongarch64-linux-musl.so Compiling falcon/uri.py because it changed. [1/1] Cythonizing falcon/uri.py 2024-09-25 14:17:43,721 root INFO building 'falcon.uri' extension 2024-09-25 14:17:43,721 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-loongarch64-cpython-312/falcon/uri.o 2024-09-25 14:17:44,550 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/uri.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/uri.cpython-312-loongarch64-linux-musl.so Compiling falcon/api_helpers.py because it changed. [1/1] Cythonizing falcon/api_helpers.py 2024-09-25 14:17:44,593 root INFO building 'falcon.api_helpers' extension 2024-09-25 14:17:44,593 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-loongarch64-cpython-312/falcon/api_helpers.o 2024-09-25 14:17:45,493 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/api_helpers.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/api_helpers.cpython-312-loongarch64-linux-musl.so Compiling falcon/stream.py because it changed. [1/1] Cythonizing falcon/stream.py 2024-09-25 14:17:45,586 root INFO building 'falcon.stream' extension 2024-09-25 14:17:45,586 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-loongarch64-cpython-312/falcon/stream.o 2024-09-25 14:17:48,969 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/stream.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/stream.cpython-312-loongarch64-linux-musl.so Compiling falcon/response_helpers.py because it changed. [1/1] Cythonizing falcon/response_helpers.py 2024-09-25 14:17:49,092 root INFO building 'falcon.response_helpers' extension 2024-09-25 14:17:49,093 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-loongarch64-cpython-312/falcon/response_helpers.o 2024-09-25 14:17:52,513 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/response_helpers.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/response_helpers.cpython-312-loongarch64-linux-musl.so Compiling falcon/version.py because it changed. [1/1] Cythonizing falcon/version.py 2024-09-25 14:17:52,580 root INFO building 'falcon.version' extension 2024-09-25 14:17:52,581 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-loongarch64-cpython-312/falcon/version.o 2024-09-25 14:17:53,168 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/version.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/version.cpython-312-loongarch64-linux-musl.so Compiling falcon/redirects.py because it changed. [1/1] Cythonizing falcon/redirects.py 2024-09-25 14:17:53,250 root INFO building 'falcon.redirects' extension 2024-09-25 14:17:53,250 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-loongarch64-cpython-312/falcon/redirects.o 2024-09-25 14:17:56,229 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/redirects.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/redirects.cpython-312-loongarch64-linux-musl.so Compiling falcon/cyutil/uri.pyx because it changed. [1/1] Cythonizing falcon/cyutil/uri.pyx 2024-09-25 14:17:56,531 root INFO building 'falcon.cyutil.uri' extension 2024-09-25 14:17:56,531 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon/cyutil 2024-09-25 14:17:56,532 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-loongarch64-cpython-312/falcon/cyutil/uri.o 2024-09-25 14:17:59,304 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/cyutil/uri.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/cyutil/uri.cpython-312-loongarch64-linux-musl.so Compiling falcon/cyutil/misc.pyx because it changed. [1/1] Cythonizing falcon/cyutil/misc.pyx 2024-09-25 14:17:59,377 root INFO building 'falcon.cyutil.misc' extension 2024-09-25 14:17:59,377 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-loongarch64-cpython-312/falcon/cyutil/misc.o 2024-09-25 14:18:00,978 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/cyutil/misc.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/cyutil/misc.cpython-312-loongarch64-linux-musl.so Compiling falcon/cyutil/reader.pyx because it changed. [1/1] Cythonizing falcon/cyutil/reader.pyx 2024-09-25 14:18:01,215 root INFO building 'falcon.cyutil.reader' extension 2024-09-25 14:18:01,215 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-loongarch64-cpython-312/falcon/cyutil/reader.o 2024-09-25 14:18:06,650 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/cyutil/reader.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/cyutil/reader.cpython-312-loongarch64-linux-musl.so Compiling falcon/media/urlencoded.py because it changed. [1/1] Cythonizing falcon/media/urlencoded.py 2024-09-25 14:18:06,786 root INFO building 'falcon.media.urlencoded' extension 2024-09-25 14:18:06,786 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon/media 2024-09-25 14:18:06,787 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-loongarch64-cpython-312/falcon/media/urlencoded.o 2024-09-25 14:18:10,863 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/media/urlencoded.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/media/urlencoded.cpython-312-loongarch64-linux-musl.so Compiling falcon/media/msgpack.py because it changed. [1/1] Cythonizing falcon/media/msgpack.py 2024-09-25 14:18:10,997 root INFO building 'falcon.media.msgpack' extension 2024-09-25 14:18:10,998 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-loongarch64-cpython-312/falcon/media/msgpack.o 2024-09-25 14:18:15,934 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/media/msgpack.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/media/msgpack.cpython-312-loongarch64-linux-musl.so Compiling falcon/media/base.py because it changed. [1/1] Cythonizing falcon/media/base.py 2024-09-25 14:18:16,075 root INFO building 'falcon.media.base' extension 2024-09-25 14:18:16,076 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-loongarch64-cpython-312/falcon/media/base.o 2024-09-25 14:18:20,383 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/media/base.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/media/base.cpython-312-loongarch64-linux-musl.so Compiling falcon/media/multipart.py because it changed. [1/1] Cythonizing falcon/media/multipart.py 2024-09-25 14:18:20,633 root INFO building 'falcon.media.multipart' extension 2024-09-25 14:18:20,633 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-loongarch64-cpython-312/falcon/media/multipart.o 2024-09-25 14:18:32,072 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/media/multipart.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/media/multipart.cpython-312-loongarch64-linux-musl.so Compiling falcon/media/handlers.py because it changed. [1/1] Cythonizing falcon/media/handlers.py 2024-09-25 14:18:32,335 root INFO building 'falcon.media.handlers' extension 2024-09-25 14:18:32,335 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-loongarch64-cpython-312/falcon/media/handlers.o 2024-09-25 14:18:37,800 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/media/handlers.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/media/handlers.cpython-312-loongarch64-linux-musl.so Compiling falcon/media/json.py because it changed. [1/1] Cythonizing falcon/media/json.py 2024-09-25 14:18:38,062 root INFO building 'falcon.media.json' extension 2024-09-25 14:18:38,062 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-loongarch64-cpython-312/falcon/media/json.o 2024-09-25 14:18:43,842 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/media/json.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/media/json.cpython-312-loongarch64-linux-musl.so Compiling falcon/routing/static.py because it changed. [1/1] Cythonizing falcon/routing/static.py 2024-09-25 14:18:44,068 root INFO building 'falcon.routing.static' extension 2024-09-25 14:18:44,068 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon/routing 2024-09-25 14:18:44,068 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-loongarch64-cpython-312/falcon/routing/static.o 2024-09-25 14:18:52,837 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/routing/static.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/routing/static.cpython-312-loongarch64-linux-musl.so Compiling falcon/routing/util.py because it changed. [1/1] Cythonizing falcon/routing/util.py 2024-09-25 14:18:53,035 root INFO building 'falcon.routing.util' extension 2024-09-25 14:18:53,036 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-loongarch64-cpython-312/falcon/routing/util.o 2024-09-25 14:18:56,672 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/routing/util.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/routing/util.cpython-312-loongarch64-linux-musl.so Compiling falcon/routing/compiled.py because it changed. [1/1] Cythonizing falcon/routing/compiled.py 2024-09-25 14:18:57,128 root INFO building 'falcon.routing.compiled' extension 2024-09-25 14:18:57,128 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-loongarch64-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-09-25 14:19:22,445 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/routing/compiled.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/routing/compiled.cpython-312-loongarch64-linux-musl.so Compiling falcon/routing/converters.py because it changed. [1/1] Cythonizing falcon/routing/converters.py 2024-09-25 14:19:23,081 root INFO building 'falcon.routing.converters' extension 2024-09-25 14:19:23,081 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-loongarch64-cpython-312/falcon/routing/converters.o 2024-09-25 14:19:26,465 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/routing/converters.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/routing/converters.cpython-312-loongarch64-linux-musl.so Compiling falcon/util/time.py because it changed. [1/1] Cythonizing falcon/util/time.py 2024-09-25 14:19:26,549 root INFO building 'falcon.util.time' extension 2024-09-25 14:19:26,549 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon/util 2024-09-25 14:19:26,549 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-loongarch64-cpython-312/falcon/util/time.o 2024-09-25 14:19:28,559 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/util/time.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/util/time.cpython-312-loongarch64-linux-musl.so Compiling falcon/util/misc.py because it changed. [1/1] Cythonizing falcon/util/misc.py 2024-09-25 14:19:28,857 root INFO building 'falcon.util.misc' extension 2024-09-25 14:19:28,857 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-loongarch64-cpython-312/falcon/util/misc.o 2024-09-25 14:19:37,107 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/util/misc.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/util/misc.cpython-312-loongarch64-linux-musl.so Compiling falcon/util/structures.py because it changed. [1/1] Cythonizing falcon/util/structures.py 2024-09-25 14:19:37,364 root INFO building 'falcon.util.structures' extension 2024-09-25 14:19:37,364 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-loongarch64-cpython-312/falcon/util/structures.o 2024-09-25 14:19:45,700 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/util/structures.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/util/structures.cpython-312-loongarch64-linux-musl.so Compiling falcon/util/uri.py because it changed. [1/1] Cythonizing falcon/util/uri.py 2024-09-25 14:19:46,004 root INFO building 'falcon.util.uri' extension 2024-09-25 14:19:46,004 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-loongarch64-cpython-312/falcon/util/uri.o 2024-09-25 14:19:53,062 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/util/uri.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/util/uri.cpython-312-loongarch64-linux-musl.so Compiling falcon/util/deprecation.py because it changed. [1/1] Cythonizing falcon/util/deprecation.py 2024-09-25 14:19:53,218 root INFO building 'falcon.util.deprecation' extension 2024-09-25 14:19:53,219 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-loongarch64-cpython-312/falcon/util/deprecation.o 2024-09-25 14:19:56,509 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/util/deprecation.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/util/deprecation.cpython-312-loongarch64-linux-musl.so Compiling falcon/vendor/mimeparse/mimeparse.py because it changed. [1/1] Cythonizing falcon/vendor/mimeparse/mimeparse.py 2024-09-25 14:19:56,658 root INFO building 'falcon.vendor.mimeparse.mimeparse' extension 2024-09-25 14:19:56,658 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon/vendor 2024-09-25 14:19:56,659 root INFO creating build/temp.linux-loongarch64-cpython-312/falcon/vendor/mimeparse 2024-09-25 14:19:56,659 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-loongarch64-cpython-312/falcon/vendor/mimeparse/mimeparse.o 2024-09-25 14:20:02,889 root INFO gcc -shared -Wl,--as-needed,-O1,--sort-common -Os -fstack-clash-protection -Wformat -Werror=format-security build/temp.linux-loongarch64-cpython-312/falcon/vendor/mimeparse/mimeparse.o -L/usr/lib -o build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse/mimeparse.cpython-312-loongarch64-linux-musl.so 2024-09-25 14:20:02,996 root INFO installing to build/bdist.linux-loongarch64/wheel 2024-09-25 14:20:02,996 root INFO running install 2024-09-25 14:20:03,009 root INFO running install_lib 2024-09-25 14:20:03,021 root INFO creating build/bdist.linux-loongarch64 2024-09-25 14:20:03,022 root INFO creating build/bdist.linux-loongarch64/wheel 2024-09-25 14:20:03,022 root INFO creating build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,022 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/status_codes.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,023 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/response.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,023 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/cmd 2024-09-25 14:20:03,023 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cmd/bench.py -> build/bdist.linux-loongarch64/wheel/falcon/cmd 2024-09-25 14:20:03,024 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cmd/inspect_app.py -> build/bdist.linux-loongarch64/wheel/falcon/cmd 2024-09-25 14:20:03,024 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cmd/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/cmd 2024-09-25 14:20:03,024 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,024 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/testing/test_case.py -> build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,025 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/testing/resource.py -> build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,025 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/testing/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,025 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/testing/client.py -> build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,026 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/testing/helpers.py -> build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,026 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/testing/srmock.py -> build/bdist.linux-loongarch64/wheel/falcon/testing 2024-09-25 14:20:03,026 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/inspect.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,027 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/constants.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,027 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/request.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,027 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/middleware.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,028 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/forwarded.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,028 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/status_codes.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,029 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/api_helpers.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,029 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/app.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,030 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/response_helpers.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,030 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/request_helpers.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,031 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/http_status.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,031 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/request_helpers.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,032 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/request.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,034 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/responders.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,034 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/http_status.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,035 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/errors.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,035 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,035 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/time.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,036 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/time.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,036 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/structures.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,037 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/deprecation.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,038 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/misc.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,039 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/misc.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,039 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/structures.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,040 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,040 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/uri.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,040 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/sync.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,040 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/reader.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,041 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/uri.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,042 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/util/deprecation.py -> build/bdist.linux-loongarch64/wheel/falcon/util 2024-09-25 14:20:03,042 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/redirects.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,043 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/version.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,043 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/app_helpers.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,043 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/hooks.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,044 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/app.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,045 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,045 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/response.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,046 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/_request_helpers.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,046 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/request.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,046 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/app.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,047 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/_asgi_helpers.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,047 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/multipart.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,047 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/structures.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,048 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,048 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/stream.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,048 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/reader.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,048 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi/ws.py -> build/bdist.linux-loongarch64/wheel/falcon/asgi 2024-09-25 14:20:03,049 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/http_error.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,049 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,049 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cyutil/uri.pyx -> build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,050 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cyutil/reader.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,050 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cyutil/misc.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,051 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cyutil/misc.pyx -> build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,051 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cyutil/reader.pyx -> build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,052 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/cyutil/uri.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/cyutil 2024-09-25 14:20:03,052 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/middleware.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,053 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/vendor 2024-09-25 14:20:03,053 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/vendor/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/vendor 2024-09-25 14:20:03,053 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/vendor/mimeparse 2024-09-25 14:20:03,053 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse/mimeparse.py -> build/bdist.linux-loongarch64/wheel/falcon/vendor/mimeparse 2024-09-25 14:20:03,054 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/vendor/mimeparse 2024-09-25 14:20:03,054 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/vendor/mimeparse/mimeparse.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/vendor/mimeparse 2024-09-25 14:20:03,055 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/errors.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,057 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/stream.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,058 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,058 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/json.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,059 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/multipart.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,060 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/urlencoded.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,060 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/msgpack.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,061 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/base.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,061 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/media/validators 2024-09-25 14:20:03,061 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/validators/jsonschema.py -> build/bdist.linux-loongarch64/wheel/falcon/media/validators 2024-09-25 14:20:03,062 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/validators/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/media/validators 2024-09-25 14:20:03,062 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/multipart.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,062 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/base.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,063 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/handlers.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,063 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,063 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/handlers.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,064 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/json.py -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,065 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/urlencoded.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,065 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/media/msgpack.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/media 2024-09-25 14:20:03,066 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench 2024-09-25 14:20:03,067 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/dj 2024-09-25 14:20:03,067 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/dj/dj 2024-09-25 14:20:03,067 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj/urls.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/dj 2024-09-25 14:20:03,067 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj/settings.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/dj 2024-09-25 14:20:03,068 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/dj 2024-09-25 14:20:03,068 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/dj/wsgi.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/dj 2024-09-25 14:20:03,068 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,068 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/apps.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,069 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/views.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,069 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/tests.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,069 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,069 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello/migrations 2024-09-25 14:20:03,070 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/migrations/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello/migrations 2024-09-25 14:20:03,070 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/models.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,070 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/hello/admin.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj/hello 2024-09-25 14:20:03,070 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj 2024-09-25 14:20:03,071 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/dj/manage.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/dj 2024-09-25 14:20:03,071 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/bench.py -> build/bdist.linux-loongarch64/wheel/falcon/bench 2024-09-25 14:20:03,071 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/create.py -> build/bdist.linux-loongarch64/wheel/falcon/bench 2024-09-25 14:20:03,072 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/nuts 2024-09-25 14:20:03,072 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts 2024-09-25 14:20:03,072 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/app.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts 2024-09-25 14:20:03,072 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts 2024-09-25 14:20:03,073 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/tests 2024-09-25 14:20:03,073 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests/test_functional.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/tests 2024-09-25 14:20:03,073 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests/config.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/tests 2024-09-25 14:20:03,073 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests/test_units.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/tests 2024-09-25 14:20:03,074 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/tests/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/tests 2024-09-25 14:20:03,074 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/model 2024-09-25 14:20:03,074 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/model/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/model 2024-09-25 14:20:03,075 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/controllers 2024-09-25 14:20:03,075 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/controllers/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/controllers 2024-09-25 14:20:03,075 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/nuts/controllers/root.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts/nuts/controllers 2024-09-25 14:20:03,075 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/config.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts 2024-09-25 14:20:03,076 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts 2024-09-25 14:20:03,076 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/nuts/setup.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/nuts 2024-09-25 14:20:03,076 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench 2024-09-25 14:20:03,076 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,077 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/queues/claims.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,077 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/queues/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,077 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/queues/messages.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,077 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/queues/api.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,078 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/queues/stats.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,078 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/bench/queues/queues.py -> build/bdist.linux-loongarch64/wheel/falcon/bench/queues 2024-09-25 14:20:03,078 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,079 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi_spec.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,079 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/response.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,080 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/uri.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,080 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/api_helpers.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,081 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/http_error.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,081 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/inspect.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,083 root INFO creating build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,084 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/static.py -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,084 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/converters.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,085 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/util.py -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,085 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/compiled.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,087 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/__init__.py -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,087 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/compiled.py -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,088 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/util.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,088 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/converters.py -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,089 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/routing/static.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon/routing 2024-09-25 14:20:03,090 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/stream.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,090 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/app_helpers.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,091 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/response_helpers.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,091 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/forwarded.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,092 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/asgi_spec.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,093 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/version.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,093 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/uri.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,093 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/constants.cpython-312-loongarch64-linux-musl.so -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,094 root INFO copying build/lib.linux-loongarch64-cpython-312/falcon/redirects.py -> build/bdist.linux-loongarch64/wheel/falcon 2024-09-25 14:20:03,094 root INFO running install_egg_info 2024-09-25 14:20:03,108 root INFO Copying falcon.egg-info to build/bdist.linux-loongarch64/wheel/falcon-3.1.3-py3.12.egg-info 2024-09-25 14:20:03,109 root INFO running install_scripts 2024-09-25 14:20:03,126 root INFO creating build/bdist.linux-loongarch64/wheel/falcon-3.1.3.dist-info/WHEEL 2024-09-25 14:20:03,127 wheel INFO creating '/home/buildozer/aports/testing/py3-falcon/src/falcon-3.1.3/dist/.tmp-8rulj6ho/falcon-3.1.3-cp312-cp312-linux_loongarch64.whl' and adding 'build/bdist.linux-loongarch64/wheel' to it 2024-09-25 14:20:03,127 wheel INFO adding 'falcon/__init__.py' 2024-09-25 14:20:03,128 wheel INFO adding 'falcon/api_helpers.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,129 wheel INFO adding 'falcon/api_helpers.py' 2024-09-25 14:20:03,132 wheel INFO adding 'falcon/app.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,139 wheel INFO adding 'falcon/app.py' 2024-09-25 14:20:03,141 wheel INFO adding 'falcon/app_helpers.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,144 wheel INFO adding 'falcon/app_helpers.py' 2024-09-25 14:20:03,145 wheel INFO adding 'falcon/asgi_spec.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,146 wheel INFO adding 'falcon/asgi_spec.py' 2024-09-25 14:20:03,147 wheel INFO adding 'falcon/constants.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,148 wheel INFO adding 'falcon/constants.py' 2024-09-25 14:20:03,151 wheel INFO adding 'falcon/errors.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,161 wheel INFO adding 'falcon/errors.py' 2024-09-25 14:20:03,163 wheel INFO adding 'falcon/forwarded.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,166 wheel INFO adding 'falcon/forwarded.py' 2024-09-25 14:20:03,166 wheel INFO adding 'falcon/hooks.py' 2024-09-25 14:20:03,167 wheel INFO adding 'falcon/http_error.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,170 wheel INFO adding 'falcon/http_error.py' 2024-09-25 14:20:03,171 wheel INFO adding 'falcon/http_status.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,173 wheel INFO adding 'falcon/http_status.py' 2024-09-25 14:20:03,176 wheel INFO adding 'falcon/inspect.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,185 wheel INFO adding 'falcon/inspect.py' 2024-09-25 14:20:03,186 wheel INFO adding 'falcon/middleware.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,189 wheel INFO adding 'falcon/middleware.py' 2024-09-25 14:20:03,190 wheel INFO adding 'falcon/redirects.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,192 wheel INFO adding 'falcon/redirects.py' 2024-09-25 14:20:03,196 wheel INFO adding 'falcon/request.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,206 wheel INFO adding 'falcon/request.py' 2024-09-25 14:20:03,207 wheel INFO adding 'falcon/request_helpers.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,210 wheel INFO adding 'falcon/request_helpers.py' 2024-09-25 14:20:03,210 wheel INFO adding 'falcon/responders.py' 2024-09-25 14:20:03,212 wheel INFO adding 'falcon/response.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,218 wheel INFO adding 'falcon/response.py' 2024-09-25 14:20:03,219 wheel INFO adding 'falcon/response_helpers.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,222 wheel INFO adding 'falcon/response_helpers.py' 2024-09-25 14:20:03,223 wheel INFO adding 'falcon/status_codes.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,224 wheel INFO adding 'falcon/status_codes.py' 2024-09-25 14:20:03,225 wheel INFO adding 'falcon/stream.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,227 wheel INFO adding 'falcon/stream.py' 2024-09-25 14:20:03,228 wheel INFO adding 'falcon/uri.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,229 wheel INFO adding 'falcon/uri.py' 2024-09-25 14:20:03,229 wheel INFO adding 'falcon/version.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,230 wheel INFO adding 'falcon/version.py' 2024-09-25 14:20:03,230 wheel INFO adding 'falcon/asgi/__init__.py' 2024-09-25 14:20:03,230 wheel INFO adding 'falcon/asgi/_asgi_helpers.py' 2024-09-25 14:20:03,231 wheel INFO adding 'falcon/asgi/_request_helpers.py' 2024-09-25 14:20:03,231 wheel INFO adding 'falcon/asgi/app.py' 2024-09-25 14:20:03,232 wheel INFO adding 'falcon/asgi/multipart.py' 2024-09-25 14:20:03,232 wheel INFO adding 'falcon/asgi/reader.py' 2024-09-25 14:20:03,233 wheel INFO adding 'falcon/asgi/request.py' 2024-09-25 14:20:03,233 wheel INFO adding 'falcon/asgi/response.py' 2024-09-25 14:20:03,234 wheel INFO adding 'falcon/asgi/stream.py' 2024-09-25 14:20:03,234 wheel INFO adding 'falcon/asgi/structures.py' 2024-09-25 14:20:03,234 wheel INFO adding 'falcon/asgi/ws.py' 2024-09-25 14:20:03,235 wheel INFO adding 'falcon/bench/__init__.py' 2024-09-25 14:20:03,235 wheel INFO adding 'falcon/bench/bench.py' 2024-09-25 14:20:03,236 wheel INFO adding 'falcon/bench/create.py' 2024-09-25 14:20:03,236 wheel INFO adding 'falcon/bench/dj/__init__.py' 2024-09-25 14:20:03,236 wheel INFO adding 'falcon/bench/dj/manage.py' 2024-09-25 14:20:03,237 wheel INFO adding 'falcon/bench/dj/dj/__init__.py' 2024-09-25 14:20:03,237 wheel INFO adding 'falcon/bench/dj/dj/settings.py' 2024-09-25 14:20:03,237 wheel INFO adding 'falcon/bench/dj/dj/urls.py' 2024-09-25 14:20:03,238 wheel INFO adding 'falcon/bench/dj/dj/wsgi.py' 2024-09-25 14:20:03,238 wheel INFO adding 'falcon/bench/dj/hello/__init__.py' 2024-09-25 14:20:03,238 wheel INFO adding 'falcon/bench/dj/hello/admin.py' 2024-09-25 14:20:03,238 wheel INFO adding 'falcon/bench/dj/hello/apps.py' 2024-09-25 14:20:03,239 wheel INFO adding 'falcon/bench/dj/hello/models.py' 2024-09-25 14:20:03,239 wheel INFO adding 'falcon/bench/dj/hello/tests.py' 2024-09-25 14:20:03,239 wheel INFO adding 'falcon/bench/dj/hello/views.py' 2024-09-25 14:20:03,240 wheel INFO adding 'falcon/bench/dj/hello/migrations/__init__.py' 2024-09-25 14:20:03,240 wheel INFO adding 'falcon/bench/nuts/__init__.py' 2024-09-25 14:20:03,240 wheel INFO adding 'falcon/bench/nuts/config.py' 2024-09-25 14:20:03,240 wheel INFO adding 'falcon/bench/nuts/setup.py' 2024-09-25 14:20:03,241 wheel INFO adding 'falcon/bench/nuts/nuts/__init__.py' 2024-09-25 14:20:03,241 wheel INFO adding 'falcon/bench/nuts/nuts/app.py' 2024-09-25 14:20:03,241 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/__init__.py' 2024-09-25 14:20:03,242 wheel INFO adding 'falcon/bench/nuts/nuts/controllers/root.py' 2024-09-25 14:20:03,242 wheel INFO adding 'falcon/bench/nuts/nuts/model/__init__.py' 2024-09-25 14:20:03,242 wheel INFO adding 'falcon/bench/nuts/nuts/tests/__init__.py' 2024-09-25 14:20:03,243 wheel INFO adding 'falcon/bench/nuts/nuts/tests/config.py' 2024-09-25 14:20:03,243 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_functional.py' 2024-09-25 14:20:03,243 wheel INFO adding 'falcon/bench/nuts/nuts/tests/test_units.py' 2024-09-25 14:20:03,243 wheel INFO adding 'falcon/bench/queues/__init__.py' 2024-09-25 14:20:03,244 wheel INFO adding 'falcon/bench/queues/api.py' 2024-09-25 14:20:03,244 wheel INFO adding 'falcon/bench/queues/claims.py' 2024-09-25 14:20:03,244 wheel INFO adding 'falcon/bench/queues/messages.py' 2024-09-25 14:20:03,245 wheel INFO adding 'falcon/bench/queues/queues.py' 2024-09-25 14:20:03,245 wheel INFO adding 'falcon/bench/queues/stats.py' 2024-09-25 14:20:03,245 wheel INFO adding 'falcon/cmd/__init__.py' 2024-09-25 14:20:03,245 wheel INFO adding 'falcon/cmd/bench.py' 2024-09-25 14:20:03,246 wheel INFO adding 'falcon/cmd/inspect_app.py' 2024-09-25 14:20:03,246 wheel INFO adding 'falcon/cyutil/misc.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,248 wheel INFO adding 'falcon/cyutil/misc.pyx' 2024-09-25 14:20:03,249 wheel INFO adding 'falcon/cyutil/reader.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,253 wheel INFO adding 'falcon/cyutil/reader.pyx' 2024-09-25 14:20:03,254 wheel INFO adding 'falcon/cyutil/uri.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,256 wheel INFO adding 'falcon/cyutil/uri.pyx' 2024-09-25 14:20:03,256 wheel INFO adding 'falcon/media/__init__.py' 2024-09-25 14:20:03,257 wheel INFO adding 'falcon/media/base.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,260 wheel INFO adding 'falcon/media/base.py' 2024-09-25 14:20:03,261 wheel INFO adding 'falcon/media/handlers.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,265 wheel INFO adding 'falcon/media/handlers.py' 2024-09-25 14:20:03,266 wheel INFO adding 'falcon/media/json.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,270 wheel INFO adding 'falcon/media/json.py' 2024-09-25 14:20:03,271 wheel INFO adding 'falcon/media/msgpack.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,274 wheel INFO adding 'falcon/media/msgpack.py' 2024-09-25 14:20:03,276 wheel INFO adding 'falcon/media/multipart.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,282 wheel INFO adding 'falcon/media/multipart.py' 2024-09-25 14:20:03,283 wheel INFO adding 'falcon/media/urlencoded.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,286 wheel INFO adding 'falcon/media/urlencoded.py' 2024-09-25 14:20:03,286 wheel INFO adding 'falcon/media/validators/__init__.py' 2024-09-25 14:20:03,287 wheel INFO adding 'falcon/media/validators/jsonschema.py' 2024-09-25 14:20:03,287 wheel INFO adding 'falcon/routing/__init__.py' 2024-09-25 14:20:03,290 wheel INFO adding 'falcon/routing/compiled.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,301 wheel INFO adding 'falcon/routing/compiled.py' 2024-09-25 14:20:03,302 wheel INFO adding 'falcon/routing/converters.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,305 wheel INFO adding 'falcon/routing/converters.py' 2024-09-25 14:20:03,306 wheel INFO adding 'falcon/routing/static.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,311 wheel INFO adding 'falcon/routing/static.py' 2024-09-25 14:20:03,312 wheel INFO adding 'falcon/routing/util.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,315 wheel INFO adding 'falcon/routing/util.py' 2024-09-25 14:20:03,315 wheel INFO adding 'falcon/testing/__init__.py' 2024-09-25 14:20:03,316 wheel INFO adding 'falcon/testing/client.py' 2024-09-25 14:20:03,317 wheel INFO adding 'falcon/testing/helpers.py' 2024-09-25 14:20:03,317 wheel INFO adding 'falcon/testing/resource.py' 2024-09-25 14:20:03,318 wheel INFO adding 'falcon/testing/srmock.py' 2024-09-25 14:20:03,318 wheel INFO adding 'falcon/testing/test_case.py' 2024-09-25 14:20:03,318 wheel INFO adding 'falcon/util/__init__.py' 2024-09-25 14:20:03,319 wheel INFO adding 'falcon/util/deprecation.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,322 wheel INFO adding 'falcon/util/deprecation.py' 2024-09-25 14:20:03,323 wheel INFO adding 'falcon/util/misc.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,327 wheel INFO adding 'falcon/util/misc.py' 2024-09-25 14:20:03,328 wheel INFO adding 'falcon/util/reader.py' 2024-09-25 14:20:03,329 wheel INFO adding 'falcon/util/structures.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,334 wheel INFO adding 'falcon/util/structures.py' 2024-09-25 14:20:03,335 wheel INFO adding 'falcon/util/sync.py' 2024-09-25 14:20:03,336 wheel INFO adding 'falcon/util/time.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,337 wheel INFO adding 'falcon/util/time.py' 2024-09-25 14:20:03,339 wheel INFO adding 'falcon/util/uri.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,343 wheel INFO adding 'falcon/util/uri.py' 2024-09-25 14:20:03,343 wheel INFO adding 'falcon/vendor/__init__.py' 2024-09-25 14:20:03,344 wheel INFO adding 'falcon/vendor/mimeparse/__init__.py' 2024-09-25 14:20:03,345 wheel INFO adding 'falcon/vendor/mimeparse/mimeparse.cpython-312-loongarch64-linux-musl.so' 2024-09-25 14:20:03,349 wheel INFO adding 'falcon/vendor/mimeparse/mimeparse.py' 2024-09-25 14:20:03,349 wheel INFO adding 'falcon-3.1.3.dist-info/LICENSE' 2024-09-25 14:20:03,350 wheel INFO adding 'falcon-3.1.3.dist-info/METADATA' 2024-09-25 14:20:03,350 wheel INFO adding 'falcon-3.1.3.dist-info/WHEEL' 2024-09-25 14:20:03,350 wheel INFO adding 'falcon-3.1.3.dist-info/entry_points.txt' 2024-09-25 14:20:03,350 wheel INFO adding 'falcon-3.1.3.dist-info/top_level.txt' 2024-09-25 14:20:03,351 wheel INFO adding 'falcon-3.1.3.dist-info/RECORD' 2024-09-25 14:20:03,352 root INFO removing build/bdist.linux-loongarch64/wheel 2024-09-25 14:20:03,364 gpep517 INFO The backend produced dist/falcon-3.1.3-cp312-cp312-linux_loongarch64.whl falcon-3.1.3-cp312-cp312-linux_loongarch64.whl /usr/lib/python3.12/site-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) ============================= test session starts ============================== platform linux -- Python 3.12.6, pytest-8.3.3, 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.24.0, anyio-0.0.0 asyncio: mode=Mode.STRICT, default_loop_scope=None 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-] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/bytes-resource1-] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_body[/data-resource2-] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_no_body_on_head PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_stream_chunked PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_stream_known_len PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_genfunc_error PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_nongenfunc_error PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_closing[DataReader-True] PASSED [ 8%] tests/asgi/test_hello_asgi.py::TestHelloWorld::test_filelike_closing[DataReaderWithoutClose-False] PASSED [ 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-; rel=alternate] PASSED [ 38%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-anonymous-; rel=alternate; crossorigin] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-Anonymous-; rel=alternate; crossorigin] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-AnOnYmOUs-; rel=alternate; crossorigin] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-Use-Credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[asgi-use-credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-None-; rel=alternate] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-anonymous-; rel=alternate; crossorigin] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-Anonymous-; rel=alternate; crossorigin] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-AnOnYmOUs-; rel=alternate; crossorigin] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-Use-Credentials-; rel=alternate; crossorigin="use-credentials"] PASSED [ 39%] tests/test_headers.py::TestHeaders::test_append_link_crossorigin[wsgi-use-credentials-; 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-] PASSED [ 39%] tests/test_hello.py::TestHelloWorld::test_body[/bytes-resource1-] PASSED [ 39%] tests/test_hello.py::TestHelloWorld::test_body[/data-resource2-] 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_keyfoo] 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>> 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/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/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/__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/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/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/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/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/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/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/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/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/__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/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/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/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/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 libfakeroot internal error: payload not recognized! >>> 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-loongarch64.so.1 >>> py3-falcon*: Package size: 5.2 MB >>> py3-falcon*: Compressing data... >>> py3-falcon*: Create checksum... >>> py3-falcon*: Create py3-falcon-3.1.3-r0.apk >>> py3-falcon: Build complete at Wed, 25 Sep 2024 14:22:31 +0000 elapsed time 0h 7m 16s >>> py3-falcon: Cleaning up srcdir >>> py3-falcon: Cleaning up pkgdir >>> py3-falcon: Uninstalling dependencies... (1/173) Purging .makedepends-py3-falcon (20240925.141518) (2/173) Purging py3-gpep517-pyc (16-r0) (3/173) Purging py3-gpep517 (16-r0) (4/173) Purging py3-installer-pyc (0.7.0-r2) (5/173) Purging py3-installer (0.7.0-r2) (6/173) Purging py3-wheel-pyc (0.43.0-r0) (7/173) Purging py3-wheel (0.43.0-r0) (8/173) Purging python3-dev (3.12.6-r0) (9/173) Purging cython-pyc (3.0.10-r0) (10/173) Purging cython (3.0.10-r0) (11/173) Purging py3-coverage-pyc (7.5.1-r0) (12/173) Purging py3-coverage (7.5.1-r0) (13/173) Purging py3-pyaml-pyc (24.7.0-r0) (14/173) Purging py3-pyaml (24.7.0-r0) (15/173) Purging py3-yaml-pyc (6.0.2-r0) (16/173) Purging py3-yaml (6.0.2-r0) (17/173) Purging py3-pytest-asyncio-pyc (0.24.0-r0) (18/173) Purging py3-pytest-asyncio (0.24.0-r0) (19/173) Purging py3-pytest-pyc (8.3.3-r0) (20/173) Purging py3-pytest (8.3.3-r0) (21/173) Purging py3-iniconfig-pyc (2.0.0-r1) (22/173) Purging py3-iniconfig (2.0.0-r1) (23/173) Purging py3-pluggy-pyc (1.5.0-r0) (24/173) Purging py3-pluggy (1.5.0-r0) (25/173) Purging py3-py-pyc (1.11.0-r4) (26/173) Purging py3-py (1.11.0-r4) (27/173) Purging py3-aiofiles-pyc (23.2.1-r1) (28/173) Purging py3-aiofiles (23.2.1-r1) (29/173) Purging py3-httpx-pyc (0.27.2-r0) (30/173) Purging py3-httpx (0.27.2-r0) (31/173) Purging py3-httpcore-pyc (1.0.5-r0) (32/173) Purging py3-httpcore (1.0.5-r0) (33/173) Purging py3-anyio-pyc (4.3.0-r2) (34/173) Purging py3-anyio (4.3.0-r2) (35/173) Purging py3-sniffio-pyc (1.3.1-r1) (36/173) Purging py3-sniffio (1.3.1-r1) (37/173) Purging py3-curio-pyc (1.6-r2) (38/173) Purging py3-curio (1.6-r2) (39/173) Purging uvicorn-pyc (0.29.0-r1) (40/173) Purging uvicorn (0.29.0-r1) (41/173) Purging py3-click-pyc (8.1.7-r2) (42/173) Purging py3-click (8.1.7-r2) (43/173) Purging py3-h11-pyc (0.14.0-r4) (44/173) Purging py3-h11 (0.14.0-r4) (45/173) Purging py3-websockets-pyc (13.1-r0) (46/173) Purging py3-websockets (13.1-r0) (47/173) Purging py3-cbor2-pyc (5.6.1-r1) (48/173) Purging py3-cbor2 (5.6.1-r1) (49/173) Purging py3-msgpack-pyc (1.0.8-r1) (50/173) Purging py3-msgpack (1.0.8-r1) (51/173) Purging py3-mujson-pyc (1.4-r0) (52/173) Purging py3-mujson (1.4-r0) (53/173) Purging py3-ujson (5.10.0-r0) (54/173) Purging py3-rapidjson (1.12-r1) (55/173) Purging py3-orjson-pyc (3.10.7-r0) (56/173) Purging py3-orjson (3.10.7-r0) (57/173) Purging py3-gunicorn-pyc (23.0.0-r0) (58/173) Purging py3-gunicorn (23.0.0-r0) (59/173) Purging py3-daphne-pyc (4.1.2-r0) (60/173) Purging py3-daphne (4.1.2-r0) (61/173) Purging py3-autobahn-pyc (23.6.2-r1) (62/173) Purging py3-autobahn (23.6.2-r1) (63/173) Purging py3-txaio-pyc (23.1.1-r2) (64/173) Purging py3-txaio (23.1.1-r2) (65/173) Purging py3-twisted-pyc (22.10.0-r5) (66/173) Purging py3-twisted (22.10.0-r5) (67/173) Purging py3-zope-interface-pyc (6.0-r1) (68/173) Purging py3-zope-interface (6.0-r1) (69/173) Purging py3-constantly-pyc (23.10.4-r1) (70/173) Purging py3-constantly (23.10.4-r1) (71/173) Purging py3-incremental-pyc (22.10.0-r3) (72/173) Purging py3-incremental (22.10.0-r3) (73/173) Purging py3-automat-pyc (22.10.0-r3) (74/173) Purging py3-automat (22.10.0-r3) (75/173) Purging py3-six-pyc (1.16.0-r9) (76/173) Purging py3-six (1.16.0-r9) (77/173) Purging py3-hyperlink-pyc (21.0.0-r5) (78/173) Purging py3-hyperlink (21.0.0-r5) (79/173) Purging py3-typing-extensions-pyc (4.12.2-r0) (80/173) Purging py3-typing-extensions (4.12.2-r0) (81/173) Purging py3-pyhamcrest-pyc (2.1.0-r1) (82/173) Purging py3-pyhamcrest (2.1.0-r1) (83/173) Purging py3-service_identity-pyc (24.1.0-r1) (84/173) Purging py3-service_identity (24.1.0-r1) (85/173) Purging py3-asn1-modules-pyc (0.4.1-r0) (86/173) Purging py3-asn1-modules (0.4.1-r0) (87/173) Purging py3-asn1-pyc (0.6.0-r1) (88/173) Purging py3-asn1 (0.6.0-r1) (89/173) Purging py3-attrs-pyc (23.2.0-r1) (90/173) Purging py3-attrs (23.2.0-r1) (91/173) Purging py3-cryptography-pyc (43.0.1-r0) (92/173) Purging py3-cryptography (43.0.1-r0) (93/173) Purging py3-pyserial-pyc (3.5-r7) (94/173) Purging py3-pyserial (3.5-r7) (95/173) Purging py3-h2-pyc (4.1.0-r3) (96/173) Purging py3-h2 (4.1.0-r3) (97/173) Purging py3-hyperframe-pyc (6.0.1-r4) (98/173) Purging py3-hyperframe (6.0.1-r4) (99/173) Purging py3-hpack-pyc (4.0.0-r9) (100/173) Purging py3-hpack (4.0.0-r9) (101/173) Purging py3-sphinxcontrib-images-pyc (0.9.4-r4) (102/173) Purging py3-sphinxcontrib-images (0.9.4-r4) (103/173) Purging py3-sphinx-pyc (7.2.6-r2) (104/173) Purging py3-sphinx (7.2.6-r2) (105/173) Purging py3-babel-pyc (2.14.0-r2) (106/173) Purging py3-babel (2.14.0-r2) (107/173) Purging py3-tz-pyc (2024.2-r0) (108/173) Purging py3-tz (2024.2-r0) (109/173) Purging py3-docutils-pyc (0.21.2-r0) (110/173) Purging py3-docutils (0.21.2-r0) (111/173) Purging py3-imagesize-pyc (1.4.1-r4) (112/173) Purging py3-imagesize (1.4.1-r4) (113/173) Purging py3-jinja2-pyc (3.1.4-r0) (114/173) Purging py3-jinja2 (3.1.4-r0) (115/173) Purging py3-markupsafe-pyc (2.1.5-r2) (116/173) Purging py3-markupsafe (2.1.5-r2) (117/173) Purging py3-pygments-pyc (2.18.0-r0) (118/173) Purging py3-pygments (2.18.0-r0) (119/173) Purging py3-requests-pyc (2.32.3-r0) (120/173) Purging py3-requests (2.32.3-r0) (121/173) Purging py3-certifi-pyc (2024.2.2-r1) (122/173) Purging py3-certifi (2024.2.2-r1) (123/173) Purging py3-charset-normalizer-pyc (3.3.2-r1) (124/173) Purging py3-charset-normalizer (3.3.2-r1) (125/173) Purging py3-idna-pyc (3.8-r0) (126/173) Purging py3-idna (3.8-r0) (127/173) Purging py3-urllib3-pyc (1.26.18-r1) (128/173) Purging py3-urllib3 (1.26.18-r1) (129/173) Purging py3-snowballstemmer-pyc (2.2.0-r5) (130/173) Purging py3-snowballstemmer (2.2.0-r5) (131/173) Purging py3-alabaster-pyc (1.0.0-r0) (132/173) Purging py3-alabaster (1.0.0-r0) (133/173) Purging py3-sphinxcontrib-applehelp-pyc (1.0.4-r3) (134/173) Purging py3-sphinxcontrib-applehelp (1.0.4-r3) (135/173) Purging py3-sphinxcontrib-devhelp-pyc (1.0.5-r2) (136/173) Purging py3-sphinxcontrib-devhelp (1.0.5-r2) (137/173) Purging py3-sphinxcontrib-htmlhelp-pyc (2.0.1-r3) (138/173) Purging py3-sphinxcontrib-htmlhelp (2.0.1-r3) (139/173) Purging py3-sphinxcontrib-jsmath-pyc (1.0.1-r8) (140/173) Purging py3-sphinxcontrib-jsmath (1.0.1-r8) (141/173) Purging py3-sphinxcontrib-serializinghtml-pyc (1.1.9-r2) (142/173) Purging py3-sphinxcontrib-serializinghtml (1.1.9-r2) (143/173) Purging py3-sphinxcontrib-qthelp-pyc (1.0.6-r2) (144/173) Purging py3-sphinxcontrib-qthelp (1.0.6-r2) (145/173) Purging py3-setuptools-pyc (70.3.0-r0) (146/173) Purging py3-setuptools (70.3.0-r0) (147/173) Purging py3-packaging-pyc (24.1-r0) (148/173) Purging py3-packaging (24.1-r0) (149/173) Purging py3-parsing-pyc (3.1.4-r0) (150/173) Purging py3-parsing (3.1.4-r0) (151/173) Purging py3-pynacl-pyc (1.5.0-r5) (152/173) Purging py3-pynacl (1.5.0-r5) (153/173) Purging py3-cffi-pyc (1.17.1-r1) (154/173) Purging py3-cffi (1.17.1-r1) (155/173) Purging py3-cparser-pyc (2.22-r1) (156/173) Purging py3-cparser (2.22-r1) (157/173) Purging py3-asgiref-pyc (3.8.1-r1) (158/173) Purging py3-asgiref (3.8.1-r1) (159/173) Purging py3-waitress-openrc (3.0.0-r3) (160/173) Purging py3-waitress-pyc (3.0.0-r3) (161/173) Purging py3-waitress (3.0.0-r3) (162/173) Purging python3-pyc (3.12.6-r0) (163/173) Purging python3-pycache-pyc0 (3.12.6-r0) (164/173) Purging pyc (3.12.6-r0) (165/173) Purging python3 (3.12.6-r0) (166/173) Purging gdbm (1.24-r0) (167/173) Purging libbz2 (1.0.8-r6) (168/173) Purging libffi (3.4.6-r0) (169/173) Purging libpanelw (6.5_p20240601-r1) (170/173) Purging mpdecimal (4.0.0-r0) (171/173) Purging sqlite-libs (3.46.1-r0) (172/173) Purging xz-libs (5.6.2-r0) (173/173) Purging yaml (0.2.5-r2) Executing busybox-1.36.1-r32.trigger OK: 251 MiB in 103 packages >>> py3-falcon: Updating the testing/loongarch64 repository index... >>> py3-falcon: Signing the index...