Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/p/python-uvicorn/python-uvicorn_0.15.0-1_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/python-uvicorn-0.15.0-1k9eun_km/python-uvicorn_0.15.0-1_all.buildinfo Get source package info: python-uvicorn=0.15.0-1 Source URL: http://snapshot.notset.fr/mr/package/python-uvicorn/0.15.0-1/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.71-2 automake=1:1.16.5-1.1 autopoint=0.21-4 autotools-dev=20180224.1+nmu1 base-files=12 base-passwd=3.5.52 bash=5.1-3.1 binutils=2.37-10 binutils-common=2.37-10 binutils-x86-64-linux-gnu=2.37-10 bsdextrautils=2.37.2-4 bsdutils=1:2.37.2-4 build-essential=12.9 bzip2=1.0.8-4 ca-certificates=20211016 coreutils=8.32-4.1 cpp=4:11.2.0-2 cpp-11=11.2.0-12 dash=0.5.11+git20210903+057cd650a4ed-3 debconf=1.5.79 debhelper=13.5.2 debianutils=5.5-1 dh-autoreconf=20 dh-python=5.20211114 dh-strip-nondeterminism=1.12.1-1 diffutils=1:3.7-5 docbook=4.5-8 docbook-to-man=1:2.0.0-45 dpkg=1.20.9 dpkg-dev=1.20.9 dwz=0.14-1 file=1:5.41-2 findutils=4.8.0-1 fonts-font-awesome=5.0.10+really4.7.0~dfsg-4.1 fonts-lato=2.0-2.1 g++=4:11.2.0-2 g++-11=11.2.0-12 gcc=4:11.2.0-2 gcc-11=11.2.0-12 gcc-11-base=11.2.0-12 gettext=0.21-4 gettext-base=0.21-4 grep=3.7-1 groff-base=1.22.4-7 gzip=1.10-4 hostname=3.23 init-system-helpers=1.60 intltool-debian=0.35.0+20060710.5 javascript-common=11+nmu1 libacl1=2.3.1-1 libarchive-zip-perl=1.68-1 libasan6=11.2.0-12 libatomic1=11.2.0-12 libattr1=1:2.5.1-1 libaudit-common=1:3.0.6-1 libaudit1=1:3.0.6-1+b1 libbinutils=2.37-10 libblkid1=2.37.2-4 libbsd0=0.11.3-1 libbz2-1.0=1.0.8-4 libc-bin=2.32-4 libc-dev-bin=2.32-4 libc6=2.32-4 libc6-dev=2.32-4 libcap-ng0=0.7.9-2.2+b1 libcap2=1:2.44-1 libcc1-0=11.2.0-12 libcom-err2=1.46.4-1 libcrypt-dev=1:4.4.26-1 libcrypt1=1:4.4.26-1 libctf-nobfd0=2.37-10 libctf0=2.37-10 libdb5.3=5.3.28+dfsg1-0.8 libdebconfclient0=0.261 libdebhelper-perl=13.5.2 libdpkg-perl=1.20.9 libedit2=3.1-20210910-1 libelf1=0.186-1 libexpat1=2.4.1-3 libffi8=3.4.2-3 libfile-stripnondeterminism-perl=1.12.1-1 libgcc-11-dev=11.2.0-12 libgcc-s1=11.2.0-12 libgcrypt20=1.9.4-3+b1 libgdbm-compat4=1.22-1 libgdbm6=1.22-1 libgmp10=2:6.2.1+dfsg-3 libgomp1=11.2.0-12 libgpg-error0=1.42-3 libgssapi-krb5-2=1.18.3-7 libhttp-parser2.9=2.9.4-4 libicu67=67.1-7 libisl23=0.24-2 libitm1=11.2.0-12 libjs-bootstrap4=4.5.2+dfsg1-8 libjs-jquery=3.5.1+dfsg+~3.5.5-8 libjs-lunr=2.3.8~dfsg-4 libjs-modernizr=2.6.2+ds1-4 libjs-popper.js=1.16.1+ds-4 libk5crypto3=1.18.3-7 libkeyutils1=1.6.1-2 libkrb5-3=1.18.3-7 libkrb5support0=1.18.3-7 liblsan0=11.2.0-12 liblz4-1=1.9.3-2 liblzma5=5.2.5-2 libmagic-mgc=1:5.41-2 libmagic1=1:5.41-2 libmd0=1.0.4-1 libmount1=2.37.2-4 libmpc3=1.2.1-1 libmpdec3=2.5.1-2 libmpfr6=4.1.0-3 libncursesw6=6.3-1 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libosp5=1.5.2-13+b2 libpam-modules=1.4.0-10 libpam-modules-bin=1.4.0-10 libpam-runtime=1.4.0-10 libpam0g=1.4.0-10 libpcre2-8-0=10.39-3 libpcre3=2:8.39-13 libperl5.32=5.32.1-6 libpipeline1=1.5.4-1 libpython3-stdlib=3.9.8-1 libpython3.10-minimal=3.10.0-5 libpython3.10-stdlib=3.10.0-5 libpython3.9-minimal=3.9.9-1 libpython3.9-stdlib=3.9.9-1 libquadmath0=11.2.0-12 libreadline8=8.1-2 libseccomp2=2.5.3-2 libselinux1=3.3-1+b1 libsigsegv2=2.13-1 libsmartcols1=2.37.2-4 libsqlite3-0=3.36.0-2 libssl1.1=1.1.1l-1 libstdc++-11-dev=11.2.0-12 libstdc++6=11.2.0-12 libsub-override-perl=0.09-2 libsystemd0=249.7-1 libtinfo6=6.3-1 libtirpc-common=1.3.2-2 libtirpc-dev=1.3.2-2 libtirpc3=1.3.2-2 libtool=2.4.6-15 libtsan0=11.2.0-12 libubsan1=11.2.0-12 libuchardet0=0.0.7-1 libudev1=249.7-1 libunistring2=0.9.10-6 libuuid1=2.37.2-4 libuv1=1.42.0-1 libxml2=2.9.12+dfsg-5+b1 libyaml-0-2=0.2.2-1 libzstd1=1.4.8+dfsg-3 linux-libc-dev=5.15.3-1 login=1:4.8.1-2 lsb-base=11.1.0 m4=1.4.18-5 mailcap=3.70 make=4.3-4.1 man-db=2.9.4-2 mawk=1.3.4.20200120-2 media-types=4.0.0 mime-support=3.66 mkdocs=1.1.2+dfsg-2 ncurses-base=6.3-1 ncurses-bin=6.3-1 opensp=1.5.2-13+b2 openssl=1.1.1l-1 patch=2.7.6-7 perl=5.32.1-6 perl-base=5.32.1-6 perl-modules-5.32=5.32.1-6 po-debconf=1.0.21+nmu1 python-babel-localedata=2.8.0+dfsg.1-7 python3=3.9.8-1 python3-all=3.9.8-1 python3-anyio=3.4.0-1 python3-asgiref=3.4.1-1 python3-async-generator=1.10-3 python3-attr=20.3.0-1 python3-babel=2.8.0+dfsg.1-7 python3-certifi=2020.6.20-1 python3-cffi-backend=1.15.0-1+b1 python3-chardet=4.0.0-1 python3-charset-normalizer=2.0.6-2 python3-click=8.0.2-1 python3-colorama=0.4.4-1 python3-cryptography=3.3.2-1+b1 python3-distutils=3.9.9-2 python3-dotenv=0.19.0-1 python3-h11=0.12.0-2 python3-httpcore=0.13.7-1 python3-httptools=0.1.1-1+b4 python3-httpx=0.19.0-1 python3-idna=2.10-1 python3-importlib-metadata=4.6.4-1 python3-iniconfig=1.1.1-1 python3-jinja2=3.0.1-2 python3-lib2to3=3.9.9-2 python3-livereload=2.6.3-2 python3-markdown=3.3.6-1 python3-markupsafe=2.0.1-2+b1 python3-minimal=3.9.8-1 python3-more-itertools=8.10.0-2 python3-packaging=21.2-1 python3-pkg-resources=58.2.0-1 python3-pluggy=0.13.0-7.1 python3-py=1.10.0-1 python3-pyparsing=2.4.7-1 python3-pytest=6.2.5-1 python3-pytest-asyncio=0.16.0-1 python3-pytest-mock=3.6.1-1 python3-requests=2.25.1+dfsg-2 python3-rfc3986=1.5.0-2 python3-setuptools=58.2.0-1 python3-six=1.16.0-2 python3-sniffio=1.2.0-1 python3-toml=0.10.2-1 python3-tornado=6.1.0-2 python3-trustme=0.9.0-1 python3-tz=2021.3-1 python3-urllib3=1.26.5-1~exp1 python3-uvloop=0.16.0+ds1-1+b1 python3-watchgod=0.7-1 python3-websockets=9.1-1 python3-wsproto=1.0.0-1 python3-yaml=5.4.1-1+b1 python3-zipp=1.0.0-3 python3.10=3.10.0-5 python3.10-minimal=3.10.0-5 python3.9=3.9.9-1 python3.9-minimal=3.9.9-1 readline-common=8.1-2 rpcsvc-proto=1.4.2-4 sed=4.8-1 sensible-utils=0.0.17 sgml-base=1.30 sgml-data=2.0.11+nmu1 sphinx-rtd-theme-common=1.0.0+dfsg-1 sysvinit-utils=3.00-1 tar=1.34+dfsg-1 tzdata=2021e-1 util-linux=2.37.2-4 xml-core=0.18+nmu1 xz-utils=5.2.5-2 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20211130T031152Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20211130T031152Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20211126T150138Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d python-uvicorn=0.15.0-1 && mkdir -p /build/python-uvicorn-pvUxWC && dpkg-source --no-check -x /*.dsc /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0 && chown -R builduser:builduser /build/python-uvicorn-pvUxWC" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1637817871" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/python-uvicorn-pvUxWC /tmp/python-uvicorn-0.15.0-1k9eun_km bookworm /dev/null deb http://snapshot.notset.fr/archive/debian/20211126T150138Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.7APbBBpBDq as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.7APbBBpBDq Reading package lists... Building dependency tree... util-linux is already the newest version (2.37.2-4). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20211126T150138Z unstable/main amd64 libfakeroot amd64 1.26-1 [47.3 kB] Get:2 http://snapshot.notset.fr/archive/debian/20211126T150138Z unstable/main amd64 fakeroot amd64 1.26-1 [87.1 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (1042 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4672 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.26-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.26-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.26-1_amd64.deb ... Unpacking fakeroot (1.26-1) ... Setting up libfakeroot:amd64 (1.26-1) ... Setting up fakeroot (1.26-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.32-4) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20211130T031152Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20211130T031152Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20211126T150138Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.7APbBBpBDq Get:1 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm InRelease [129 kB] Hit:2 http://snapshot.notset.fr/archive/debian/20211126T150138Z unstable InRelease Ign:3 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main amd64 Packages Get:3 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main Sources [11.7 MB] Get:4 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main amd64 Packages [11.2 MB] Fetched 23.0 MB in 19s (1186 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.7APbBBpBDq I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d python-uvicorn=0.15.0-1 && mkdir -p /build/python-uvicorn-pvUxWC && dpkg-source --no-check -x /*.dsc /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0 && chown -R builduser:builduser /build/python-uvicorn-pvUxWC"' exec /tmp/mmdebstrap.7APbBBpBDq Reading package lists... NOTICE: 'python-uvicorn' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/python-uvicorn.git Please use: git clone https://salsa.debian.org/python-team/packages/python-uvicorn.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 516 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main python-uvicorn 0.15.0-1 (dsc) [2598 B] Get:2 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main python-uvicorn 0.15.0-1 (tar) [506 kB] Get:3 http://snapshot.notset.fr/archive/debian/20211130T031152Z bookworm/main python-uvicorn 0.15.0-1 (diff) [7608 B] Fetched 516 kB in 0s (1134 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'python-uvicorn_0.15.0-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting python-uvicorn in /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0 dpkg-source: info: unpacking python-uvicorn_0.15.0.orig.tar.xz dpkg-source: info: unpacking python-uvicorn_0.15.0-1.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 0001-Disable-material-theme-for-mkdocs-use-default-one.patch dpkg-source: info: applying 0002-Use-local-copy-of-uvicorn-logo.patch dpkg-source: info: applying 0003-Remove-image-badges-to-prevent-privacy-breaches.patch I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1637817871" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.7APbBBpBDq dpkg-buildpackage: info: source package python-uvicorn dpkg-buildpackage: info: source version 0.15.0-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Sandro Tosi dpkg-source --before-build . debian/rules clean dh clean --with mkdocs,python3 --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:237: python3.10 setup.py clean running clean removing '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.10' does not exist -- can't clean it I: pybuild base:237: python3.9 setup.py clean running clean removing '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.9' does not exist -- can't clean it dh_autoreconf_clean -O--buildsystem=pybuild debian/rules override_dh_clean make[1]: Entering directory '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0' rm -rf html dh_clean make[1]: Leaving directory '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0' debian/rules binary-indep dh binary-indep --with mkdocs,python3 --buildsystem=pybuild dh_update_autotools_config -i -O--buildsystem=pybuild dh_autoreconf -i -O--buildsystem=pybuild dh_auto_configure -i -O--buildsystem=pybuild I: pybuild base:237: python3.10 setup.py config running config I: pybuild base:237: python3.9 setup.py config running config debian/rules override_dh_auto_build make[1]: Entering directory '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0' dh_auto_build I: pybuild base:237: /usr/bin/python3.10 setup.py build running build running build_py creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/__main__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/_types.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/config.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/importer.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/logging.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/main.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/server.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/subprocess.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn copying uvicorn/workers.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/_handlers copying uvicorn/_handlers/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/_handlers copying uvicorn/_handlers/http.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/_handlers creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/lifespan copying uvicorn/lifespan/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/lifespan copying uvicorn/lifespan/off.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/lifespan copying uvicorn/lifespan/on.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/lifespan creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/loops copying uvicorn/loops/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/loops copying uvicorn/loops/asyncio.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/loops copying uvicorn/loops/auto.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/loops copying uvicorn/loops/uvloop.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/loops creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware copying uvicorn/middleware/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware copying uvicorn/middleware/asgi2.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware copying uvicorn/middleware/debug.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware copying uvicorn/middleware/message_logger.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware copying uvicorn/middleware/proxy_headers.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware copying uvicorn/middleware/wsgi.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols copying uvicorn/protocols/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols copying uvicorn/protocols/utils.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http copying uvicorn/protocols/http/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http copying uvicorn/protocols/http/auto.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http copying uvicorn/protocols/http/flow_control.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http copying uvicorn/protocols/http/h11_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http copying uvicorn/protocols/http/httptools_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/auto.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/websockets_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/wsproto_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/websockets creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/supervisors copying uvicorn/supervisors/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/supervisors copying uvicorn/supervisors/basereload.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/supervisors copying uvicorn/supervisors/multiprocess.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/supervisors copying uvicorn/supervisors/statreload.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/supervisors copying uvicorn/supervisors/watchgodreload.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/supervisors running egg_info creating uvicorn.egg-info writing uvicorn.egg-info/PKG-INFO writing dependency_links to uvicorn.egg-info/dependency_links.txt writing entry points to uvicorn.egg-info/entry_points.txt writing requirements to uvicorn.egg-info/requires.txt writing top-level names to uvicorn.egg-info/top_level.txt writing manifest file 'uvicorn.egg-info/SOURCES.txt' reading manifest file 'uvicorn.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE.md' writing manifest file 'uvicorn.egg-info/SOURCES.txt' I: pybuild base:237: /usr/bin/python3 setup.py build running build running build_py creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/__main__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/_types.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/config.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/importer.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/logging.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/main.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/server.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/subprocess.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn copying uvicorn/workers.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/_handlers copying uvicorn/_handlers/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/_handlers copying uvicorn/_handlers/http.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/_handlers creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/lifespan copying uvicorn/lifespan/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/lifespan copying uvicorn/lifespan/off.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/lifespan copying uvicorn/lifespan/on.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/lifespan creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/loops copying uvicorn/loops/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/loops copying uvicorn/loops/asyncio.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/loops copying uvicorn/loops/auto.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/loops copying uvicorn/loops/uvloop.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/loops creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware copying uvicorn/middleware/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware copying uvicorn/middleware/asgi2.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware copying uvicorn/middleware/debug.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware copying uvicorn/middleware/message_logger.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware copying uvicorn/middleware/proxy_headers.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware copying uvicorn/middleware/wsgi.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols copying uvicorn/protocols/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols copying uvicorn/protocols/utils.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http copying uvicorn/protocols/http/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http copying uvicorn/protocols/http/auto.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http copying uvicorn/protocols/http/flow_control.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http copying uvicorn/protocols/http/h11_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http copying uvicorn/protocols/http/httptools_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/auto.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/websockets_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/websockets copying uvicorn/protocols/websockets/wsproto_impl.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/websockets creating /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/supervisors copying uvicorn/supervisors/__init__.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/supervisors copying uvicorn/supervisors/basereload.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/supervisors copying uvicorn/supervisors/multiprocess.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/supervisors copying uvicorn/supervisors/statreload.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/supervisors copying uvicorn/supervisors/watchgodreload.py -> /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/supervisors running egg_info writing uvicorn.egg-info/PKG-INFO writing dependency_links to uvicorn.egg-info/dependency_links.txt writing entry points to uvicorn.egg-info/entry_points.txt writing requirements to uvicorn.egg-info/requires.txt writing top-level names to uvicorn.egg-info/top_level.txt reading manifest file 'uvicorn.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE.md' writing manifest file 'uvicorn.egg-info/SOURCES.txt' LC_ALL=C.UTF-8 LANG=C.UTF-8 mkdocs build && mv site html INFO - Cleaning site directory INFO - Building documentation to directory: /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/site INFO - Documentation built in 0.24 seconds make[1]: Leaving directory '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0' debian/rules override_dh_auto_test make[1]: Entering directory '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0' http_proxy= https_proxy= dh_auto_test I: pybuild pybuild:285: cp -r /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/tests /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build I: pybuild base:237: cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build; python3.10 -m pytest -s --verbose -k 'not test_run and not test_invalid_upgrade and not test_default_headers and not test_trace_logging and not test_websocket_auto' --ignore=tests/protocols/test_websocket.py ============================= test session starts ============================== platform linux -- Python 3.10.0+, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- /usr/bin/python3.10 cachedir: .pytest_cache rootdir: /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0, configfile: setup.cfg plugins: mock-3.6.1, anyio-3.4.0, asyncio-0.16.0 collecting ... collected 240 items / 21 deselected / 219 selected tests/test_auto_detection.py::test_loop_auto PASSED tests/test_auto_detection.py::test_http_auto PASSED tests/test_cli.py::test_cli_headers PASSED tests/test_config.py::test_debug_app PASSED tests/test_config.py::test_config_should_reload_is_set[asgi_app-False] PASSED tests/test_config.py::test_config_should_reload_is_set[tests.test_config:asgi_app-True] INFO: Will watch for changes in these directories: ['/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build'] INFO: Will watch for changes in these directories: ['/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build'] PASSED tests/test_config.py::test_should_warn_on_invalid_reload_configuration WARNING: Current configuration will not reload as not all conditions are met,please refer to documentation. WARNING: Current configuration will not reload as not all conditions are met,please refer to documentation. PASSED tests/test_config.py::test_reload_dir_is_set INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0/app'] PASSED tests/test_config.py::test_non_existant_reload_dir_is_not_set WARNING: Provided reload directories ['reload'] did not contain valid directories, watching current working directory. INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0'] PASSED tests/test_config.py::test_reload_subdir_removal INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0'] PASSED tests/test_config.py::test_reload_included_dir_is_added_to_reload_dirs INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory0/ext'] PASSED tests/test_config.py::test_reload_dir_subdirectories_are_removed INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory0/ext'] PASSED tests/test_config.py::test_reload_excluded_subdirectories_are_removed INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0'] PASSED tests/test_config.py::test_reload_includes_exclude_dir_patterns_are_matched INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory0/app_first/src', '/tmp/pytest-of-builduser/pytest-0/reload_directory0/app_second/src'] PASSED tests/test_config.py::test_wsgi_app PASSED tests/test_config.py::test_proxy_headers PASSED tests/test_config.py::test_app_unimportable_module PASSED tests/test_config.py::test_app_unimportable_other ERROR: Error loading ASGI app. Attribute "app" not found in module "tests.test_config". PASSED tests/test_config.py::test_app_factory WARNING: ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly. ERROR: Error loading ASGI app factory: asgi_app() missing 3 required positional arguments: 'scope', 'receive', and 'send' PASSED tests/test_config.py::test_concrete_http_class PASSED tests/test_config.py::test_socket_bind INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) PASSED tests/test_config.py::test_ssl_config PASSED tests/test_config.py::test_ssl_config_combined PASSED tests/test_config.py::test_asgi_version[asgi_app-3.0] PASSED tests/test_config.py::test_asgi_version[asgi2_app-2.0] PASSED tests/test_config.py::test_log_config_default[use_colors_not_provided] PASSED tests/test_config.py::test_log_config_default[use_colors_invalid_value] PASSED tests/test_config.py::test_log_config_default[use_colors_enabled] PASSED tests/test_config.py::test_log_config_default[use_colors_disabled] PASSED tests/test_config.py::test_log_config_json PASSED tests/test_config.py::test_log_config_yaml[log_config.yml] PASSED tests/test_config.py::test_log_config_yaml[log_config.yaml] PASSED tests/test_config.py::test_log_config_file PASSED tests/test_config.py::test_env_file[0-127.0.0.1] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-0/test_env_file_0_127_0_0_1_0/.env' PASSED tests/test_config.py::test_env_file[0-127.0.0.2] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-0/test_env_file_0_127_0_0_2_0/.env' PASSED tests/test_config.py::test_env_file[1-127.0.0.1] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-0/test_env_file_1_127_0_0_1_0/.env' PASSED tests/test_config.py::test_env_file[1-127.0.0.2] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-0/test_env_file_1_127_0_0_2_0/.env' PASSED tests/test_config.py::test_config_access_log[access log enabled should have single handler] PASSED tests/test_config.py::test_config_access_log[access log disabled shouldn't have handlers] PASSED tests/test_config.py::test_config_log_level[5] PASSED tests/test_config.py::test_config_log_level[10] PASSED tests/test_config.py::test_config_log_level[20] PASSED tests/test_config.py::test_config_log_level[30] PASSED tests/test_config.py::test_config_log_level[40] PASSED tests/test_config.py::test_config_log_level[50] PASSED tests/test_config.py::test_ws_max_size PASSED tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers[--reload=True --workers=1] INFO: Uvicorn running on unix socket /tmp/pytest-of-builduser/pytest-0/test_bind_unix_socket_works_wi0/uvicorn.sock (Press CTRL+C to quit) PASSED tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers[--reload=False --workers=2] INFO: Uvicorn running on unix socket /tmp/pytest-of-builduser/pytest-0/test_bind_unix_socket_works_wi1/uvicorn.sock (Press CTRL+C to quit) PASSED tests/test_config.py::test_bind_fd_works_with_reload_or_workers[--reload=True --workers=1] INFO: Uvicorn running on socket (Press CTRL+C to quit) PASSED tests/test_config.py::test_bind_fd_works_with_reload_or_workers[--reload=False --workers=2] INFO: Uvicorn running on socket (Press CTRL+C to quit) PASSED tests/test_lifespan.py::test_lifespan_on INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_off PASSED tests/test_lifespan.py::test_lifespan_auto INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_auto_with_error INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. PASSED tests/test_lifespan.py::test_lifespan_on_with_error INFO: Waiting for application startup. ERROR: Exception in 'lifespan' protocol Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/lifespan/on.py", line 84, in main await app(scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/test_lifespan.py", line 113, in app raise RuntimeError() RuntimeError ERROR: Application startup failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[True-auto] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[True-on] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[False-auto] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[False-on] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_scope_asgi3app INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_scope_asgi2app INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[True-auto] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[True-on] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[False-auto] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[False-on] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_main.py::test_return_close_header INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. ERROR: [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address FAILED tests/importer/test_importer.py::test_invalid_format PASSED tests/importer/test_importer.py::test_invalid_module PASSED tests/importer/test_importer.py::test_invalid_attr PASSED tests/importer/test_importer.py::test_internal_import_error PASSED tests/importer/test_importer.py::test_valid_import PASSED tests/importer/test_importer.py::test_no_import_needed PASSED tests/middleware/test_debug.py::test_debug_text PASSED tests/middleware/test_debug.py::test_debug_html PASSED tests/middleware/test_debug.py::test_debug_after_response_sent PASSED tests/middleware/test_debug.py::test_debug_not_http PASSED tests/middleware/test_logging.py::test_access_logging[True] INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48496 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_access_logging[False] INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48498 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_access_logging[None] INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48500 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_default_logging[True] INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48502 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_default_logging[False] INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48504 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_unknown_status_code INFO: Started server process [31503] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48506 - "GET / HTTP/1.1" 599 INFO: Shutting down PASSED tests/middleware/test_message_logger.py::test_message_logger TRACE: 127.0.0.1:123 - ASGI [1] Started scope={'type': 'http', 'asgi': {'version': '3.0'}, 'http_version': '1.1', 'method': 'GET', 'headers': '<...>', 'scheme': 'http', 'path': '/', 'raw_path': b'/', 'query_string': b'', 'server': ('testserver', None), 'client': ('127.0.0.1', 123), 'root_path': ''} TRACE: 127.0.0.1:123 - ASGI [1] Receive {'type': 'http.request', 'body': '<0 bytes>', 'more_body': True} TRACE: 127.0.0.1:123 - ASGI [1] Send {'type': 'http.response.start', 'status': 200, 'headers': '<...>'} TRACE: 127.0.0.1:123 - ASGI [1] Send {'type': 'http.response.body', 'body': '<0 bytes>', 'more_body': False} TRACE: 127.0.0.1:123 - ASGI [1] Completed PASSED tests/middleware/test_message_logger.py::test_message_logger_exc TRACE: 127.0.0.1:123 - ASGI [1] Started scope={'type': 'http', 'asgi': {'version': '3.0'}, 'http_version': '1.1', 'method': 'GET', 'headers': '<...>', 'scheme': 'http', 'path': '/', 'raw_path': b'/', 'query_string': b'', 'server': ('testserver', None), 'client': ('127.0.0.1', 123), 'root_path': ''} TRACE: 127.0.0.1:123 - ASGI [1] Raised exception PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[*-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[127.0.0.1-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[trusted_hosts2-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[trusted_hosts3-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[127.0.0.1, 10.0.0.1-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[192.168.0.1-Remote: http:/127.0.0.1:123] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[*-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[trusted_hosts1-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[trusted_hosts2-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[trusted_hosts3-Remote: https:/10.0.2.1:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_invalid_x_forwarded_for PASSED tests/middleware/test_wsgi.py::test_wsgi_get PASSED tests/middleware/test_wsgi.py::test_wsgi_post PASSED tests/middleware/test_wsgi.py::test_wsgi_exception PASSED tests/middleware/test_wsgi.py::test_wsgi_exc_info PASSED tests/middleware/test_wsgi.py::test_build_environ_encoding PASSED tests/protocols/test_http.py::test_get_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_get_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/?foo] INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/?foo=bar] INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/?foo=bar&baz=1] INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/?foo] INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/?foo=bar] INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/?foo=bar&baz=1] INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_head_request[H11Protocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_head_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_post_request[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_post_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_keepalive[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_keepalive[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_keepalive_timeout[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_keepalive_timeout[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_close[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_close[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_chunked_encoding[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_empty_body[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_empty_body[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_head_request[H11Protocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_head_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_pipelined_requests[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_pipelined_requests[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_undersized_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 477, in send output = self.conn.send(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 468, in send data_list = self.send_with_data_passthrough(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 501, in send_with_data_passthrough writer(event, data_list.append) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 60, in __call__ self.send_eom(event.headers, write) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 83, in send_eom raise LocalProtocolError("Too little data for declared Content-Length") h11._util.LocalProtocolError: Too little data for declared Content-Length PASSED tests/protocols/test_http.py::test_undersized_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 512, in send raise RuntimeError("Response content shorter than Content-Length") RuntimeError: Response content shorter than Content-Length PASSED tests/protocols/test_http.py::test_oversized_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 469, in send output = self.conn.send(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 468, in send data_list = self.send_with_data_passthrough(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 501, in send_with_data_passthrough writer(event, data_list.append) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 58, in __call__ self.send_data(event.data, write) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 78, in send_data raise LocalProtocolError("Too much data for declared Content-Length") h11._util.LocalProtocolError: Too much data for declared Content-Length PASSED tests/protocols/test_http.py::test_oversized_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 504, in send raise RuntimeError("Response content longer than Content-Length") RuntimeError: Response content longer than Content-Length PASSED tests/protocols/test_http.py::test_large_post_request[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_large_post_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_invalid_http[H11Protocol] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 432, in next_event raise RemoteProtocolError( h11._util.RemoteProtocolError: Receive buffer too long PASSED tests/protocols/test_http.py::test_invalid_http[HttpToolsProtocol] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserInvalidMethodError: invalid HTTP method PASSED tests/protocols/test_http.py::test_app_exception[H11Protocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 392, in app raise Exception() Exception INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_app_exception[HttpToolsProtocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 392, in app raise Exception() Exception INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_exception_during_response[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 406, in app raise Exception() Exception PASSED tests/protocols/test_http.py::test_exception_during_response[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 406, in app raise Exception() Exception PASSED tests/protocols/test_http.py::test_no_response_returned[H11Protocol] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_no_response_returned[HttpToolsProtocol] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_partial_response_returned[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable returned without completing response. PASSED tests/protocols/test_http.py::test_partial_response_returned[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable returned without completing response. PASSED tests/protocols/test_http.py::test_duplicate_start_message[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 443, in app await send({"type": "http.response.start", "status": 200}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 459, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.body', but got 'http.response.start'. PASSED tests/protocols/test_http.py::test_duplicate_start_message[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 443, in app await send({"type": "http.response.start", "status": 200}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 485, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.body', but got 'http.response.start'. PASSED tests/protocols/test_http.py::test_missing_start_message[H11Protocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 455, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 426, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.start', but got 'http.response.body'. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_missing_start_message[HttpToolsProtocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 455, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 428, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.start', but got 'http.response.body'. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_message_after_body_complete[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 469, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 483, in send raise RuntimeError(msg % message_type) RuntimeError: Unexpected ASGI message 'http.response.body' sent, after response already completed. PASSED tests/protocols/test_http.py::test_message_after_body_complete[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/tests/protocols/test_http.py", line 469, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 522, in send raise RuntimeError(msg % message_type) RuntimeError: Unexpected ASGI message 'http.response.body' sent, after response already completed. PASSED tests/protocols/test_http.py::test_value_returned[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable should return None, but returned '123'. PASSED tests/protocols/test_http.py::test_value_returned[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable should return None, but returned '123'. PASSED tests/protocols/test_http.py::test_early_disconnect[H11Protocol] PASSED tests/protocols/test_http.py::test_early_disconnect[HttpToolsProtocol] PASSED tests/protocols/test_http.py::test_early_response[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_early_response[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_read_after_response[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_read_after_response[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_http10_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.0" 200 OK PASSED tests/protocols/test_http.py::test_http10_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.0" 200 OK PASSED tests/protocols/test_http.py::test_root_path[H11Protocol] INFO: 127.0.0.1:8001 - "GET /app/ HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_root_path[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET /app/ HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_raw_path[H11Protocol] INFO: 127.0.0.1:8001 - "GET /app/one/two HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_raw_path[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET /app/one/two HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_max_concurrency[H11Protocol] WARNING: Exceeded concurrency limit. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 503 Service Unavailable PASSED tests/protocols/test_http.py::test_max_concurrency[HttpToolsProtocol] WARNING: Exceeded concurrency limit. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 503 Service Unavailable PASSED tests/protocols/test_http.py::test_shutdown_during_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_shutdown_during_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_shutdown_during_idle[H11Protocol] PASSED tests/protocols/test_http.py::test_shutdown_during_idle[HttpToolsProtocol] PASSED tests/protocols/test_http.py::test_100_continue_sent_when_body_consumed[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_100_continue_sent_when_body_consumed[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_100_continue_not_sent_when_body_not_consumed[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_100_continue_not_sent_when_body_not_consumed[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_unsupported_upgrade_request[H11Protocol] WARNING: Unsupported upgrade request. PASSED tests/protocols/test_http.py::test_unsupported_upgrade_request[HttpToolsProtocol] WARNING: Unsupported upgrade request. PASSED tests/protocols/test_http.py::test_supported_upgrade_request[H11Protocol] PASSED tests/protocols/test_http.py::test_supported_upgrade_request[HttpToolsProtocol] PASSED tests/protocols/test_http.py::test_scopes[H11Protocol-asgi3app-expected_scopes0] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_scopes[H11Protocol-asgi2app-expected_scopes1] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_scopes[HttpToolsProtocol-asgi3app-expected_scopes0] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_scopes[HttpToolsProtocol-asgi2app-expected_scopes1] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_invalid_http_request[H11Protocol-invalid-method] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 443, in next_event exc._reraise_as_remote_protocol_error() File "/usr/lib/python3/dist-packages/h11/_util.py", line 76, in _reraise_as_remote_protocol_error raise self File "/usr/lib/python3/dist-packages/h11/_connection.py", line 425, in next_event event = self._extract_next_receive_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 367, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/lib/python3/dist-packages/h11/_readers.py", line 72, in maybe_read_from_IDLE_client matches = validate( File "/usr/lib/python3/dist-packages/h11/_util.py", line 88, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal request line: bytearray(b'G?T / HTTP/1.1') PASSED tests/protocols/test_http.py::test_invalid_http_request[H11Protocol-invalid-path] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 443, in next_event exc._reraise_as_remote_protocol_error() File "/usr/lib/python3/dist-packages/h11/_util.py", line 76, in _reraise_as_remote_protocol_error raise self File "/usr/lib/python3/dist-packages/h11/_connection.py", line 425, in next_event event = self._extract_next_receive_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 367, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/lib/python3/dist-packages/h11/_readers.py", line 72, in maybe_read_from_IDLE_client matches = validate( File "/usr/lib/python3/dist-packages/h11/_util.py", line 88, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal request line: bytearray(b'GET /?x=y z HTTP/1.1') PASSED tests/protocols/test_http.py::test_invalid_http_request[H11Protocol-invalid-http-version] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 443, in next_event exc._reraise_as_remote_protocol_error() File "/usr/lib/python3/dist-packages/h11/_util.py", line 76, in _reraise_as_remote_protocol_error raise self File "/usr/lib/python3/dist-packages/h11/_connection.py", line 425, in next_event event = self._extract_next_receive_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 367, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/lib/python3/dist-packages/h11/_readers.py", line 72, in maybe_read_from_IDLE_client matches = validate( File "/usr/lib/python3/dist-packages/h11/_util.py", line 88, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal request line: bytearray(b'GET / HTTP1.1') PASSED tests/protocols/test_http.py::test_invalid_http_request[HttpToolsProtocol-invalid-method] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserInvalidMethodError: invalid HTTP method PASSED tests/protocols/test_http.py::test_invalid_http_request[HttpToolsProtocol-invalid-path] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserError: invalid constant string PASSED tests/protocols/test_http.py::test_invalid_http_request[HttpToolsProtocol-invalid-http-version] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserError: invalid HTTP version PASSED tests/protocols/test_utils.py::test_get_local_addr_with_socket PASSED tests/protocols/test_utils.py::test_get_remote_addr_with_socket PASSED tests/protocols/test_utils.py::test_get_local_addr PASSED tests/protocols/test_utils.py::test_get_remote_addr PASSED tests/protocols/test_utils.py::test_get_client_addr[ip:port client] PASSED tests/protocols/test_utils.py::test_get_client_addr[None client] PASSED tests/supervisors/test_multiprocess.py::test_multiprocess_run INFO: Started parent process [31503] INFO: Stopping parent process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reloader_should_initialize[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using statreload INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reloader_should_initialize[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_python_file_is_changed[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using statreload WARNING: StatReload detected file change in 'main.py'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_python_file_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/main.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_python_file_in_subdir_is_changed[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using statreload WARNING: StatReload detected file change in 'app/sub/sub.py'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_python_file_in_subdir_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/sub/sub.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_python_file_in_excluded_subdir_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_pattern_matched_file_is_changed[StatReload-False] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using statreload INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_pattern_matched_file_is_changed[WatchGodReload-True] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/js/main.js']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_exclude_pattern_match_file_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/.dotted_dir', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_second', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_third', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/ext'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/css/main.css']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_dot_file_is_changed[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using statreload INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_dot_file_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_directories_have_same_prefix[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first'] INFO: Started reloader process [31503] using statreload WARNING: StatReload detected file change in 'app/src/main.py'. Reloading... WARNING: StatReload detected file change in 'app_first/src/main.py'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_directories_have_same_prefix[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first/src/main.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_only_subdirectory_is_watched[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app'] INFO: Started reloader process [31503] using statreload WARNING: StatReload detected file change in 'app/src/main.py'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_only_subdirectory_is_watched[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/src/main.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_parse_dir_from_includes[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app'] INFO: Started reloader process [31503] using statreload WARNING: StatReload detected file change in 'app/src/main.py'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_parse_dir_from_includes[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/src/main.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_override_defaults[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/.dotted']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/.dotted_dir/file.txt']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_start_one_watcher_for_dirs_inside_cwd[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_second', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_third'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first/src/main.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_start_separate_watchers_for_dirs_outside_cwd[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first/src/main.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_print_full_path_for_non_relative[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first'] INFO: Started reloader process [31503] using statreload WARNING: StatReload detected file change in '/tmp/pytest-of-builduser/pytest-0/reload_directory1/app_first/src/main.py'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_detect_new_reload_dirs[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/test_should_detect_new_reload_0/app'] INFO: Started reloader process [31503] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/test_should_detect_new_reload_0/app/file.py']'. Reloading... INFO: WatchGodReload detected a new reload dir 'app_first' in '/tmp/pytest-of-builduser/pytest-0/test_should_detect_new_reload_0'; Adding to watch list. WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-0/test_should_detect_new_reload_0/app_first/file.py']'. Reloading... INFO: Stopping reloader process [31503] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_detect_new_exclude_dirs[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-0/test_should_detect_new_exclude0'] INFO: Started reloader process [31503] using watchgod DEBUG: WatchGodReload detected a new excluded dir 'app_first' in '/tmp/pytest-of-builduser/pytest-0/test_should_detect_new_exclude0'; Adding to exclude list. INFO: Stopping reloader process [31503] PASSED =================================== FAILURES =================================== ___________________________ test_return_close_header ___________________________ self = , sockets = None async def startup(self, sockets: list = None) -> None: await self.lifespan.startup() if self.lifespan.should_exit: self.should_exit = True return config = self.config async def handler( reader: asyncio.StreamReader, writer: asyncio.StreamWriter ) -> None: await handle_http( reader, writer, server_state=self.server_state, config=config ) if sockets is not None: # Explicitly passed a list of open sockets. # We use this when the server is run from a Gunicorn worker. def _share_socket(sock: socket.SocketType) -> socket.SocketType: # Windows requires the socket be explicitly shared across # multiple workers (processes). from socket import fromshare # type: ignore sock_data = sock.share(os.getpid()) # type: ignore return fromshare(sock_data) self.servers = [] for sock in sockets: if config.workers > 1 and platform.system() == "Windows": sock = _share_socket(sock) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) self.servers.append(server) listeners = sockets elif config.fd is not None: # Use an existing socket, from a file descriptor. sock = socket.fromfd(config.fd, socket.AF_UNIX, socket.SOCK_STREAM) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] elif config.uds is not None: # Create a socket using UNIX domain socket. uds_perms = 0o666 if os.path.exists(config.uds): uds_perms = os.stat(config.uds).st_mode server = await _start_unix_server( handler, path=config.uds, ssl=config.ssl, backlog=config.backlog ) os.chmod(config.uds, uds_perms) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] else: # Standard case. Create a socket from a host/port pair. try: > server = await asyncio.start_server( handler, host=config.host, port=config.port, ssl=config.ssl, backlog=config.backlog, ) uvicorn/server.py:159: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ client_connected_cb = .handler at 0x7ce053308700> host = 'localhost', port = 8000, limit = 65536 kwds = {'backlog': 2048, 'ssl': None} factory = .factory at 0x7ce0533088b0> async def start_server(client_connected_cb, host=None, port=None, *, limit=_DEFAULT_LIMIT, **kwds): """Start a socket server, call back for each client connected. The first parameter, `client_connected_cb`, takes two parameters: client_reader, client_writer. client_reader is a StreamReader object, while client_writer is a StreamWriter object. This parameter can either be a plain callback function or a coroutine; if it is a coroutine, it will be automatically converted into a Task. The rest of the arguments are all the usual arguments to loop.create_server() except protocol_factory; most common are positional host and port, with various optional keyword arguments following. The return value is the same as loop.create_server(). Additional optional keyword arguments are loop (to set the event loop instance to use) and limit (to set the buffer limit passed to the StreamReader). The return value is the same as loop.create_server(), i.e. a Server object which can be used to stop the service. """ loop = events.get_running_loop() def factory(): reader = StreamReader(limit=limit, loop=loop) protocol = StreamReaderProtocol(reader, client_connected_cb, loop=loop) return protocol > return await loop.create_server(factory, host, port, **kwds) /usr/lib/python3.10/asyncio/streams.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=False debug=False> protocol_factory = .factory at 0x7ce0533088b0> host = 'localhost', port = 8000 async def create_server( self, protocol_factory, host=None, port=None, *, family=socket.AF_UNSPEC, flags=socket.AI_PASSIVE, sock=None, backlog=100, ssl=None, reuse_address=None, reuse_port=None, ssl_handshake_timeout=None, start_serving=True): """Create a TCP server. The host parameter can be a string, in that case the TCP server is bound to host and port. The host parameter can also be a sequence of strings and in that case the TCP server is bound to all hosts of the sequence. If a host appears multiple times (possibly indirectly e.g. when hostnames resolve to the same IP address), the server is only bound once to that host. Return a Server object which can be used to stop the service. This method is a coroutine. """ if isinstance(ssl, bool): raise TypeError('ssl argument must be an SSLContext or None') if ssl_handshake_timeout is not None and ssl is None: raise ValueError( 'ssl_handshake_timeout is only meaningful with ssl') if host is not None or port is not None: if sock is not None: raise ValueError( 'host/port and sock can not be specified at the same time') if reuse_address is None: reuse_address = os.name == 'posix' and sys.platform != 'cygwin' sockets = [] if host == '': hosts = [None] elif (isinstance(host, str) or not isinstance(host, collections.abc.Iterable)): hosts = [host] else: hosts = host fs = [self._create_server_getaddrinfo(host, port, family=family, flags=flags) for host in hosts] infos = await tasks.gather(*fs) infos = set(itertools.chain.from_iterable(infos)) completed = False try: for res in infos: af, socktype, proto, canonname, sa = res try: sock = socket.socket(af, socktype, proto) except socket.error: # Assume it's a bad family/type/protocol combination. if self._debug: logger.warning('create_server() failed to create ' 'socket.socket(%r, %r, %r)', af, socktype, proto, exc_info=True) continue sockets.append(sock) if reuse_address: sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, True) if reuse_port: _set_reuseport(sock) # Disable IPv4/IPv6 dual stack support (enabled by # default on Linux) which makes a single socket # listen on both address families. if (_HAS_IPv6 and af == socket.AF_INET6 and hasattr(socket, 'IPPROTO_IPV6')): sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, True) try: sock.bind(sa) except OSError as err: > raise OSError(err.errno, 'error while attempting ' 'to bind on address %r: %s' % (sa, err.strerror.lower())) from None E OSError: [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address /usr/lib/python3.10/asyncio/base_events.py:1493: OSError During handling of the above exception, another exception occurred: kwargs = {} coro = task = wait_for=> @functools.wraps(func) def inner(**kwargs): coro = func(**kwargs) if coro is not None: task = asyncio.ensure_future(coro, loop=_loop) try: > _loop.run_until_complete(task) /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.10/asyncio/base_events.py:628: in run_until_complete self.run_forever() /usr/lib/python3.10/asyncio/base_events.py:595: in run_forever self._run_once() /usr/lib/python3.10/asyncio/base_events.py:1881: in _run_once handle._run() /usr/lib/python3.10/asyncio/events.py:80: in _run self._context.run(self._callback, *self._args) uvicorn/server.py:86: in serve await self.startup(sockets=sockets) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sockets = None async def startup(self, sockets: list = None) -> None: await self.lifespan.startup() if self.lifespan.should_exit: self.should_exit = True return config = self.config async def handler( reader: asyncio.StreamReader, writer: asyncio.StreamWriter ) -> None: await handle_http( reader, writer, server_state=self.server_state, config=config ) if sockets is not None: # Explicitly passed a list of open sockets. # We use this when the server is run from a Gunicorn worker. def _share_socket(sock: socket.SocketType) -> socket.SocketType: # Windows requires the socket be explicitly shared across # multiple workers (processes). from socket import fromshare # type: ignore sock_data = sock.share(os.getpid()) # type: ignore return fromshare(sock_data) self.servers = [] for sock in sockets: if config.workers > 1 and platform.system() == "Windows": sock = _share_socket(sock) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) self.servers.append(server) listeners = sockets elif config.fd is not None: # Use an existing socket, from a file descriptor. sock = socket.fromfd(config.fd, socket.AF_UNIX, socket.SOCK_STREAM) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] elif config.uds is not None: # Create a socket using UNIX domain socket. uds_perms = 0o666 if os.path.exists(config.uds): uds_perms = os.stat(config.uds).st_mode server = await _start_unix_server( handler, path=config.uds, ssl=config.ssl, backlog=config.backlog ) os.chmod(config.uds, uds_perms) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] else: # Standard case. Create a socket from a host/port pair. try: server = await asyncio.start_server( handler, host=config.host, port=config.port, ssl=config.ssl, backlog=config.backlog, ) except OSError as exc: logger.error(exc) await self.lifespan.shutdown() > sys.exit(1) E SystemExit: 1 uvicorn/server.py:169: SystemExit ------------------------------ Captured log call ------------------------------- INFO uvicorn.error:server.py:84 Started server process [31503] INFO uvicorn.error:on.py:45 Waiting for application startup. INFO uvicorn.error:on.py:92 ASGI 'lifespan' protocol appears unsupported. INFO uvicorn.error:on.py:59 Application startup complete. ERROR uvicorn.error:server.py:167 [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address ================= 1 failed, 218 passed, 21 deselected in 7.31s ================= E: pybuild pybuild:354: test: plugin distutils failed with: exit code=1: cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.10/build; python3.10 -m pytest -s --verbose -k 'not test_run and not test_invalid_upgrade and not test_default_headers and not test_trace_logging and not test_websocket_auto' --ignore=tests/protocols/test_websocket.py I: pybuild pybuild:285: cp -r /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/tests /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build I: pybuild base:237: cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build; python3.9 -m pytest -s --verbose -k 'not test_run and not test_invalid_upgrade and not test_default_headers and not test_trace_logging and not test_websocket_auto' --ignore=tests/protocols/test_websocket.py ============================= test session starts ============================== platform linux -- Python 3.9.9, pytest-6.2.5, py-1.10.0, pluggy-0.13.0 -- /usr/bin/python3.9 cachedir: .pytest_cache rootdir: /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0, configfile: setup.cfg plugins: mock-3.6.1, anyio-3.4.0, asyncio-0.16.0 collecting ... collected 240 items / 21 deselected / 219 selected tests/test_auto_detection.py::test_loop_auto PASSED tests/test_auto_detection.py::test_http_auto PASSED tests/test_cli.py::test_cli_headers PASSED tests/test_config.py::test_debug_app PASSED tests/test_config.py::test_config_should_reload_is_set[asgi_app-False] PASSED tests/test_config.py::test_config_should_reload_is_set[tests.test_config:asgi_app-True] INFO: Will watch for changes in these directories: ['/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build'] INFO: Will watch for changes in these directories: ['/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build'] PASSED tests/test_config.py::test_should_warn_on_invalid_reload_configuration WARNING: Current configuration will not reload as not all conditions are met,please refer to documentation. WARNING: Current configuration will not reload as not all conditions are met,please refer to documentation. PASSED tests/test_config.py::test_reload_dir_is_set INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0/app'] PASSED tests/test_config.py::test_non_existant_reload_dir_is_not_set WARNING: Provided reload directories ['reload'] did not contain valid directories, watching current working directory. INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0'] PASSED tests/test_config.py::test_reload_subdir_removal INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0'] PASSED tests/test_config.py::test_reload_included_dir_is_added_to_reload_dirs INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory0/ext'] PASSED tests/test_config.py::test_reload_dir_subdirectories_are_removed INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory0/ext'] PASSED tests/test_config.py::test_reload_excluded_subdirectories_are_removed INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0'] PASSED tests/test_config.py::test_reload_includes_exclude_dir_patterns_are_matched INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory0/app_first/src', '/tmp/pytest-of-builduser/pytest-1/reload_directory0/app_second/src'] PASSED tests/test_config.py::test_wsgi_app PASSED tests/test_config.py::test_proxy_headers PASSED tests/test_config.py::test_app_unimportable_module PASSED tests/test_config.py::test_app_unimportable_other ERROR: Error loading ASGI app. Attribute "app" not found in module "tests.test_config". PASSED tests/test_config.py::test_app_factory WARNING: ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly. ERROR: Error loading ASGI app factory: asgi_app() missing 3 required positional arguments: 'scope', 'receive', and 'send' PASSED tests/test_config.py::test_concrete_http_class PASSED tests/test_config.py::test_socket_bind INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) PASSED tests/test_config.py::test_ssl_config PASSED tests/test_config.py::test_ssl_config_combined PASSED tests/test_config.py::test_asgi_version[asgi_app-3.0] PASSED tests/test_config.py::test_asgi_version[asgi2_app-2.0] PASSED tests/test_config.py::test_log_config_default[use_colors_not_provided] PASSED tests/test_config.py::test_log_config_default[use_colors_invalid_value] PASSED tests/test_config.py::test_log_config_default[use_colors_enabled] PASSED tests/test_config.py::test_log_config_default[use_colors_disabled] PASSED tests/test_config.py::test_log_config_json PASSED tests/test_config.py::test_log_config_yaml[log_config.yml] PASSED tests/test_config.py::test_log_config_yaml[log_config.yaml] PASSED tests/test_config.py::test_log_config_file PASSED tests/test_config.py::test_env_file[0-127.0.0.1] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-1/test_env_file_0_127_0_0_1_0/.env' PASSED tests/test_config.py::test_env_file[0-127.0.0.2] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-1/test_env_file_0_127_0_0_2_0/.env' PASSED tests/test_config.py::test_env_file[1-127.0.0.1] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-1/test_env_file_1_127_0_0_1_0/.env' PASSED tests/test_config.py::test_env_file[1-127.0.0.2] INFO: Loading environment from '/tmp/pytest-of-builduser/pytest-1/test_env_file_1_127_0_0_2_0/.env' PASSED tests/test_config.py::test_config_access_log[access log enabled should have single handler] PASSED tests/test_config.py::test_config_access_log[access log disabled shouldn't have handlers] PASSED tests/test_config.py::test_config_log_level[5] PASSED tests/test_config.py::test_config_log_level[10] PASSED tests/test_config.py::test_config_log_level[20] PASSED tests/test_config.py::test_config_log_level[30] PASSED tests/test_config.py::test_config_log_level[40] PASSED tests/test_config.py::test_config_log_level[50] PASSED tests/test_config.py::test_ws_max_size PASSED tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers[--reload=True --workers=1] INFO: Uvicorn running on unix socket /tmp/pytest-of-builduser/pytest-1/test_bind_unix_socket_works_wi0/uvicorn.sock (Press CTRL+C to quit) PASSED tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers[--reload=False --workers=2] INFO: Uvicorn running on unix socket /tmp/pytest-of-builduser/pytest-1/test_bind_unix_socket_works_wi1/uvicorn.sock (Press CTRL+C to quit) PASSED tests/test_config.py::test_bind_fd_works_with_reload_or_workers[--reload=True --workers=1] INFO: Uvicorn running on socket (Press CTRL+C to quit) PASSED tests/test_config.py::test_bind_fd_works_with_reload_or_workers[--reload=False --workers=2] INFO: Uvicorn running on socket (Press CTRL+C to quit) PASSED tests/test_lifespan.py::test_lifespan_on INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_off PASSED tests/test_lifespan.py::test_lifespan_auto INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_auto_with_error INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. PASSED tests/test_lifespan.py::test_lifespan_on_with_error INFO: Waiting for application startup. ERROR: Exception in 'lifespan' protocol Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/lifespan/on.py", line 84, in main await app(scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/test_lifespan.py", line 113, in app raise RuntimeError() RuntimeError ERROR: Application startup failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[True-auto] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[True-on] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[False-auto] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_with_failed_startup[False-on] INFO: Waiting for application startup. ERROR: the lifespan event failed ERROR: Application startup failed. Exiting. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_scope_asgi3app INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_scope_asgi2app INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. INFO: Application shutdown complete. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[True-auto] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[True-on] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[False-auto] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_lifespan.py::test_lifespan_with_failed_shutdown[False-on] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Waiting for application shutdown. ERROR: the lifespan event failed ERROR: Application shutdown failed. Exiting. PASSED tests/test_main.py::test_return_close_header INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. ERROR: [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address FAILED tests/importer/test_importer.py::test_invalid_format PASSED tests/importer/test_importer.py::test_invalid_module PASSED tests/importer/test_importer.py::test_invalid_attr PASSED tests/importer/test_importer.py::test_internal_import_error PASSED tests/importer/test_importer.py::test_valid_import PASSED tests/importer/test_importer.py::test_no_import_needed PASSED tests/middleware/test_debug.py::test_debug_text PASSED tests/middleware/test_debug.py::test_debug_html PASSED tests/middleware/test_debug.py::test_debug_after_response_sent PASSED tests/middleware/test_debug.py::test_debug_not_http PASSED tests/middleware/test_logging.py::test_access_logging[True] INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48508 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_access_logging[False] INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48510 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_access_logging[None] INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48512 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_default_logging[True] INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48514 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_default_logging[False] INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48516 - "GET / HTTP/1.1" 204 No Content INFO: Shutting down PASSED tests/middleware/test_logging.py::test_unknown_status_code INFO: Started server process [31576] INFO: Waiting for application startup. INFO: ASGI 'lifespan' protocol appears unsupported. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:48518 - "GET / HTTP/1.1" 599 INFO: Shutting down PASSED tests/middleware/test_message_logger.py::test_message_logger TRACE: 127.0.0.1:123 - ASGI [1] Started scope={'type': 'http', 'asgi': {'version': '3.0'}, 'http_version': '1.1', 'method': 'GET', 'headers': '<...>', 'scheme': 'http', 'path': '/', 'raw_path': b'/', 'query_string': b'', 'server': ('testserver', None), 'client': ('127.0.0.1', 123), 'root_path': ''} TRACE: 127.0.0.1:123 - ASGI [1] Receive {'type': 'http.request', 'body': '<0 bytes>', 'more_body': True} TRACE: 127.0.0.1:123 - ASGI [1] Send {'type': 'http.response.start', 'status': 200, 'headers': '<...>'} TRACE: 127.0.0.1:123 - ASGI [1] Send {'type': 'http.response.body', 'body': '<0 bytes>', 'more_body': False} TRACE: 127.0.0.1:123 - ASGI [1] Completed PASSED tests/middleware/test_message_logger.py::test_message_logger_exc TRACE: 127.0.0.1:123 - ASGI [1] Started scope={'type': 'http', 'asgi': {'version': '3.0'}, 'http_version': '1.1', 'method': 'GET', 'headers': '<...>', 'scheme': 'http', 'path': '/', 'raw_path': b'/', 'query_string': b'', 'server': ('testserver', None), 'client': ('127.0.0.1', 123), 'root_path': ''} TRACE: 127.0.0.1:123 - ASGI [1] Raised exception PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[*-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[127.0.0.1-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[trusted_hosts2-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[trusted_hosts3-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[127.0.0.1, 10.0.0.1-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_trusted_hosts[192.168.0.1-Remote: http:/127.0.0.1:123] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[*-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[trusted_hosts1-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[trusted_hosts2-Remote: https:/1.2.3.4:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_multiple_proxies[trusted_hosts3-Remote: https:/10.0.2.1:0] PASSED tests/middleware/test_proxy_headers.py::test_proxy_headers_invalid_x_forwarded_for PASSED tests/middleware/test_wsgi.py::test_wsgi_get PASSED tests/middleware/test_wsgi.py::test_wsgi_post PASSED tests/middleware/test_wsgi.py::test_wsgi_exception PASSED tests/middleware/test_wsgi.py::test_wsgi_exc_info PASSED tests/middleware/test_wsgi.py::test_build_environ_encoding PASSED tests/protocols/test_http.py::test_get_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_get_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/?foo] INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/?foo=bar] INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[H11Protocol-/?foo=bar&baz=1] INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/?foo] INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/?foo=bar] INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_request_logging[HttpToolsProtocol-/?foo=bar&baz=1] INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET /?foo=bar&baz=1 HTTP/1.1" 200 PASSED tests/protocols/test_http.py::test_head_request[H11Protocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_head_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_post_request[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_post_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_keepalive[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_keepalive[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_keepalive_timeout[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_keepalive_timeout[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_close[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_close[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_chunked_encoding[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_empty_body[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_empty_body[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_head_request[H11Protocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_chunked_encoding_head_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "HEAD / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_pipelined_requests[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_pipelined_requests[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_undersized_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 477, in send output = self.conn.send(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 468, in send data_list = self.send_with_data_passthrough(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 501, in send_with_data_passthrough writer(event, data_list.append) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 60, in __call__ self.send_eom(event.headers, write) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 83, in send_eom raise LocalProtocolError("Too little data for declared Content-Length") h11._util.LocalProtocolError: Too little data for declared Content-Length PASSED tests/protocols/test_http.py::test_undersized_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 512, in send raise RuntimeError("Response content shorter than Content-Length") RuntimeError: Response content shorter than Content-Length PASSED tests/protocols/test_http.py::test_oversized_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 469, in send output = self.conn.send(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 468, in send data_list = self.send_with_data_passthrough(event) File "/usr/lib/python3/dist-packages/h11/_connection.py", line 501, in send_with_data_passthrough writer(event, data_list.append) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 58, in __call__ self.send_data(event.data, write) File "/usr/lib/python3/dist-packages/h11/_writers.py", line 78, in send_data raise LocalProtocolError("Too much data for declared Content-Length") h11._util.LocalProtocolError: Too much data for declared Content-Length PASSED tests/protocols/test_http.py::test_oversized_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/response.py", line 23, in __call__ await send({"type": "http.response.body", "body": self.body}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 504, in send raise RuntimeError("Response content longer than Content-Length") RuntimeError: Response content longer than Content-Length PASSED tests/protocols/test_http.py::test_large_post_request[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_large_post_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_invalid_http[H11Protocol] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 432, in next_event raise RemoteProtocolError( h11._util.RemoteProtocolError: Receive buffer too long PASSED tests/protocols/test_http.py::test_invalid_http[HttpToolsProtocol] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserInvalidMethodError: invalid HTTP method PASSED tests/protocols/test_http.py::test_app_exception[H11Protocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 392, in app raise Exception() Exception INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_app_exception[HttpToolsProtocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 392, in app raise Exception() Exception INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_exception_during_response[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 406, in app raise Exception() Exception PASSED tests/protocols/test_http.py::test_exception_during_response[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 406, in app raise Exception() Exception PASSED tests/protocols/test_http.py::test_no_response_returned[H11Protocol] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_no_response_returned[HttpToolsProtocol] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_partial_response_returned[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable returned without completing response. PASSED tests/protocols/test_http.py::test_partial_response_returned[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable returned without completing response. PASSED tests/protocols/test_http.py::test_duplicate_start_message[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 443, in app await send({"type": "http.response.start", "status": 200}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 459, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.body', but got 'http.response.start'. PASSED tests/protocols/test_http.py::test_duplicate_start_message[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 443, in app await send({"type": "http.response.start", "status": 200}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 485, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.body', but got 'http.response.start'. PASSED tests/protocols/test_http.py::test_missing_start_message[H11Protocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 455, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 426, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.start', but got 'http.response.body'. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_missing_start_message[HttpToolsProtocol] ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 455, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 428, in send raise RuntimeError(msg % message_type) RuntimeError: Expected ASGI message 'http.response.start', but got 'http.response.body'. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_message_after_body_complete[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 469, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 483, in send raise RuntimeError(msg % message_type) RuntimeError: Unexpected ASGI message 'http.response.body' sent, after response already completed. PASSED tests/protocols/test_http.py::test_message_after_body_complete[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: Exception in ASGI application Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 375, in run_asgi result = await app(self.scope, self.receive, self.send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/tests/protocols/test_http.py", line 469, in app await send({"type": "http.response.body", "body": b""}) File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 522, in send raise RuntimeError(msg % message_type) RuntimeError: Unexpected ASGI message 'http.response.body' sent, after response already completed. PASSED tests/protocols/test_http.py::test_value_returned[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable should return None, but returned '123'. PASSED tests/protocols/test_http.py::test_value_returned[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 200 OK ERROR: ASGI callable should return None, but returned '123'. PASSED tests/protocols/test_http.py::test_early_disconnect[H11Protocol] PASSED tests/protocols/test_http.py::test_early_disconnect[HttpToolsProtocol] PASSED tests/protocols/test_http.py::test_early_response[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_early_response[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_read_after_response[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_read_after_response[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_http10_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.0" 200 OK PASSED tests/protocols/test_http.py::test_http10_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.0" 200 OK PASSED tests/protocols/test_http.py::test_root_path[H11Protocol] INFO: 127.0.0.1:8001 - "GET /app/ HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_root_path[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET /app/ HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_raw_path[H11Protocol] INFO: 127.0.0.1:8001 - "GET /app/one/two HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_raw_path[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET /app/one/two HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_max_concurrency[H11Protocol] WARNING: Exceeded concurrency limit. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 503 Service Unavailable PASSED tests/protocols/test_http.py::test_max_concurrency[HttpToolsProtocol] WARNING: Exceeded concurrency limit. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 503 Service Unavailable PASSED tests/protocols/test_http.py::test_shutdown_during_request[H11Protocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_shutdown_during_request[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_shutdown_during_idle[H11Protocol] PASSED tests/protocols/test_http.py::test_shutdown_during_idle[HttpToolsProtocol] PASSED tests/protocols/test_http.py::test_100_continue_sent_when_body_consumed[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_100_continue_sent_when_body_consumed[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 200 OK PASSED tests/protocols/test_http.py::test_100_continue_not_sent_when_body_not_consumed[H11Protocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_100_continue_not_sent_when_body_not_consumed[HttpToolsProtocol] INFO: 127.0.0.1:8001 - "POST / HTTP/1.1" 204 No Content PASSED tests/protocols/test_http.py::test_unsupported_upgrade_request[H11Protocol] WARNING: Unsupported upgrade request. PASSED tests/protocols/test_http.py::test_unsupported_upgrade_request[HttpToolsProtocol] WARNING: Unsupported upgrade request. PASSED tests/protocols/test_http.py::test_supported_upgrade_request[H11Protocol] PASSED tests/protocols/test_http.py::test_supported_upgrade_request[HttpToolsProtocol] PASSED tests/protocols/test_http.py::test_scopes[H11Protocol-asgi3app-expected_scopes0] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_scopes[H11Protocol-asgi2app-expected_scopes1] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_scopes[HttpToolsProtocol-asgi3app-expected_scopes0] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_scopes[HttpToolsProtocol-asgi2app-expected_scopes1] ERROR: ASGI callable returned without starting response. INFO: 127.0.0.1:8001 - "GET / HTTP/1.1" 500 Internal Server Error PASSED tests/protocols/test_http.py::test_invalid_http_request[H11Protocol-invalid-method] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 443, in next_event exc._reraise_as_remote_protocol_error() File "/usr/lib/python3/dist-packages/h11/_util.py", line 76, in _reraise_as_remote_protocol_error raise self File "/usr/lib/python3/dist-packages/h11/_connection.py", line 425, in next_event event = self._extract_next_receive_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 367, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/lib/python3/dist-packages/h11/_readers.py", line 72, in maybe_read_from_IDLE_client matches = validate( File "/usr/lib/python3/dist-packages/h11/_util.py", line 88, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal request line: bytearray(b'G?T / HTTP/1.1') PASSED tests/protocols/test_http.py::test_invalid_http_request[H11Protocol-invalid-path] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 443, in next_event exc._reraise_as_remote_protocol_error() File "/usr/lib/python3/dist-packages/h11/_util.py", line 76, in _reraise_as_remote_protocol_error raise self File "/usr/lib/python3/dist-packages/h11/_connection.py", line 425, in next_event event = self._extract_next_receive_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 367, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/lib/python3/dist-packages/h11/_readers.py", line 72, in maybe_read_from_IDLE_client matches = validate( File "/usr/lib/python3/dist-packages/h11/_util.py", line 88, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal request line: bytearray(b'GET /?x=y z HTTP/1.1') PASSED tests/protocols/test_http.py::test_invalid_http_request[H11Protocol-invalid-http-version] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events event = self.conn.next_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 443, in next_event exc._reraise_as_remote_protocol_error() File "/usr/lib/python3/dist-packages/h11/_util.py", line 76, in _reraise_as_remote_protocol_error raise self File "/usr/lib/python3/dist-packages/h11/_connection.py", line 425, in next_event event = self._extract_next_receive_event() File "/usr/lib/python3/dist-packages/h11/_connection.py", line 367, in _extract_next_receive_event event = self._reader(self._receive_buffer) File "/usr/lib/python3/dist-packages/h11/_readers.py", line 72, in maybe_read_from_IDLE_client matches = validate( File "/usr/lib/python3/dist-packages/h11/_util.py", line 88, in validate raise LocalProtocolError(msg) h11._util.RemoteProtocolError: illegal request line: bytearray(b'GET / HTTP1.1') PASSED tests/protocols/test_http.py::test_invalid_http_request[HttpToolsProtocol-invalid-method] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserInvalidMethodError: invalid HTTP method PASSED tests/protocols/test_http.py::test_invalid_http_request[HttpToolsProtocol-invalid-path] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserError: invalid constant string PASSED tests/protocols/test_http.py::test_invalid_http_request[HttpToolsProtocol-invalid-http-version] WARNING: Invalid HTTP request received. Traceback (most recent call last): File "/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build/uvicorn/protocols/http/httptools_impl.py", line 131, in data_received self.parser.feed_data(data) File "httptools/parser/parser.pyx", line 193, in httptools.parser.parser.HttpParser.feed_data httptools.parser.errors.HttpParserError: invalid HTTP version PASSED tests/protocols/test_utils.py::test_get_local_addr_with_socket PASSED tests/protocols/test_utils.py::test_get_remote_addr_with_socket PASSED tests/protocols/test_utils.py::test_get_local_addr PASSED tests/protocols/test_utils.py::test_get_remote_addr PASSED tests/protocols/test_utils.py::test_get_client_addr[ip:port client] PASSED tests/protocols/test_utils.py::test_get_client_addr[None client] PASSED tests/supervisors/test_multiprocess.py::test_multiprocess_run INFO: Started parent process [31576] INFO: Stopping parent process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reloader_should_initialize[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using statreload INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reloader_should_initialize[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_python_file_is_changed[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using statreload WARNING: StatReload detected file change in 'main.py'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_python_file_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/main.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_python_file_in_subdir_is_changed[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using statreload WARNING: StatReload detected file change in 'app/sub/sub.py'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_python_file_in_subdir_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/sub/sub.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_python_file_in_excluded_subdir_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_pattern_matched_file_is_changed[StatReload-False] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using statreload INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_reload_when_pattern_matched_file_is_changed[WatchGodReload-True] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/js/main.js']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_exclude_pattern_match_file_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/.dotted_dir', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_second', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_third', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/ext'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/css/main.css']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_dot_file_is_changed[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using statreload INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_dot_file_is_changed[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_directories_have_same_prefix[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first'] INFO: Started reloader process [31576] using statreload WARNING: StatReload detected file change in 'app/src/main.py'. Reloading... WARNING: StatReload detected file change in 'app_first/src/main.py'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_reload_when_directories_have_same_prefix[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first/src/main.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_only_subdirectory_is_watched[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app'] INFO: Started reloader process [31576] using statreload WARNING: StatReload detected file change in 'app/src/main.py'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_not_reload_when_only_subdirectory_is_watched[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/src/main.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_parse_dir_from_includes[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app'] INFO: Started reloader process [31576] using statreload WARNING: StatReload detected file change in 'app/src/main.py'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_parse_dir_from_includes[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/src/main.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_override_defaults[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/.dotted']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/.dotted_dir/file.txt']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_start_one_watcher_for_dirs_inside_cwd[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_second', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_third'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first/src/main.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_start_separate_watchers_for_dirs_outside_cwd[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app', '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app/src/main.py']'. Reloading... WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first/src/main.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_print_full_path_for_non_relative[StatReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first'] INFO: Started reloader process [31576] using statreload WARNING: StatReload detected file change in '/tmp/pytest-of-builduser/pytest-1/reload_directory1/app_first/src/main.py'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_detect_new_reload_dirs[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/test_should_detect_new_reload_0/app'] INFO: Started reloader process [31576] using watchgod WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/test_should_detect_new_reload_0/app/file.py']'. Reloading... INFO: WatchGodReload detected a new reload dir 'app_first' in '/tmp/pytest-of-builduser/pytest-1/test_should_detect_new_reload_0'; Adding to watch list. WARNING: WatchGodReload detected file change in '['/tmp/pytest-of-builduser/pytest-1/test_should_detect_new_reload_0/app_first/file.py']'. Reloading... INFO: Stopping reloader process [31576] PASSED tests/supervisors/test_reload.py::TestBaseReload::test_should_detect_new_exclude_dirs[WatchGodReload] INFO: Will watch for changes in these directories: ['/tmp/pytest-of-builduser/pytest-1/test_should_detect_new_exclude0'] INFO: Started reloader process [31576] using watchgod DEBUG: WatchGodReload detected a new excluded dir 'app_first' in '/tmp/pytest-of-builduser/pytest-1/test_should_detect_new_exclude0'; Adding to exclude list. INFO: Stopping reloader process [31576] PASSED =================================== FAILURES =================================== ___________________________ test_return_close_header ___________________________ self = , sockets = None async def startup(self, sockets: list = None) -> None: await self.lifespan.startup() if self.lifespan.should_exit: self.should_exit = True return config = self.config async def handler( reader: asyncio.StreamReader, writer: asyncio.StreamWriter ) -> None: await handle_http( reader, writer, server_state=self.server_state, config=config ) if sockets is not None: # Explicitly passed a list of open sockets. # We use this when the server is run from a Gunicorn worker. def _share_socket(sock: socket.SocketType) -> socket.SocketType: # Windows requires the socket be explicitly shared across # multiple workers (processes). from socket import fromshare # type: ignore sock_data = sock.share(os.getpid()) # type: ignore return fromshare(sock_data) self.servers = [] for sock in sockets: if config.workers > 1 and platform.system() == "Windows": sock = _share_socket(sock) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) self.servers.append(server) listeners = sockets elif config.fd is not None: # Use an existing socket, from a file descriptor. sock = socket.fromfd(config.fd, socket.AF_UNIX, socket.SOCK_STREAM) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] elif config.uds is not None: # Create a socket using UNIX domain socket. uds_perms = 0o666 if os.path.exists(config.uds): uds_perms = os.stat(config.uds).st_mode server = await _start_unix_server( handler, path=config.uds, ssl=config.ssl, backlog=config.backlog ) os.chmod(config.uds, uds_perms) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] else: # Standard case. Create a socket from a host/port pair. try: > server = await asyncio.start_server( handler, host=config.host, port=config.port, ssl=config.ssl, backlog=config.backlog, ) uvicorn/server.py:159: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ client_connected_cb = .handler at 0x7b6a65750040> host = 'localhost', port = 8000 loop = <_UnixSelectorEventLoop running=False closed=False debug=False> limit = 65536, kwds = {'backlog': 2048, 'ssl': None} factory = .factory at 0x7b6a65750b80> async def start_server(client_connected_cb, host=None, port=None, *, loop=None, limit=_DEFAULT_LIMIT, **kwds): """Start a socket server, call back for each client connected. The first parameter, `client_connected_cb`, takes two parameters: client_reader, client_writer. client_reader is a StreamReader object, while client_writer is a StreamWriter object. This parameter can either be a plain callback function or a coroutine; if it is a coroutine, it will be automatically converted into a Task. The rest of the arguments are all the usual arguments to loop.create_server() except protocol_factory; most common are positional host and port, with various optional keyword arguments following. The return value is the same as loop.create_server(). Additional optional keyword arguments are loop (to set the event loop instance to use) and limit (to set the buffer limit passed to the StreamReader). The return value is the same as loop.create_server(), i.e. a Server object which can be used to stop the service. """ if loop is None: loop = events.get_event_loop() else: warnings.warn("The loop argument is deprecated since Python 3.8, " "and scheduled for removal in Python 3.10.", DeprecationWarning, stacklevel=2) def factory(): reader = StreamReader(limit=limit, loop=loop) protocol = StreamReaderProtocol(reader, client_connected_cb, loop=loop) return protocol > return await loop.create_server(factory, host, port, **kwds) /usr/lib/python3.9/asyncio/streams.py:94: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=False debug=False> protocol_factory = .factory at 0x7b6a65750b80> host = 'localhost', port = 8000 async def create_server( self, protocol_factory, host=None, port=None, *, family=socket.AF_UNSPEC, flags=socket.AI_PASSIVE, sock=None, backlog=100, ssl=None, reuse_address=None, reuse_port=None, ssl_handshake_timeout=None, start_serving=True): """Create a TCP server. The host parameter can be a string, in that case the TCP server is bound to host and port. The host parameter can also be a sequence of strings and in that case the TCP server is bound to all hosts of the sequence. If a host appears multiple times (possibly indirectly e.g. when hostnames resolve to the same IP address), the server is only bound once to that host. Return a Server object which can be used to stop the service. This method is a coroutine. """ if isinstance(ssl, bool): raise TypeError('ssl argument must be an SSLContext or None') if ssl_handshake_timeout is not None and ssl is None: raise ValueError( 'ssl_handshake_timeout is only meaningful with ssl') if host is not None or port is not None: if sock is not None: raise ValueError( 'host/port and sock can not be specified at the same time') if reuse_address is None: reuse_address = os.name == 'posix' and sys.platform != 'cygwin' sockets = [] if host == '': hosts = [None] elif (isinstance(host, str) or not isinstance(host, collections.abc.Iterable)): hosts = [host] else: hosts = host fs = [self._create_server_getaddrinfo(host, port, family=family, flags=flags) for host in hosts] infos = await tasks._gather(*fs, loop=self) infos = set(itertools.chain.from_iterable(infos)) completed = False try: for res in infos: af, socktype, proto, canonname, sa = res try: sock = socket.socket(af, socktype, proto) except socket.error: # Assume it's a bad family/type/protocol combination. if self._debug: logger.warning('create_server() failed to create ' 'socket.socket(%r, %r, %r)', af, socktype, proto, exc_info=True) continue sockets.append(sock) if reuse_address: sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, True) if reuse_port: _set_reuseport(sock) # Disable IPv4/IPv6 dual stack support (enabled by # default on Linux) which makes a single socket # listen on both address families. if (_HAS_IPv6 and af == socket.AF_INET6 and hasattr(socket, 'IPPROTO_IPV6')): sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, True) try: sock.bind(sa) except OSError as err: > raise OSError(err.errno, 'error while attempting ' 'to bind on address %r: %s' % (sa, err.strerror.lower())) from None E OSError: [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address /usr/lib/python3.9/asyncio/base_events.py:1494: OSError During handling of the above exception, another exception occurred: kwargs = {} coro = task = wait_for=()]>> @functools.wraps(func) def inner(**kwargs): coro = func(**kwargs) if coro is not None: task = asyncio.ensure_future(coro, loop=_loop) try: > _loop.run_until_complete(task) /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.9/asyncio/base_events.py:629: in run_until_complete self.run_forever() /usr/lib/python3.9/asyncio/base_events.py:596: in run_forever self._run_once() /usr/lib/python3.9/asyncio/base_events.py:1890: in _run_once handle._run() /usr/lib/python3.9/asyncio/events.py:80: in _run self._context.run(self._callback, *self._args) uvicorn/server.py:86: in serve await self.startup(sockets=sockets) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sockets = None async def startup(self, sockets: list = None) -> None: await self.lifespan.startup() if self.lifespan.should_exit: self.should_exit = True return config = self.config async def handler( reader: asyncio.StreamReader, writer: asyncio.StreamWriter ) -> None: await handle_http( reader, writer, server_state=self.server_state, config=config ) if sockets is not None: # Explicitly passed a list of open sockets. # We use this when the server is run from a Gunicorn worker. def _share_socket(sock: socket.SocketType) -> socket.SocketType: # Windows requires the socket be explicitly shared across # multiple workers (processes). from socket import fromshare # type: ignore sock_data = sock.share(os.getpid()) # type: ignore return fromshare(sock_data) self.servers = [] for sock in sockets: if config.workers > 1 and platform.system() == "Windows": sock = _share_socket(sock) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) self.servers.append(server) listeners = sockets elif config.fd is not None: # Use an existing socket, from a file descriptor. sock = socket.fromfd(config.fd, socket.AF_UNIX, socket.SOCK_STREAM) server = await asyncio.start_server( handler, sock=sock, ssl=config.ssl, backlog=config.backlog ) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] elif config.uds is not None: # Create a socket using UNIX domain socket. uds_perms = 0o666 if os.path.exists(config.uds): uds_perms = os.stat(config.uds).st_mode server = await _start_unix_server( handler, path=config.uds, ssl=config.ssl, backlog=config.backlog ) os.chmod(config.uds, uds_perms) assert server.sockets is not None # mypy listeners = server.sockets self.servers = [server] else: # Standard case. Create a socket from a host/port pair. try: server = await asyncio.start_server( handler, host=config.host, port=config.port, ssl=config.ssl, backlog=config.backlog, ) except OSError as exc: logger.error(exc) await self.lifespan.shutdown() > sys.exit(1) E SystemExit: 1 uvicorn/server.py:169: SystemExit ------------------------------ Captured log call ------------------------------- INFO uvicorn.error:server.py:84 Started server process [31576] INFO uvicorn.error:on.py:45 Waiting for application startup. INFO uvicorn.error:on.py:92 ASGI 'lifespan' protocol appears unsupported. INFO uvicorn.error:on.py:59 Application startup complete. ERROR uvicorn.error:server.py:167 [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address ================= 1 failed, 218 passed, 21 deselected in 8.36s ================= E: pybuild pybuild:354: test: plugin distutils failed with: exit code=1: cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0/.pybuild/cpython3_3.9/build; python3.9 -m pytest -s --verbose -k 'not test_run and not test_invalid_upgrade and not test_default_headers and not test_trace_logging and not test_websocket_auto' --ignore=tests/protocols/test_websocket.py dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10 3.9" returned exit code 13 make[1]: *** [debian/rules:18: override_dh_auto_test] Error 25 make[1]: Leaving directory '/build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0' make: *** [debian/rules:11: binary-indep] Error 2 dpkg-buildpackage: error: debian/rules binary-indep subprocess returned exit status 2 E: run_chroot failed: E: command failed: chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/python-uvicorn-pvUxWC/python-uvicorn-0.15.0 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1637817871" dpkg-buildpackage -uc -a amd64 --build=all" W: listening on child socket failed: I: removing tempdir /tmp/mmdebstrap.7APbBBpBDq... mmdebstrap failed