0s autopkgtest [10:19:14]: starting date and time: 2026-01-24 10:19:14+0000 0s autopkgtest [10:19:14]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [10:19:14]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.olzr7vxw/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade python-eventlet --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.14.2-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-8.secgroup --name adt-resolute-amd64-python-eventlet-20260124-101914-juju-7f2275-prod-proposed-migration-environment-20-87a43c6d-c715-4875-ac61-52a944b5f647 --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-amd64-python-eventlet-20260124-101914-juju-7f2275-prod-proposed-migration-environment-20-87a43c6d-c715-4875-ac61-52a944b5f647 from image adt/ubuntu-resolute-amd64-server-20260124.img (UUID 46811f22-3700-43f4-953b-ee3c613d71bb)... 83s autopkgtest [10:20:37]: testbed dpkg architecture: amd64 83s autopkgtest [10:20:37]: testbed apt version: 3.1.13 83s autopkgtest [10:20:37]: @@@@@@@@@@@@@@@@@@@@ test bed setup 83s autopkgtest [10:20:37]: testbed release detected to be: None 84s autopkgtest [10:20:38]: updating testbed package index (apt update) 84s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 84s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 84s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 84s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 84s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [24.3 kB] 84s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 84s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1014 kB] 85s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [91.6 kB] 85s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [115 kB] 85s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [98.2 kB] 85s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [3712 B] 85s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [3696 B] 85s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [12.3 kB] 85s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 85s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [922 kB] 85s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [388 kB] 85s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [25.0 kB] 85s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [12.4 kB] 85s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4704 B] 85s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [824 B] 86s Fetched 2843 kB in 1s (3171 kB/s) 86s Reading package lists... 87s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 87s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 87s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 87s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 87s Reading package lists... 87s Reading package lists... 88s Building dependency tree... 88s Reading state information... 88s Calculating upgrade... 88s The following packages were automatically installed and are no longer required: 88s python3.13 python3.13-minimal 88s Use 'sudo apt autoremove' to remove them. 88s The following NEW packages will be installed: 88s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 88s The following packages will be upgraded: 88s libpython3-stdlib python3 python3-gdbm python3-minimal rust-coreutils 88s 5 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 88s Need to get 10.4 MB of archives. 88s After this operation, 25.2 MB of additional disk space will be used. 88s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 88s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 88s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.14.2-1 [28.2 kB] 88s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.14.2-1 [22.9 kB] 88s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 88s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 88s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.14.2-1 [10.9 kB] 88s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 rust-coreutils amd64 0.5.0-0ubuntu1 [3628 kB] 89s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.14.2-1 [11.1 kB] 89s dpkg-preconfigure: unable to re-open stdin: No such file or directory 89s Fetched 10.4 MB in 1s (13.5 MB/s) 89s Selecting previously unselected package libpython3.14-minimal:amd64. 89s (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 ... 124177 files and directories currently installed.) 89s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_amd64.deb ... 89s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 89s Selecting previously unselected package python3.14-minimal. 89s Preparing to unpack .../python3.14-minimal_3.14.2-1_amd64.deb ... 89s Unpacking python3.14-minimal (3.14.2-1) ... 89s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 89s Setting up python3.14-minimal (3.14.2-1) ... 90s (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 ... 124519 files and directories currently installed.) 90s Preparing to unpack .../python3-minimal_3.14.2-1_amd64.deb ... 90s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 90s Setting up python3-minimal (3.14.2-1) ... 90s (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 ... 124519 files and directories currently installed.) 90s Preparing to unpack .../python3_3.14.2-1_amd64.deb ... 90s running python pre-rtupdate hooks for python3.14... 90s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 90s Selecting previously unselected package libpython3.14-stdlib:amd64. 90s Preparing to unpack .../libpython3.14-stdlib_3.14.2-1_amd64.deb ... 90s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 90s Selecting previously unselected package python3.14. 90s Preparing to unpack .../python3.14_3.14.2-1_amd64.deb ... 90s Unpacking python3.14 (3.14.2-1) ... 90s Preparing to unpack .../libpython3-stdlib_3.14.2-1_amd64.deb ... 90s Unpacking libpython3-stdlib:amd64 (3.14.2-1) over (3.13.9-3) ... 90s Preparing to unpack .../rust-coreutils_0.5.0-0ubuntu1_amd64.deb ... 90s Unpacking rust-coreutils (0.5.0-0ubuntu1) over (0.2.2-0ubuntu2) ... 90s Setting up rust-coreutils (0.5.0-0ubuntu1) ... 90s (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 ... 124980 files and directories currently installed.) 90s Preparing to unpack .../python3-gdbm_3.14.2-1_amd64.deb ... 90s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 90s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 90s Setting up python3.14 (3.14.2-1) ... 91s Setting up libpython3-stdlib:amd64 (3.14.2-1) ... 91s Setting up python3-gdbm (3.14.2-1) ... 91s Setting up python3 (3.14.2-1) ... 91s running python rtupdate hooks for python3.14... 91s running python post-rtupdate hooks for python3.14... 91s Processing triggers for man-db (2.13.1-1) ... 92s Processing triggers for systemd (259-1ubuntu2) ... 92s autopkgtest [10:20:46]: upgrading testbed (apt dist-upgrade and autopurge) 92s Reading package lists... 92s Building dependency tree... 92s Reading state information... 92s Calculating upgrade... 92s The following packages were automatically installed and are no longer required: 92s python3.13 python3.13-minimal 92s Use 'sudo apt autoremove' to remove them. 92s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 92s Reading package lists... 92s Building dependency tree... 92s Reading state information... 93s Solving dependencies... 93s The following packages will be REMOVED: 93s python3.13* python3.13-minimal* 93s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 93s After this operation, 7860 kB disk space will be freed. 93s (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 ... 124978 files and directories currently installed.) 93s Removing python3.13 (3.13.11-1) ... 93s Removing python3.13-minimal (3.13.11-1) ... 93s Processing triggers for man-db (2.13.1-1) ... 94s Processing triggers for systemd (259-1ubuntu2) ... 94s (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 ... 124951 files and directories currently installed.) 94s Purging configuration files for python3.13-minimal (3.13.11-1) ... 96s autopkgtest [10:20:50]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:49:02 UTC 2026 96s autopkgtest [10:20:50]: @@@@@@@@@@@@@@@@@@@@ apt-source python-eventlet 97s Get:1 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (dsc) [2605 B] 97s Get:2 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (tar) [562 kB] 97s Get:3 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (diff) [24.3 kB] 98s gpgv: Signature made Mon Sep 15 17:48:29 2025 UTC 98s gpgv: using RSA key 50C4A0DDCF31E452CEB19B516569D855A744BE93 98s gpgv: Can't check signature: No public key 98s dpkg-source: warning: cannot verify inline signature for ./python-eventlet_0.39.0-0ubuntu2.dsc: no acceptable signature found 98s autopkgtest [10:20:52]: testing package python-eventlet version 0.39.0-0ubuntu2 98s autopkgtest [10:20:52]: build not needed 98s autopkgtest [10:20:52]: test listen3: preparing testbed 98s Reading package lists... 99s Building dependency tree... 99s Reading state information... 99s Solving dependencies... 99s The following NEW packages will be installed: 99s python3-dnspython python3-eventlet python3-greenlet 99s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 99s Need to get 630 kB of archives. 99s After this operation, 3038 kB of additional disk space will be used. 99s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 99s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-greenlet amd64 3.2.4-3 [185 kB] 99s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-eventlet all 0.39.0-0ubuntu2 [277 kB] 99s Fetched 630 kB in 0s (54.8 MB/s) 99s Selecting previously unselected package python3-dnspython. 99s (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 ... 124953 files and directories currently installed.) 99s Preparing to unpack .../python3-dnspython_2.7.0-1ubuntu2_all.deb ... 99s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 99s Selecting previously unselected package python3-greenlet. 99s Preparing to unpack .../python3-greenlet_3.2.4-3_amd64.deb ... 99s Unpacking python3-greenlet (3.2.4-3) ... 99s Selecting previously unselected package python3-eventlet. 99s Preparing to unpack .../python3-eventlet_0.39.0-0ubuntu2_all.deb ... 99s Unpacking python3-eventlet (0.39.0-0ubuntu2) ... 99s Setting up python3-greenlet (3.2.4-3) ... 99s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 99s Setting up python3-eventlet (0.39.0-0ubuntu2) ... 99s /usr/lib/python3/dist-packages/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 99s return 100s autopkgtest [10:20:54]: test listen3: [----------------------- 101s autopkgtest [10:20:55]: test listen3: -----------------------] 101s autopkgtest [10:20:55]: test listen3: - - - - - - - - - - results - - - - - - - - - - 101s listen3 PASS 102s autopkgtest [10:20:56]: test unittests: preparing testbed 102s Reading package lists... 102s Building dependency tree... 102s Reading state information... 102s Solving dependencies... 102s The following NEW packages will be installed: 102s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 102s cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 102s dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz g++ 102s g++-15 g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 102s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 102s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 102s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 102s libitm1 libjson-perl liblsan0 libmpc3 libnorm1t64 libpgm-5.3-0t64 102s libquadmath0 libsodium23 libstdc++-15-dev libtool libtsan2 libubsan1 libzmq5 102s m4 openstack-pkg-tools po-debconf pybuild-plugin-pyproject 102s python-eventlet-doc python3-alabaster python3-all python3-build 102s python3-defusedxml python3-docutils python3-execnet python3-hatchling 102s python3-imagesize python3-iniconfig python3-installer python3-monotonic 102s python3-pathspec python3-pbr python3-pip python3-pluggy 102s python3-pyproject-hooks python3-pytest python3-pytest-xdist 102s python3-roman-numerals python3-setuptools-scm python3-snowballstemmer 102s python3-sphinx python3-sphinxcontrib.apidoc python3-trove-classifiers 102s python3-wheel python3-zmq python3.13 python3.13-minimal sgml-base 102s sphinx-common xml-core 102s 0 upgraded, 84 newly installed, 0 to remove and 0 not upgraded. 102s Need to get 83.3 MB of archives. 102s After this operation, 291 MB of additional disk space will be used. 102s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13-minimal amd64 3.13.11-1 [2408 kB] 102s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.13 amd64 3.13.11-1 [758 kB] 102s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.20-2 [217 kB] 102s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 102s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 102s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-3build1 [582 kB] 102s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.2-1 [620 kB] 102s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1build1 [691 kB] 102s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-2 [54.8 kB] 102s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [12.9 MB] 103s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-11ubuntu1 [1030 B] 103s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 103s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 103s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-11ubuntu1 [47.4 kB] 103s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-11ubuntu1 [151 kB] 103s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-11ubuntu1 [29.5 kB] 103s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-11ubuntu1 [3070 kB] 103s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-11ubuntu1 [1360 kB] 103s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-11ubuntu1 [2757 kB] 103s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-11ubuntu1 [1210 kB] 103s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-11ubuntu1 [1685 kB] 103s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-11ubuntu1 [153 kB] 103s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-11ubuntu1 [2863 kB] 103s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [25.4 MB] 103s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-11ubuntu1 [528 kB] 103s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 103s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 103s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-11ubuntu1 [2574 kB] 103s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-11ubuntu1 [14.4 MB] 104s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-11ubuntu1 [24.6 kB] 104s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 104s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 104s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu2 [5256 B] 104s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 104s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-9 [169 kB] 104s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 104s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 104s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 104s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 104s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 104s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 104s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 104s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 104s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.22 [215 kB] 104s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.28ubuntu1 [916 kB] 104s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 dh-python all 7.20251231 [122 kB] 104s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 sgml-base all 1.31+nmu1 [11.0 kB] 104s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 xml-core all 0.19build1 [20.3 kB] 104s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 docutils-common all 0.22.4+dfsg-1 [130 kB] 104s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 104s Get:51 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnorm1t64 amd64 1.5.9+dfsg-4 [158 kB] 104s Get:52 http://ftpmaster.internal/ubuntu resolute/universe amd64 libpgm-5.3-0t64 amd64 5.3.128~dfsg-2.1build2 [168 kB] 104s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 libsodium23 amd64 1.0.18-2 [165 kB] 104s Get:54 http://ftpmaster.internal/ubuntu resolute/universe amd64 libzmq5 amd64 4.3.5-1build3 [262 kB] 104s Get:55 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 104s Get:56 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-wheel all 0.46.1-2 [22.1 kB] 104s Get:57 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-build all 1.2.2-5 [30.9 kB] 104s Get:58 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 104s Get:59 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-pyproject all 7.20251231 [1714 B] 104s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 python-eventlet-doc all 0.39.0-0ubuntu2 [353 kB] 104s Get:61 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all amd64 3.14.2-1 [890 B] 104s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-defusedxml all 0.7.1-3build1 [42.4 kB] 104s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-roman-numerals all 4.1.0-1 [8660 B] 104s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-docutils all 0.22.4+dfsg-1 [439 kB] 104s Get:65 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-execnet all 2.1.1-1build1 [33.5 kB] 104s Get:66 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pathspec all 0.12.1-1build1 [24.6 kB] 104s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 104s Get:68 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-trove-classifiers all 2025.11.14.15-1 [11.1 kB] 104s Get:69 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-hatchling all 1.28.0-1 [47.3 kB] 104s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-imagesize all 1.4.1-1build1 [6900 B] 104s Get:71 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 104s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-monotonic all 1.6-3build1 [5518 B] 104s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-pbr all 6.1.1-0ubuntu2 [58.3 kB] 104s Get:74 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pip all 25.1.1+dfsg-1ubuntu2 [1416 kB] 104s Get:75 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 104s Get:76 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-xdist all 3.8.0-4 [34.7 kB] 104s Get:77 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-setuptools-scm all 8.2.1-4 [32.8 kB] 104s Get:78 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-snowballstemmer all 3.0.1-1 [65.9 kB] 104s Get:79 http://ftpmaster.internal/ubuntu resolute/main amd64 sphinx-common all 8.2.3-12 [657 kB] 104s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-alabaster all 0.7.16-0.1build1 [18.6 kB] 104s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sphinx all 8.2.3-12 [483 kB] 104s Get:82 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-sphinxcontrib.apidoc all 0.3.0-2ubuntu1 [8032 B] 104s Get:83 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-zmq amd64 27.1.0-1 [234 kB] 104s Get:84 http://ftpmaster.internal/ubuntu resolute/universe amd64 openstack-pkg-tools all 140 [103 kB] 104s Fetched 83.3 MB in 2s (47.8 MB/s) 104s Selecting previously unselected package python3.13-minimal. 104s (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 ... 125357 files and directories currently installed.) 104s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_amd64.deb ... 104s Unpacking python3.13-minimal (3.13.11-1) ... 104s Selecting previously unselected package python3.13. 104s Preparing to unpack .../01-python3.13_3.13.11-1_amd64.deb ... 104s Unpacking python3.13 (3.13.11-1) ... 104s Selecting previously unselected package m4. 104s Preparing to unpack .../02-m4_1.4.20-2_amd64.deb ... 104s Unpacking m4 (1.4.20-2) ... 104s Selecting previously unselected package autoconf. 104s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 104s Unpacking autoconf (2.72-3.1ubuntu1) ... 104s Selecting previously unselected package autotools-dev. 104s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 104s Unpacking autotools-dev (20240727.1) ... 104s Selecting previously unselected package automake. 104s Preparing to unpack .../05-automake_1%3a1.18.1-3build1_all.deb ... 104s Unpacking automake (1:1.18.1-3build1) ... 104s Selecting previously unselected package autopoint. 104s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 104s Unpacking autopoint (0.23.2-1) ... 104s Selecting previously unselected package libisl23:amd64. 104s Preparing to unpack .../07-libisl23_0.27-1build1_amd64.deb ... 104s Unpacking libisl23:amd64 (0.27-1build1) ... 104s Selecting previously unselected package libmpc3:amd64. 104s Preparing to unpack .../08-libmpc3_1.3.1-2_amd64.deb ... 104s Unpacking libmpc3:amd64 (1.3.1-2) ... 104s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 104s Preparing to unpack .../09-cpp-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package cpp-15. 104s Preparing to unpack .../10-cpp-15_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking cpp-15 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package cpp-x86-64-linux-gnu. 104s Preparing to unpack .../11-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 104s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 104s Selecting previously unselected package cpp. 104s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 104s Unpacking cpp (4:15.2.0-4ubuntu1) ... 104s Selecting previously unselected package libcc1-0:amd64. 104s Preparing to unpack .../13-libcc1-0_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking libcc1-0:amd64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libgomp1:amd64. 104s Preparing to unpack .../14-libgomp1_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking libgomp1:amd64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libitm1:amd64. 104s Preparing to unpack .../15-libitm1_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking libitm1:amd64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libasan8:amd64. 104s Preparing to unpack .../16-libasan8_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking libasan8:amd64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package liblsan0:amd64. 104s Preparing to unpack .../17-liblsan0_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking liblsan0:amd64 (15.2.0-11ubuntu1) ... 104s Selecting previously unselected package libtsan2:amd64. 104s Preparing to unpack .../18-libtsan2_15.2.0-11ubuntu1_amd64.deb ... 104s Unpacking libtsan2:amd64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package libubsan1:amd64. 105s Preparing to unpack .../19-libubsan1_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking libubsan1:amd64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package libhwasan0:amd64. 105s Preparing to unpack .../20-libhwasan0_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking libhwasan0:amd64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package libquadmath0:amd64. 105s Preparing to unpack .../21-libquadmath0_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking libquadmath0:amd64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package libgcc-15-dev:amd64. 105s Preparing to unpack .../22-libgcc-15-dev_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking libgcc-15-dev:amd64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 105s Preparing to unpack .../23-gcc-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package gcc-15. 105s Preparing to unpack .../24-gcc-15_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking gcc-15 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package gcc-x86-64-linux-gnu. 105s Preparing to unpack .../25-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 105s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 105s Selecting previously unselected package gcc. 105s Preparing to unpack .../26-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 105s Unpacking gcc (4:15.2.0-4ubuntu1) ... 105s Selecting previously unselected package libstdc++-15-dev:amd64. 105s Preparing to unpack .../27-libstdc++-15-dev_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking libstdc++-15-dev:amd64 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package g++-15-x86-64-linux-gnu. 105s Preparing to unpack .../28-g++-15-x86-64-linux-gnu_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking g++-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package g++-15. 105s Preparing to unpack .../29-g++-15_15.2.0-11ubuntu1_amd64.deb ... 105s Unpacking g++-15 (15.2.0-11ubuntu1) ... 105s Selecting previously unselected package g++-x86-64-linux-gnu. 105s Preparing to unpack .../30-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 105s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 105s Selecting previously unselected package g++. 105s Preparing to unpack .../31-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 105s Unpacking g++ (4:15.2.0-4ubuntu1) ... 105s Selecting previously unselected package build-essential. 105s Preparing to unpack .../32-build-essential_12.12ubuntu2_amd64.deb ... 105s Unpacking build-essential (12.12ubuntu2) ... 105s Selecting previously unselected package libdebhelper-perl. 105s Preparing to unpack .../33-libdebhelper-perl_13.28ubuntu1_all.deb ... 105s Unpacking libdebhelper-perl (13.28ubuntu1) ... 105s Selecting previously unselected package libtool. 105s Preparing to unpack .../34-libtool_2.5.4-9_all.deb ... 105s Unpacking libtool (2.5.4-9) ... 105s Selecting previously unselected package dh-autoreconf. 105s Preparing to unpack .../35-dh-autoreconf_21_all.deb ... 105s Unpacking dh-autoreconf (21) ... 105s Selecting previously unselected package libarchive-zip-perl. 105s Preparing to unpack .../36-libarchive-zip-perl_1.68-1_all.deb ... 105s Unpacking libarchive-zip-perl (1.68-1) ... 105s Selecting previously unselected package libfile-stripnondeterminism-perl. 105s Preparing to unpack .../37-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 105s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 105s Selecting previously unselected package dh-strip-nondeterminism. 105s Preparing to unpack .../38-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 105s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 105s Selecting previously unselected package debugedit. 105s Preparing to unpack .../39-debugedit_1%3a5.2-3_amd64.deb ... 105s Unpacking debugedit (1:5.2-3) ... 105s Selecting previously unselected package dwz. 105s Preparing to unpack .../40-dwz_0.16-2_amd64.deb ... 105s Unpacking dwz (0.16-2) ... 105s Selecting previously unselected package gettext. 105s Preparing to unpack .../41-gettext_0.23.2-1_amd64.deb ... 105s Unpacking gettext (0.23.2-1) ... 105s Selecting previously unselected package intltool-debian. 105s Preparing to unpack .../42-intltool-debian_0.35.0+20060710.6build1_all.deb ... 105s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 105s Selecting previously unselected package po-debconf. 105s Preparing to unpack .../43-po-debconf_1.0.22_all.deb ... 105s Unpacking po-debconf (1.0.22) ... 105s Selecting previously unselected package debhelper. 105s Preparing to unpack .../44-debhelper_13.28ubuntu1_all.deb ... 105s Unpacking debhelper (13.28ubuntu1) ... 105s Selecting previously unselected package dh-python. 105s Preparing to unpack .../45-dh-python_7.20251231_all.deb ... 105s Unpacking dh-python (7.20251231) ... 105s Selecting previously unselected package sgml-base. 105s Preparing to unpack .../46-sgml-base_1.31+nmu1_all.deb ... 105s Unpacking sgml-base (1.31+nmu1) ... 105s Selecting previously unselected package xml-core. 105s Preparing to unpack .../47-xml-core_0.19build1_all.deb ... 105s Unpacking xml-core (0.19build1) ... 105s Selecting previously unselected package docutils-common. 105s Preparing to unpack .../48-docutils-common_0.22.4+dfsg-1_all.deb ... 105s Unpacking docutils-common (0.22.4+dfsg-1) ... 105s Selecting previously unselected package libjson-perl. 106s Preparing to unpack .../49-libjson-perl_4.10000-1_all.deb ... 106s Unpacking libjson-perl (4.10000-1) ... 106s Selecting previously unselected package libnorm1t64:amd64. 106s Preparing to unpack .../50-libnorm1t64_1.5.9+dfsg-4_amd64.deb ... 106s Unpacking libnorm1t64:amd64 (1.5.9+dfsg-4) ... 106s Selecting previously unselected package libpgm-5.3-0t64:amd64. 106s Preparing to unpack .../51-libpgm-5.3-0t64_5.3.128~dfsg-2.1build2_amd64.deb ... 106s Unpacking libpgm-5.3-0t64:amd64 (5.3.128~dfsg-2.1build2) ... 106s Selecting previously unselected package libsodium23:amd64. 106s Preparing to unpack .../52-libsodium23_1.0.18-2_amd64.deb ... 106s Unpacking libsodium23:amd64 (1.0.18-2) ... 106s Selecting previously unselected package libzmq5:amd64. 106s Preparing to unpack .../53-libzmq5_4.3.5-1build3_amd64.deb ... 106s Unpacking libzmq5:amd64 (4.3.5-1build3) ... 106s Selecting previously unselected package python3-pyproject-hooks. 106s Preparing to unpack .../54-python3-pyproject-hooks_1.2.0-1_all.deb ... 106s Unpacking python3-pyproject-hooks (1.2.0-1) ... 106s Selecting previously unselected package python3-wheel. 106s Preparing to unpack .../55-python3-wheel_0.46.1-2_all.deb ... 106s Unpacking python3-wheel (0.46.1-2) ... 106s Selecting previously unselected package python3-build. 106s Preparing to unpack .../56-python3-build_1.2.2-5_all.deb ... 106s Unpacking python3-build (1.2.2-5) ... 106s Selecting previously unselected package python3-installer. 106s Preparing to unpack .../57-python3-installer_0.7.0+dfsg1-3_all.deb ... 106s Unpacking python3-installer (0.7.0+dfsg1-3) ... 106s Selecting previously unselected package pybuild-plugin-pyproject. 106s Preparing to unpack .../58-pybuild-plugin-pyproject_7.20251231_all.deb ... 106s Unpacking pybuild-plugin-pyproject (7.20251231) ... 106s Selecting previously unselected package python-eventlet-doc. 106s Preparing to unpack .../59-python-eventlet-doc_0.39.0-0ubuntu2_all.deb ... 106s Unpacking python-eventlet-doc (0.39.0-0ubuntu2) ... 106s Selecting previously unselected package python3-all. 106s Preparing to unpack .../60-python3-all_3.14.2-1_amd64.deb ... 106s Unpacking python3-all (3.14.2-1) ... 106s Selecting previously unselected package python3-defusedxml. 106s Preparing to unpack .../61-python3-defusedxml_0.7.1-3build1_all.deb ... 106s Unpacking python3-defusedxml (0.7.1-3build1) ... 106s Selecting previously unselected package python3-roman-numerals. 106s Preparing to unpack .../62-python3-roman-numerals_4.1.0-1_all.deb ... 106s Unpacking python3-roman-numerals (4.1.0-1) ... 106s Selecting previously unselected package python3-docutils. 106s Preparing to unpack .../63-python3-docutils_0.22.4+dfsg-1_all.deb ... 106s Unpacking python3-docutils (0.22.4+dfsg-1) ... 106s Selecting previously unselected package python3-execnet. 106s Preparing to unpack .../64-python3-execnet_2.1.1-1build1_all.deb ... 106s Unpacking python3-execnet (2.1.1-1build1) ... 106s Selecting previously unselected package python3-pathspec. 106s Preparing to unpack .../65-python3-pathspec_0.12.1-1build1_all.deb ... 106s Unpacking python3-pathspec (0.12.1-1build1) ... 106s Selecting previously unselected package python3-pluggy. 106s Preparing to unpack .../66-python3-pluggy_1.6.0-2_all.deb ... 106s Unpacking python3-pluggy (1.6.0-2) ... 106s Selecting previously unselected package python3-trove-classifiers. 106s Preparing to unpack .../67-python3-trove-classifiers_2025.11.14.15-1_all.deb ... 106s Unpacking python3-trove-classifiers (2025.11.14.15-1) ... 106s Selecting previously unselected package python3-hatchling. 106s Preparing to unpack .../68-python3-hatchling_1.28.0-1_all.deb ... 106s Unpacking python3-hatchling (1.28.0-1) ... 106s Selecting previously unselected package python3-imagesize. 106s Preparing to unpack .../69-python3-imagesize_1.4.1-1build1_all.deb ... 106s Unpacking python3-imagesize (1.4.1-1build1) ... 106s Selecting previously unselected package python3-iniconfig. 106s Preparing to unpack .../70-python3-iniconfig_2.1.0-2_all.deb ... 106s Unpacking python3-iniconfig (2.1.0-2) ... 106s Selecting previously unselected package python3-monotonic. 106s Preparing to unpack .../71-python3-monotonic_1.6-3build1_all.deb ... 106s Unpacking python3-monotonic (1.6-3build1) ... 106s Selecting previously unselected package python3-pbr. 106s Preparing to unpack .../72-python3-pbr_6.1.1-0ubuntu2_all.deb ... 106s Unpacking python3-pbr (6.1.1-0ubuntu2) ... 106s Selecting previously unselected package python3-pip. 106s Preparing to unpack .../73-python3-pip_25.1.1+dfsg-1ubuntu2_all.deb ... 106s Unpacking python3-pip (25.1.1+dfsg-1ubuntu2) ... 106s Selecting previously unselected package python3-pytest. 106s Preparing to unpack .../74-python3-pytest_9.0.2-2_all.deb ... 106s Unpacking python3-pytest (9.0.2-2) ... 106s Selecting previously unselected package python3-pytest-xdist. 106s Preparing to unpack .../75-python3-pytest-xdist_3.8.0-4_all.deb ... 106s Unpacking python3-pytest-xdist (3.8.0-4) ... 106s Selecting previously unselected package python3-setuptools-scm. 106s Preparing to unpack .../76-python3-setuptools-scm_8.2.1-4_all.deb ... 106s Unpacking python3-setuptools-scm (8.2.1-4) ... 106s Selecting previously unselected package python3-snowballstemmer. 106s Preparing to unpack .../77-python3-snowballstemmer_3.0.1-1_all.deb ... 106s Unpacking python3-snowballstemmer (3.0.1-1) ... 106s Selecting previously unselected package sphinx-common. 106s Preparing to unpack .../78-sphinx-common_8.2.3-12_all.deb ... 106s Unpacking sphinx-common (8.2.3-12) ... 106s Selecting previously unselected package python3-alabaster. 106s Preparing to unpack .../79-python3-alabaster_0.7.16-0.1build1_all.deb ... 106s Unpacking python3-alabaster (0.7.16-0.1build1) ... 106s Selecting previously unselected package python3-sphinx. 106s Preparing to unpack .../80-python3-sphinx_8.2.3-12_all.deb ... 106s Unpacking python3-sphinx (8.2.3-12) ... 106s Selecting previously unselected package python3-sphinxcontrib.apidoc. 106s Preparing to unpack .../81-python3-sphinxcontrib.apidoc_0.3.0-2ubuntu1_all.deb ... 106s Unpacking python3-sphinxcontrib.apidoc (0.3.0-2ubuntu1) ... 106s Selecting previously unselected package python3-zmq. 106s Preparing to unpack .../82-python3-zmq_27.1.0-1_amd64.deb ... 106s Unpacking python3-zmq (27.1.0-1) ... 106s Selecting previously unselected package openstack-pkg-tools. 106s Preparing to unpack .../83-openstack-pkg-tools_140_all.deb ... 106s Unpacking openstack-pkg-tools (140) ... 106s Setting up dh-python (7.20251231) ... 106s Setting up python3-iniconfig (2.1.0-2) ... 106s Setting up libnorm1t64:amd64 (1.5.9+dfsg-4) ... 106s Setting up libsodium23:amd64 (1.0.18-2) ... 106s Setting up python3-defusedxml (0.7.1-3build1) ... 107s Setting up python3-pbr (6.1.1-0ubuntu2) ... 107s Setting up libarchive-zip-perl (1.68-1) ... 107s Setting up python3-alabaster (0.7.16-0.1build1) ... 107s Setting up libdebhelper-perl (13.28ubuntu1) ... 107s Setting up m4 (1.4.20-2) ... 107s Setting up python-eventlet-doc (0.39.0-0ubuntu2) ... 107s Setting up libgomp1:amd64 (15.2.0-11ubuntu1) ... 107s Setting up python3-wheel (0.46.1-2) ... 107s Setting up python3-setuptools-scm (8.2.1-4) ... 107s Setting up python3-monotonic (1.6-3build1) ... 107s Setting up libpgm-5.3-0t64:amd64 (5.3.128~dfsg-2.1build2) ... 107s Setting up autotools-dev (20240727.1) ... 107s Setting up python3-pyproject-hooks (1.2.0-1) ... 107s Setting up python3-snowballstemmer (3.0.1-1) ... 108s Setting up libquadmath0:amd64 (15.2.0-11ubuntu1) ... 108s Setting up libmpc3:amd64 (1.3.1-2) ... 108s Setting up autopoint (0.23.2-1) ... 108s Setting up python3-pip (25.1.1+dfsg-1ubuntu2) ... 109s Setting up python3-installer (0.7.0+dfsg1-3) ... 109s Setting up autoconf (2.72-3.1ubuntu1) ... 109s Setting up python3-pluggy (1.6.0-2) ... 109s Setting up libubsan1:amd64 (15.2.0-11ubuntu1) ... 109s Setting up dwz (0.16-2) ... 109s Setting up python3-trove-classifiers (2025.11.14.15-1) ... 109s Setting up libhwasan0:amd64 (15.2.0-11ubuntu1) ... 109s Setting up libasan8:amd64 (15.2.0-11ubuntu1) ... 109s Setting up libjson-perl (4.10000-1) ... 109s Setting up debugedit (1:5.2-3) ... 109s Setting up python3-roman-numerals (4.1.0-1) ... 109s Setting up python3.13-minimal (3.13.11-1) ... 110s Setting up sgml-base (1.31+nmu1) ... 110s Setting up libtsan2:amd64 (15.2.0-11ubuntu1) ... 110s Setting up libisl23:amd64 (0.27-1build1) ... 110s Setting up python3-build (1.2.2-5) ... 110s Setting up python3-execnet (2.1.1-1build1) ... 110s Setting up python3-pathspec (0.12.1-1build1) ... 110s Setting up libcc1-0:amd64 (15.2.0-11ubuntu1) ... 110s Setting up liblsan0:amd64 (15.2.0-11ubuntu1) ... 110s Setting up libitm1:amd64 (15.2.0-11ubuntu1) ... 110s Setting up python3-imagesize (1.4.1-1build1) ... 110s Setting up automake (1:1.18.1-3build1) ... 110s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 110s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 110s Setting up gettext (0.23.2-1) ... 110s Setting up libgcc-15-dev:amd64 (15.2.0-11ubuntu1) ... 110s Setting up libzmq5:amd64 (4.3.5-1build3) ... 110s Setting up python3.13 (3.13.11-1) ... 111s Setting up pybuild-plugin-pyproject (7.20251231) ... 111s Setting up python3-pytest (9.0.2-2) ... 112s Setting up python3-all (3.14.2-1) ... 112s Setting up cpp-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 112s Setting up intltool-debian (0.35.0+20060710.6build1) ... 112s Setting up gcc-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 112s Setting up libstdc++-15-dev:amd64 (15.2.0-11ubuntu1) ... 112s Setting up python3-zmq (27.1.0-1) ... 112s Setting up sphinx-common (8.2.3-12) ... 112s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 112s Setting up cpp-15 (15.2.0-11ubuntu1) ... 112s Setting up xml-core (0.19build1) ... 112s Setting up python3-hatchling (1.28.0-1) ... 112s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 112s Setting up g++-15-x86-64-linux-gnu (15.2.0-11ubuntu1) ... 112s Setting up python3-pytest-xdist (3.8.0-4) ... 112s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 112s Setting up po-debconf (1.0.22) ... 112s Setting up openstack-pkg-tools (140) ... 112s Setting up gcc-15 (15.2.0-11ubuntu1) ... 112s Setting up cpp (4:15.2.0-4ubuntu1) ... 112s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 112s Setting up g++-15 (15.2.0-11ubuntu1) ... 112s Setting up libtool (2.5.4-9) ... 112s Setting up gcc (4:15.2.0-4ubuntu1) ... 112s Setting up dh-autoreconf (21) ... 112s Setting up g++ (4:15.2.0-4ubuntu1) ... 112s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 112s Setting up build-essential (12.12ubuntu2) ... 112s Setting up debhelper (13.28ubuntu1) ... 112s Processing triggers for install-info (7.2-5) ... 112s Processing triggers for libc-bin (2.42-2ubuntu4) ... 112s Processing triggers for systemd (259-1ubuntu2) ... 112s Processing triggers for man-db (2.13.1-1) ... 113s Processing triggers for sgml-base (1.31+nmu1) ... 113s Setting up docutils-common (0.22.4+dfsg-1) ... 113s Processing triggers for sgml-base (1.31+nmu1) ... 113s Setting up python3-docutils (0.22.4+dfsg-1) ... 114s Setting up python3-sphinx (8.2.3-12) ... 115s Setting up python3-sphinxcontrib.apidoc (0.3.0-2ubuntu1) ... 116s autopkgtest [10:21:10]: test unittests: [----------------------- 116s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 116s !! 116s 116s ******************************************************************************** 116s Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). 116s 116s By 2026-Feb-18, you need to update your project and remove deprecated calls 116s or your builds will no longer be supported. 116s 116s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 116s ******************************************************************************** 116s 116s !! 116s corresp(dist, value, root_dir) 117s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 117s !! 117s 117s ******************************************************************************** 117s Please consider removing the following classifiers in favor of a SPDX license expression: 117s 117s License :: OSI Approved :: MIT License 117s 117s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 117s ******************************************************************************** 117s 117s !! 117s dist._finalize_license_expression() 117s /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 117s !! 117s 117s ******************************************************************************** 117s Please consider removing the following classifiers in favor of a SPDX license expression: 117s 117s License :: OSI Approved :: MIT License 117s 117s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 117s ******************************************************************************** 117s 117s !! 117s self._finalize_license_expression() 117s running install 117s /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 117s !! 117s 117s ******************************************************************************** 117s Please avoid running ``setup.py`` directly. 117s Instead, use pypa/build, pypa/installer or other 117s standards-based tools. 117s 117s See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 117s ******************************************************************************** 117s 117s !! 117s self.initialize_options() 117s running build 117s running build_py 117s creating build/lib/eventlet 117s copying eventlet/greenpool.py -> build/lib/eventlet 117s copying eventlet/dagpool.py -> build/lib/eventlet 117s copying eventlet/websocket.py -> build/lib/eventlet 117s copying eventlet/asyncio.py -> build/lib/eventlet 117s copying eventlet/semaphore.py -> build/lib/eventlet 117s copying eventlet/corolocal.py -> build/lib/eventlet 117s copying eventlet/tpool.py -> build/lib/eventlet 117s copying eventlet/db_pool.py -> build/lib/eventlet 117s copying eventlet/coros.py -> build/lib/eventlet 117s copying eventlet/queue.py -> build/lib/eventlet 117s copying eventlet/_version.py -> build/lib/eventlet 117s copying eventlet/convenience.py -> build/lib/eventlet 117s copying eventlet/wsgi.py -> build/lib/eventlet 117s copying eventlet/patcher.py -> build/lib/eventlet 117s copying eventlet/lock.py -> build/lib/eventlet 117s copying eventlet/pools.py -> build/lib/eventlet 117s copying eventlet/debug.py -> build/lib/eventlet 117s copying eventlet/timeout.py -> build/lib/eventlet 117s copying eventlet/event.py -> build/lib/eventlet 117s copying eventlet/greenthread.py -> build/lib/eventlet 117s copying eventlet/backdoor.py -> build/lib/eventlet 117s copying eventlet/__init__.py -> build/lib/eventlet 117s running egg_info 117s creating eventlet.egg-info 117s writing eventlet.egg-info/PKG-INFO 117s writing dependency_links to eventlet.egg-info/dependency_links.txt 117s writing requirements to eventlet.egg-info/requires.txt 117s writing top-level names to eventlet.egg-info/top_level.txt 117s writing manifest file 'eventlet.egg-info/SOURCES.txt' 117s reading manifest file 'eventlet.egg-info/SOURCES.txt' 117s reading manifest template 'MANIFEST.in' 117s warning: no files found matching 'Makefile' under directory 'doc' 117s adding license file 'LICENSE' 117s adding license file 'AUTHORS' 117s writing manifest file 'eventlet.egg-info/SOURCES.txt' 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.green' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.green' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.green' to be distributed and are 117s already explicitly excluding 'eventlet.green' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.green.OpenSSL' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.green.OpenSSL' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.green.OpenSSL' to be distributed and are 117s already explicitly excluding 'eventlet.green.OpenSSL' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.green.http' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.green.http' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.green.http' to be distributed and are 117s already explicitly excluding 'eventlet.green.http' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.green.urllib' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.green.urllib' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.green.urllib' to be distributed and are 117s already explicitly excluding 'eventlet.green.urllib' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.greenio' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.greenio' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.greenio' to be distributed and are 117s already explicitly excluding 'eventlet.greenio' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.hubs' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.hubs' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.hubs' to be distributed and are 117s already explicitly excluding 'eventlet.hubs' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.support' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.support' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.support' to be distributed and are 117s already explicitly excluding 'eventlet.support' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.zipkin' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.zipkin' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.zipkin' to be distributed and are 117s already explicitly excluding 'eventlet.zipkin' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.zipkin._thrift' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.zipkin._thrift' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.zipkin._thrift' to be distributed and are 117s already explicitly excluding 'eventlet.zipkin._thrift' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift.zipkinCore' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.zipkin._thrift.zipkinCore' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.zipkin._thrift.zipkinCore' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.zipkin._thrift.zipkinCore' to be distributed and are 117s already explicitly excluding 'eventlet.zipkin._thrift.zipkinCore' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin.example' is absent from the `packages` configuration. 117s !! 117s 117s ******************************************************************************** 117s ############################ 117s # Package would be ignored # 117s ############################ 117s Python recognizes 'eventlet.zipkin.example' as an importable package[^1], 117s but it is absent from setuptools' `packages` configuration. 117s 117s This leads to an ambiguous overall configuration. If you want to distribute this 117s package, please make sure that 'eventlet.zipkin.example' is explicitly added 117s to the `packages` configuration field. 117s 117s Alternatively, you can also rely on setuptools' discovery methods 117s (for example by using `find_namespace_packages(...)`/`find_namespace:` 117s instead of `find_packages(...)`/`find:`). 117s 117s You can read more about "package discovery" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 117s 117s If you don't want 'eventlet.zipkin.example' to be distributed and are 117s already explicitly excluding 'eventlet.zipkin.example' via 117s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 117s you can try to use `exclude_package_data`, or `include-package-data=False` in 117s combination with a more fine grained `package-data` configuration. 117s 117s You can read more about "package data files" on setuptools documentation page: 117s 117s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 117s 117s 117s [^1]: For Python, any directory (with suitable naming) can be imported, 117s even if it does not contain any `.py` files. 117s On the other hand, currently there is no concept of package data 117s directory, all directories are treated like packages. 117s ******************************************************************************** 117s 117s !! 117s check.warn(importable) 117s creating build/lib/eventlet/green 117s copying eventlet/green/BaseHTTPServer.py -> build/lib/eventlet/green 117s copying eventlet/green/CGIHTTPServer.py -> build/lib/eventlet/green 117s copying eventlet/green/MySQLdb.py -> build/lib/eventlet/green 117s copying eventlet/green/Queue.py -> build/lib/eventlet/green 117s copying eventlet/green/SimpleHTTPServer.py -> build/lib/eventlet/green 117s copying eventlet/green/SocketServer.py -> build/lib/eventlet/green 117s copying eventlet/green/__init__.py -> build/lib/eventlet/green 117s copying eventlet/green/_socket_nodns.py -> build/lib/eventlet/green 117s copying eventlet/green/asynchat.py -> build/lib/eventlet/green 117s copying eventlet/green/asyncore.py -> build/lib/eventlet/green 117s copying eventlet/green/builtin.py -> build/lib/eventlet/green 117s copying eventlet/green/ftplib.py -> build/lib/eventlet/green 117s copying eventlet/green/httplib.py -> build/lib/eventlet/green 117s copying eventlet/green/os.py -> build/lib/eventlet/green 117s copying eventlet/green/profile.py -> build/lib/eventlet/green 117s copying eventlet/green/select.py -> build/lib/eventlet/green 117s copying eventlet/green/selectors.py -> build/lib/eventlet/green 117s copying eventlet/green/socket.py -> build/lib/eventlet/green 117s copying eventlet/green/ssl.py -> build/lib/eventlet/green 117s copying eventlet/green/subprocess.py -> build/lib/eventlet/green 117s copying eventlet/green/thread.py -> build/lib/eventlet/green 117s copying eventlet/green/threading.py -> build/lib/eventlet/green 117s copying eventlet/green/time.py -> build/lib/eventlet/green 117s copying eventlet/green/urllib2.py -> build/lib/eventlet/green 117s copying eventlet/green/zmq.py -> build/lib/eventlet/green 117s creating build/lib/eventlet/green/OpenSSL 117s copying eventlet/green/OpenSSL/SSL.py -> build/lib/eventlet/green/OpenSSL 117s copying eventlet/green/OpenSSL/__init__.py -> build/lib/eventlet/green/OpenSSL 117s copying eventlet/green/OpenSSL/crypto.py -> build/lib/eventlet/green/OpenSSL 117s copying eventlet/green/OpenSSL/tsafe.py -> build/lib/eventlet/green/OpenSSL 117s copying eventlet/green/OpenSSL/version.py -> build/lib/eventlet/green/OpenSSL 117s creating build/lib/eventlet/green/http 117s copying eventlet/green/http/__init__.py -> build/lib/eventlet/green/http 117s copying eventlet/green/http/client.py -> build/lib/eventlet/green/http 117s copying eventlet/green/http/cookiejar.py -> build/lib/eventlet/green/http 117s copying eventlet/green/http/cookies.py -> build/lib/eventlet/green/http 117s copying eventlet/green/http/server.py -> build/lib/eventlet/green/http 117s creating build/lib/eventlet/green/urllib 117s copying eventlet/green/urllib/__init__.py -> build/lib/eventlet/green/urllib 117s copying eventlet/green/urllib/error.py -> build/lib/eventlet/green/urllib 117s copying eventlet/green/urllib/parse.py -> build/lib/eventlet/green/urllib 117s copying eventlet/green/urllib/request.py -> build/lib/eventlet/green/urllib 117s copying eventlet/green/urllib/response.py -> build/lib/eventlet/green/urllib 117s creating build/lib/eventlet/greenio 117s copying eventlet/greenio/__init__.py -> build/lib/eventlet/greenio 117s copying eventlet/greenio/base.py -> build/lib/eventlet/greenio 117s copying eventlet/greenio/py3.py -> build/lib/eventlet/greenio 117s creating build/lib/eventlet/hubs 117s copying eventlet/hubs/__init__.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/asyncio.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/epolls.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/hub.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/kqueue.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/poll.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/pyevent.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/selects.py -> build/lib/eventlet/hubs 117s copying eventlet/hubs/timer.py -> build/lib/eventlet/hubs 117s creating build/lib/eventlet/support 117s copying eventlet/support/__init__.py -> build/lib/eventlet/support 117s copying eventlet/support/greendns.py -> build/lib/eventlet/support 117s copying eventlet/support/greenlets.py -> build/lib/eventlet/support 117s copying eventlet/support/psycopg2_patcher.py -> build/lib/eventlet/support 117s copying eventlet/support/pylib.py -> build/lib/eventlet/support 117s copying eventlet/support/stacklesspypys.py -> build/lib/eventlet/support 117s copying eventlet/support/stacklesss.py -> build/lib/eventlet/support 117s creating build/lib/eventlet/zipkin 117s copying eventlet/zipkin/README.rst -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/__init__.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/api.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/client.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/greenthread.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/http.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/log.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/patcher.py -> build/lib/eventlet/zipkin 117s copying eventlet/zipkin/wsgi.py -> build/lib/eventlet/zipkin 117s creating build/lib/eventlet/zipkin/_thrift 117s copying eventlet/zipkin/_thrift/README.rst -> build/lib/eventlet/zipkin/_thrift 117s copying eventlet/zipkin/_thrift/__init__.py -> build/lib/eventlet/zipkin/_thrift 117s copying eventlet/zipkin/_thrift/zipkinCore.thrift -> build/lib/eventlet/zipkin/_thrift 117s creating build/lib/eventlet/zipkin/_thrift/zipkinCore 117s copying eventlet/zipkin/_thrift/zipkinCore/__init__.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 117s copying eventlet/zipkin/_thrift/zipkinCore/constants.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 117s copying eventlet/zipkin/_thrift/zipkinCore/ttypes.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 117s creating build/lib/eventlet/zipkin/example 117s copying eventlet/zipkin/example/ex1.png -> build/lib/eventlet/zipkin/example 117s copying eventlet/zipkin/example/ex2.png -> build/lib/eventlet/zipkin/example 117s copying eventlet/zipkin/example/ex3.png -> build/lib/eventlet/zipkin/example 117s running install_lib 117s creating /debian/tmp/usr/lib/python3/dist-packages 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/greenpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/dagpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/websocket.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/asyncio.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/semaphore.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/CGIHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/select.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 117s copying build/lib/eventlet/green/http/cookies.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 117s copying build/lib/eventlet/green/http/cookiejar.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 117s copying build/lib/eventlet/green/http/client.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 117s copying build/lib/eventlet/green/http/server.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 117s copying build/lib/eventlet/green/http/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 117s copying build/lib/eventlet/green/os.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/SimpleHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/httplib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/_socket_nodns.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/socket.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 117s copying build/lib/eventlet/green/urllib/request.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 117s copying build/lib/eventlet/green/urllib/error.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 117s copying build/lib/eventlet/green/urllib/parse.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 117s copying build/lib/eventlet/green/urllib/response.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 117s copying build/lib/eventlet/green/urllib/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 117s copying build/lib/eventlet/green/builtin.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/subprocess.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/Queue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/asynchat.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 117s copying build/lib/eventlet/green/OpenSSL/SSL.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 117s copying build/lib/eventlet/green/OpenSSL/version.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 117s copying build/lib/eventlet/green/OpenSSL/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 117s copying build/lib/eventlet/green/OpenSSL/crypto.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 117s copying build/lib/eventlet/green/OpenSSL/tsafe.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 117s copying build/lib/eventlet/green/asyncore.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/ftplib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/SocketServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/threading.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/selectors.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/urllib2.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/thread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/time.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/ssl.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/MySQLdb.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/zmq.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/BaseHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/green/profile.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 117s copying build/lib/eventlet/corolocal.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/http.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/api.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/wsgi.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 117s copying build/lib/eventlet/zipkin/_thrift/zipkinCore.thrift -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 117s copying build/lib/eventlet/zipkin/_thrift/README.rst -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 117s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/ttypes.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 117s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/constants.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 117s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 117s copying build/lib/eventlet/zipkin/_thrift/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 117s copying build/lib/eventlet/zipkin/client.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/README.rst -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/log.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 117s copying build/lib/eventlet/zipkin/example/ex2.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 117s copying build/lib/eventlet/zipkin/example/ex3.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 117s copying build/lib/eventlet/zipkin/example/ex1.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 117s copying build/lib/eventlet/zipkin/greenthread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/zipkin/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 117s copying build/lib/eventlet/tpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/db_pool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/coros.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/queue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/_version.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/convenience.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 117s copying build/lib/eventlet/greenio/base.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 117s copying build/lib/eventlet/greenio/py3.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 117s copying build/lib/eventlet/greenio/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 117s copying build/lib/eventlet/wsgi.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/kqueue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/asyncio.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/pyevent.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/timer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/selects.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/hub.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/epolls.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/hubs/poll.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 117s copying build/lib/eventlet/lock.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/pools.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/debug.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/timeout.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/greenlets.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/greendns.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/psycopg2_patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/stacklesss.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/pylib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/stacklesspypys.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/support/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 117s copying build/lib/eventlet/event.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/greenthread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/backdoor.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s copying build/lib/eventlet/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenpool.py to greenpool.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/dagpool.py to dagpool.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/websocket.py to websocket.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/asyncio.py to asyncio.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/semaphore.py to semaphore.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/CGIHTTPServer.py to CGIHTTPServer.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/select.py to select.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookies.py to cookies.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookiejar.py to cookiejar.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/client.py to client.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/server.py to server.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/os.py to os.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SimpleHTTPServer.py to SimpleHTTPServer.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/httplib.py to httplib.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/_socket_nodns.py to _socket_nodns.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/socket.py to socket.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/request.py to request.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/error.py to error.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/parse.py to parse.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/response.py to response.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/builtin.py to builtin.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/subprocess.py to subprocess.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/Queue.py to Queue.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asynchat.py to asynchat.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/SSL.py to SSL.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/version.py to version.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/crypto.py to crypto.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/tsafe.py to tsafe.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asyncore.py to asyncore.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ftplib.py to ftplib.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SocketServer.py to SocketServer.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/threading.py to threading.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/selectors.py to selectors.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib2.py to urllib2.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/thread.py to thread.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/time.py to time.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ssl.py to ssl.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/MySQLdb.py to MySQLdb.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/zmq.py to zmq.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/BaseHTTPServer.py to BaseHTTPServer.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/profile.py to profile.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/corolocal.py to corolocal.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/http.py to http.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/api.py to api.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/wsgi.py to wsgi.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/patcher.py to patcher.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/ttypes.py to ttypes.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/constants.py to constants.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/client.py to client.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/log.py to log.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/greenthread.py to greenthread.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/tpool.py to tpool.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/db_pool.py to db_pool.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/coros.py to coros.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/queue.py to queue.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/_version.py to _version.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/convenience.py to convenience.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/base.py to base.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/py3.py to py3.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/wsgi.py to wsgi.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/patcher.py to patcher.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/kqueue.py to kqueue.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/asyncio.py to asyncio.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/pyevent.py to pyevent.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/timer.py to timer.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/selects.py to selects.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/hub.py to hub.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/epolls.py to epolls.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/poll.py to poll.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/lock.py to lock.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/pools.py to pools.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/debug.py to debug.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/timeout.py to timeout.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greenlets.py to greenlets.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greendns.py to greendns.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/psycopg2_patcher.py to psycopg2_patcher.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesss.py to stacklesss.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/pylib.py to pylib.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesspypys.py to stacklesspypys.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__init__.py to __init__.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/event.py to event.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenthread.py to greenthread.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/backdoor.py to backdoor.cpython-313.pyc 117s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/__init__.py to __init__.cpython-313.pyc 117s running install_egg_info 117s Copying eventlet.egg-info to /debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info 117s Skipping SOURCES.txt 117s running install_scripts 118s ============================= test session starts ============================== 118s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 118s cachedir: .pytest_cache 118s rootdir: /tmp/autopkgtest.MsSp80/build.TJa/src 118s configfile: pyproject.toml 118s plugins: typeguard-4.4.4, xdist-3.8.0 118s created: 2/2 workers 118s 2 workers [718 items] 118s 118s scheduling tests via LoadScheduling 118s 118s tests/api_test.py::TestApi::test_001_trampoline_timeout 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 118s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 118s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 118s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 118s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 118s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 118s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 118s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 118s tests/debug_test.py::TestSpew::test_line 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line 118s tests/debug_test.py::TestSpew::test_line_global 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_global 118s tests/debug_test.py::TestSpew::test_line_nofile 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nofile 118s tests/debug_test.py::TestSpew::test_line_nooutput 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nooutput 118s tests/debug_test.py::TestSpew::test_line_novalue 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_novalue 118s tests/debug_test.py::TestSpew::test_spew 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_spew 118s tests/debug_test.py::TestSpew::test_unspew 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_unspew 118s tests/debug_test.py::TestDebug::test_everything 118s [gw1] [ 5%] PASSED tests/debug_test.py::TestDebug::test_everything 118s tests/debug_test.py::TestDebug::test_hub_exceptions 118s [gw1] [ 6%] PASSED tests/debug_test.py::TestDebug::test_hub_exceptions 118s tests/env_test.py::test_hub_selects 118s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_001_trampoline_timeout 118s tests/api_test.py::TestApi::test_connect_ssl 118s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_ssl 118s tests/api_test.py::TestApi::test_connect_tcp 118s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_tcp 118s tests/api_test.py::TestApi::test_killing_dormant 118s [gw1] [ 6%] PASSED tests/env_test.py::test_hub_selects 118s tests/env_test.py::test_tpool_dns 118s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_killing_dormant 118s tests/api_test.py::TestApi::test_nested_with_timeout 118s [gw1] [ 6%] PASSED tests/env_test.py::test_tpool_dns 118s tests/env_test.py::test_tpool_size 118s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_nested_with_timeout 118s tests/api_test.py::TestApi::test_tcp_listener 118s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_tcp_listener 118s tests/api_test.py::TestApi::test_timeout_cancel 118s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_timeout_cancel 118s tests/api_test.py::test_wrap_is_timeout 118s [gw0] [ 7%] PASSED tests/api_test.py::test_wrap_is_timeout 118s tests/api_test.py::test_timeouterror_deprecated 118s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_size 118s tests/env_test.py::test_tpool_negative 118s [gw0] [ 7%] PASSED tests/api_test.py::test_timeouterror_deprecated 119s tests/api_test.py::test_zero_second_sleep 119s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_negative 119s tests/env_test.py::test_tpool_zero 119s [gw0] [ 8%] PASSED tests/api_test.py::test_zero_second_sleep 119s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 119s [gw1] [ 8%] PASSED tests/env_test.py::test_tpool_zero 119s tests/event_test.py::TestEvent::test_double_exception 119s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_double_exception 119s tests/event_test.py::TestEvent::test_multiple_waiters 119s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters 119s tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 119s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 119s tests/event_test.py::TestEvent::test_reset 119s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_reset 119s tests/event_test.py::TestEvent::test_waiting_for_event 119s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_waiting_for_event 119s tests/event_test.py::test_wait_timeout_ok 119s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 119s tests/backdoor_test.py::BackdoorTest::test_server 119s [gw1] [ 9%] PASSED tests/event_test.py::test_wait_timeout_ok 119s tests/event_test.py::test_wait_timeout_exceed 119s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_server 119s tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 119s [gw1] [ 9%] PASSED tests/event_test.py::test_wait_timeout_exceed 119s tests/green_http_test.py::test_green_http_doesnt_change_original_module 119s [gw0] [ 9%] SKIPPED tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 119s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 119s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 119s tests/convenience_test.py::TestServe::test_blocking 119s [gw1] [ 9%] PASSED tests/green_http_test.py::test_green_http_doesnt_change_original_module 119s tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_blocking 119s tests/convenience_test.py::TestServe::test_called_for_each_connection 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_called_for_each_connection 119s tests/convenience_test.py::TestServe::test_concurrency 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_concurrency 119s tests/convenience_test.py::TestServe::test_excepting_server 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server 119s tests/convenience_test.py::TestServe::test_excepting_server_already_closed 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server_already_closed 119s tests/convenience_test.py::TestServe::test_exiting_server 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_exiting_server 119s tests/convenience_test.py::TestServe::test_raising_stopserve 119s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_raising_stopserve 119s tests/convenience_test.py::TestServe::test_wrap_ssl 119s [gw0] [ 11%] PASSED tests/convenience_test.py::TestServe::test_wrap_ssl 119s tests/convenience_test.py::test_socket_reuse 119s [gw0] [ 11%] PASSED tests/convenience_test.py::test_socket_reuse 119s tests/convenience_test.py::test_reuse_random_port_warning 119s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuse_random_port_warning 119s tests/convenience_test.py::test_reuseport_oserror 119s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuseport_oserror 119s tests/dagpool_test.py::test_check_no_suspend 119s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_check_no_suspend 119s tests/dagpool_test.py::test_init 119s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_init 119s tests/dagpool_test.py::test_wait_each_empty 119s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_empty 119s tests/dagpool_test.py::test_wait_each_preload 119s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_preload 119s tests/dagpool_test.py::test_wait_each_posted 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_posted 119s tests/dagpool_test.py::test_wait_posted 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_posted 119s tests/dagpool_test.py::test_spawn_collision_preload 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_preload 119s tests/dagpool_test.py::test_spawn_collision_post 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_post 119s tests/dagpool_test.py::test_spawn_collision_spawn 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_spawn 119s tests/dagpool_test.py::test_spawn_multiple 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_multiple 119s tests/dagpool_test.py::test_spawn_many 119s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_many 119s tests/dagpool_test.py::test_wait_each_all 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_wait_each_all 119s tests/dagpool_test.py::test_kill 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_kill 119s tests/dagpool_test.py::test_post_collision_preload 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_preload 119s tests/dagpool_test.py::test_post_collision_post 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_post 119s tests/dagpool_test.py::test_post_collision_spawn 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_spawn 119s tests/dagpool_test.py::test_post_replace 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_replace 119s tests/dagpool_test.py::test_getitem 119s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_getitem 119s tests/dagpool_test.py::test_waitall_exc 119s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_waitall_exc 119s tests/dagpool_test.py::test_propagate_exc 119s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_propagate_exc 119s tests/dagpool_test.py::test_wait_each_exc 119s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_wait_each_exc 119s tests/dagpool_test.py::test_post_get_exc 119s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_post_get_exc 119s tests/db_pool_test.py::test_raw_pool_issue_125 119s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_issue_125 119s tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 119s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 119s tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 119s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 119s tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 119s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 119s tests/db_pool_test.py::test_raw_pool_clear_update_current_size 119s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_clear_update_current_size 119s tests/db_pool_test.py::Test01MysqlTpool::test_bool 119s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_bool 119s tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 119s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 119s tests/db_pool_test.py::Test01MysqlTpool::test_connecting 119s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connecting 119s tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 119s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 119s tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 119s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 119s tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 119s tests/db_pool_test.py::Test01MysqlTpool::test_put_none 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_none 119s tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 119s tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 119s tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 119s tests/db_pool_test.py::Test01MysqlTpool::test_run_query 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_query 119s tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 119s tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 119s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 119s tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 119s tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 119s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 119s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 119s tests/db_pool_test.py::Test02MysqlRaw::test_bool 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_bool 119s tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 119s tests/db_pool_test.py::Test02MysqlRaw::test_connecting 119s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connecting 119s tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 119s tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 119s tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 119s tests/db_pool_test.py::Test02MysqlRaw::test_put_none 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_none 119s tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 119s tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 119s tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 119s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 119s tests/db_pool_test.py::Test02MysqlRaw::test_run_query 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_query 119s tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 119s tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 119s tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 119s tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 119s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 119s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 119s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 119s tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 119s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 119s tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 119s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 119s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 119s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 119s tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 119s [gw1] [ 20%] PASSED tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 119s tests/green_http_test.py::test_http_request_encode_chunked_kwarg 119s [gw1] [ 20%] PASSED tests/green_http_test.py::test_http_request_encode_chunked_kwarg 119s tests/green_profile_test.py::test_green_profile_basic 119s [gw1] [ 20%] PASSED tests/green_profile_test.py::test_green_profile_basic 119s tests/green_select_test.py::test_select_mark_file_as_reopened 119s [gw0] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 120s tests/greenio_test.py::TestGreenSocket::test_full_duplex 120s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_full_duplex 120s tests/greenio_test.py::TestGreenSocket::test_invalid_connection 120s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_invalid_connection 120s tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 120s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 120s tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 120s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 120s tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 120s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 120s tests/greenio_test.py::TestGreenSocket::test_recv_timeout 120s [gw1] [ 21%] PASSED tests/green_select_test.py::test_select_mark_file_as_reopened 120s tests/greendns_test.py::TestHostsResolver::test_default_fname 120s [gw1] [ 21%] PASSED tests/greendns_test.py::TestHostsResolver::test_default_fname 120s tests/greendns_test.py::TestHostsResolver::test_getaliases 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases 120s tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 120s tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 120s tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 120s tests/greendns_test.py::TestHostsResolver::test_load_no_contents 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_no_contents 120s tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 120s tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 120s [gw0] [ 22%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_timeout 120s tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 120s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 120s tests/greendns_test.py::TestHostsResolver::test_query_A 120s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_A 120s tests/greendns_test.py::TestHostsResolver::test_query_AAAA 120s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_AAAA 120s tests/greendns_test.py::TestHostsResolver::test_query_CNAME 120s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_CNAME 120s tests/greendns_test.py::TestHostsResolver::test_query_ans_types 120s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_ans_types 120s tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 120s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 120s tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 120s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 120s tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 120s [gw0] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 120s tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 120s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 120s tests/greendns_test.py::TestHostsResolver::test_readlines_lines 120s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_lines 120s tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 120s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 120s tests/greendns_test.py::TestUdp::test_udp_ipv4 120s [gw1] [ 24%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4 120s tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 120s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 120s tests/greenio_test.py::TestGreenSocket::test_send_timeout 120s [gw1] [ 24%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 120s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 120s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_send_timeout 120s tests/greenio_test.py::TestGreenSocket::test_sendall 120s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 120s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 120s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall 120s tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 120s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 120s tests/greendns_test.py::TestUdp::test_udp_ipv6 120s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6 120s tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 120s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 120s tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 120s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 120s tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 120s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 120s tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 120s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 121s tests/greenio_test.py::TestGreenSocket::test_socketpair_select 121s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_socketpair_select 121s tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 121s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 121s tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 121s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 121s tests/greenio_test.py::TestGreenSocket::test_wrap_socket 121s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_wrap_socket 121s tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 121s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 121s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 121s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 121s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 121s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 121s tests/greenio_test.py::test_get_fileno_of_a_socket_works 121s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_works 121s tests/greenio_test.py::test_get_fileno_of_an_int_works 121s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_an_int_works 121s tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 121s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 121s tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 121s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 121s tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 121s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 121s tests/greenio_test.py::TestGreenPipe::test_pipe 121s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 121s tests/greendns_test.py::TestProxyResolver::test_getaliases 121s [gw1] [ 27%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases 121s tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 121s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 121s tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 121s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 121s tests/greendns_test.py::TestProxyResolver::test_hosts 121s [gw0] [ 28%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe 121s tests/greenio_test.py::TestGreenPipe::test_pipe_read 121s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts 121s tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 121s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 121s tests/greendns_test.py::TestProxyResolver::test_noanswer 121s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer 121s tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 121s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 121s tests/greendns_test.py::TestProxyResolver::test_nxdomain 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_nxdomain 121s tests/greendns_test.py::TestProxyResolver::test_resolver 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_resolver 121s tests/greendns_test.py::TestResolve::test_A 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_A 121s tests/greendns_test.py::TestResolve::test_AAAA 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_AAAA 121s tests/greendns_test.py::TestResolve::test_exc 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_exc 121s tests/greendns_test.py::TestResolve::test_noraise_noanswer 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_noraise_noanswer 121s tests/greendns_test.py::TestResolve::test_noraise_nxdomain 121s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_noraise_nxdomain 121s tests/greendns_test.py::TestResolve::test_timeout 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_timeout 121s tests/greendns_test.py::TestResolve::test_unknown_rdtype 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_unknown_rdtype 121s tests/greendns_test.py::TestResolveCname::test_no_answer 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolveCname::test_no_answer 121s tests/greendns_test.py::TestResolveCname::test_nodata 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolveCname::test_nodata 121s tests/greendns_test.py::TestResolveCname::test_success 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolveCname::test_success 121s tests/greendns_test.py::TestResolveCname::test_timeout 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolveCname::test_timeout 121s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 121s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 121s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 121s tests/greendns_test.py::TestGetaddrinfo::test_canonname 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_canonname 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 121s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 121s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 121s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 121s tests/greendns_test.py::TestGetaddrinfo::test_host_none 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none 121s tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 121s tests/greendns_test.py::TestGetaddrinfo::test_noport 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_noport 121s tests/greendns_test.py::TestGetaddrinfo::test_numerichost 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numerichost 121s tests/greendns_test.py::TestGetaddrinfo::test_numericserv 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numericserv 121s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 121s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 121s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 121s tests/greendns_test.py::TestIsIpAddr::test_isv4 121s [gw0] [ 33%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read 121s tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 121s [gw0] [ 34%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 121s tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 121s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4 121s tests/greendns_test.py::TestIsIpAddr::test_isv4_false 121s [gw0] [ 34%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 121s tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 121s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_false 121s tests/greendns_test.py::TestIsIpAddr::test_isv4_none 121s [gw0] [ 34%] PASSED tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 121s tests/greenio_test.py::TestGreenPipe::test_truncate 121s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_none 121s [gw0] [ 34%] PASSED tests/greenio_test.py::TestGreenPipe::test_truncate 121s tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 121s tests/greendns_test.py::TestIsIpAddr::test_isv6 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6 121s tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 121s tests/greendns_test.py::TestIsIpAddr::test_isv6_none 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_none 121s tests/greendns_test.py::TestIsIpAddr::test_none 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_none 121s tests/greendns_test.py::TestIsIpAddr::test_v4 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4 121s tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 121s tests/greendns_test.py::TestIsIpAddr::test_v6_addr 121s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v6_addr 121s tests/greendns_test.py::TestGethostbyname::test_ipaddr 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname::test_ipaddr 121s tests/greendns_test.py::TestGethostbyname::test_name 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname::test_name 121s tests/greendns_test.py::TestGetaliases::test_getaliases 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGetaliases::test_getaliases 121s tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 121s tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 121s tests/greendns_test.py::TestGethostbyname_ex::test_name 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_name 121s tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 121s [gw1] [ 36%] PASSED tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 121s tests/greendns_test.py::test_reverse_name 121s [gw1] [ 37%] PASSED tests/greendns_test.py::test_reverse_name 121s tests/greendns_test.py::test_proxy_resolve_unqualified 121s [gw1] [ 37%] PASSED tests/greendns_test.py::test_proxy_resolve_unqualified 121s tests/greendns_test.py::test_hosts_priority 121s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_priority 121s tests/greendns_test.py::test_hosts_no_network 121s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_no_network 121s tests/greendns_test.py::test_import_rdtypes_then_eventlet 121s [gw1] [ 37%] PASSED tests/greendns_test.py::test_import_rdtypes_then_eventlet 122s tests/greenio_test.py::TestGreenSocket::test_accept_timeout 122s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_accept_timeout 122s tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 122s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 122s tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 122s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 122s tests/greenio_test.py::TestGreenSocket::test_closure 122s [gw1] [ 38%] SKIPPED tests/greenio_test.py::TestGreenSocket::test_closure 122s tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 122s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 122s tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 122s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 122s tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 122s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 122s tests/hub_test.py::test_use_hub_class 122s [gw1] [ 38%] PASSED tests/hub_test.py::test_use_hub_class 122s tests/hub_test.py::test_kqueue_unsupported 122s [gw1] [ 38%] PASSED tests/hub_test.py::test_kqueue_unsupported 122s tests/mysqldb_test.py::TestMySQLdb::test_connecting 122s [gw1] [ 38%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting 122s tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 122s tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 122s tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 122s tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 122s tests/mysqldb_test.py::TestMySQLdb::test_run_query 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_query 122s tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 122s tests/mysqldb_test.py::TestMySQLdb::test_yields 122s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_yields 122s tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 122s [gw1] [ 40%] SKIPPED tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 122s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 122s [gw1] [ 40%] PASSED tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 122s tests/openssl_test.py::test_import 122s [gw1] [ 40%] PASSED tests/openssl_test.py::test_import 122s tests/os_test.py::test_pathlib_open_issue_534 122s [gw1] [ 40%] PASSED tests/os_test.py::test_pathlib_open_issue_534 122s tests/os_test.py::test_os_read_nonblocking 122s [gw1] [ 40%] PASSED tests/os_test.py::test_os_read_nonblocking 124s tests/os_test.py::test_os_write_nonblocking 124s [gw1] [ 40%] PASSED tests/os_test.py::test_os_write_nonblocking 124s tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 124s [gw1] [ 40%] SKIPPED tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 125s tests/patcher_test.py::ImportPatched::test_patch_a_module 125s [gw1] [ 41%] PASSED tests/patcher_test.py::ImportPatched::test_patch_a_module 125s tests/patcher_test.py::test_import_patched_handles_sub_modules 125s [gw1] [ 41%] PASSED tests/patcher_test.py::test_import_patched_handles_sub_modules 125s tests/patcher_test.py::MonkeyPatch::test_boolean 125s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean 125s tests/patcher_test.py::MonkeyPatch::test_boolean_all 125s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all 125s tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 125s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 126s tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 126s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 126s tests/patcher_test.py::MonkeyPatch::test_boolean_double 126s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_double 126s tests/patcher_test.py::MonkeyPatch::test_boolean_negative 126s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative 126s tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 126s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 126s tests/patcher_test.py::MonkeyPatch::test_boolean_single 126s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_single 126s tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 126s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 127s tests/patcher_test.py::MonkeyPatch::test_early_patching 127s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_early_patching 127s tests/patcher_test.py::MonkeyPatch::test_late_patching 127s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_late_patching 127s tests/patcher_test.py::MonkeyPatch::test_patched_modules 127s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_patched_modules 127s tests/patcher_test.py::MonkeyPatch::test_typeerror 127s [gw1] [ 43%] PASSED tests/patcher_test.py::MonkeyPatch::test_typeerror 128s tests/patcher_test.py::Tpool::test_patched_thread 128s [gw1] [ 43%] PASSED tests/patcher_test.py::Tpool::test_patched_thread 128s tests/patcher_test.py::Tpool::test_simple 128s [gw1] [ 43%] PASSED tests/patcher_test.py::Tpool::test_simple 129s tests/patcher_test.py::Tpool::test_unpatched_thread 129s [gw1] [ 43%] PASSED tests/patcher_test.py::Tpool::test_unpatched_thread 129s tests/patcher_test.py::test_subprocess_after_monkey_patch 129s [gw1] [ 43%] PASSED tests/patcher_test.py::test_subprocess_after_monkey_patch 129s tests/patcher_test.py::Threading::test_greenlet 129s [gw1] [ 43%] PASSED tests/patcher_test.py::Threading::test_greenlet 129s tests/patcher_test.py::Threading::test_greenthread 129s [gw1] [ 43%] PASSED tests/patcher_test.py::Threading::test_greenthread 130s tests/patcher_test.py::Threading::test_keyerror 130s [gw1] [ 44%] PASSED tests/patcher_test.py::Threading::test_keyerror 130s tests/patcher_test.py::Threading::test_tpool 130s [gw0] [ 44%] PASSED tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 130s tests/greenio_test.py::test_set_nonblocking 130s [gw0] [ 44%] PASSED tests/greenio_test.py::test_set_nonblocking 130s tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 130s [gw0] [ 44%] PASSED tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 130s tests/greenio_test.py::test_double_close_219 130s [gw1] [ 44%] PASSED tests/patcher_test.py::Threading::test_tpool 130s tests/patcher_test.py::Os::test_waitpid 130s [gw0] [ 44%] PASSED tests/greenio_test.py::test_double_close_219 130s tests/greenio_test.py::test_partial_write_295 130s [gw0] [ 44%] PASSED tests/greenio_test.py::test_partial_write_295 130s tests/greenio_test.py::test_socket_file_read_non_int 130s [gw0] [ 44%] PASSED tests/greenio_test.py::test_socket_file_read_non_int 130s tests/greenio_test.py::test_pipe_context 130s [gw0] [ 45%] PASSED tests/greenio_test.py::test_pipe_context 130s tests/greenio_test.py::test_greenpipe_write 130s [gw0] [ 45%] PASSED tests/greenio_test.py::test_greenpipe_write 130s tests/greenio_test.py::test_greenpipe_append 130s [gw0] [ 45%] PASSED tests/greenio_test.py::test_greenpipe_append 130s tests/greenio_test.py::test_greenpipe_read_overwrite 130s [gw0] [ 45%] PASSED tests/greenio_test.py::test_greenpipe_read_overwrite 130s tests/greenio_test.py::test_greenpipe_write_plus 130s [gw0] [ 45%] PASSED tests/greenio_test.py::test_greenpipe_write_plus 130s tests/greenio_test.py::test_greenpipe_append_plus 130s [gw0] [ 45%] PASSED tests/greenio_test.py::test_greenpipe_append_plus 130s tests/greenpool_test.py::GreenPool::test_empty_imap 130s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_empty_imap 130s tests/greenpool_test.py::GreenPool::test_exceptions 130s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_exceptions 130s tests/greenpool_test.py::GreenPool::test_imap 130s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap 130s tests/greenpool_test.py::GreenPool::test_imap_multi_args 130s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap_multi_args 130s tests/greenpool_test.py::GreenPool::test_imap_nonefunc 130s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap_nonefunc 130s tests/greenpool_test.py::GreenPool::test_imap_raises 130s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap_raises 130s tests/greenpool_test.py::GreenPool::test_multiple_coros 130s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_multiple_coros 130s tests/greenpool_test.py::GreenPool::test_pool_smash 130s [gw1] [ 46%] PASSED tests/patcher_test.py::Os::test_waitpid 130s tests/patcher_test.py::GreenThreadWrapper::test_ident 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_pool_smash 130s tests/greenpool_test.py::GreenPool::test_recursive_waitall 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_recursive_waitall 130s tests/greenpool_test.py::GreenPool::test_reentrant 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_reentrant 130s tests/greenpool_test.py::GreenPool::test_resize 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_resize 130s tests/greenpool_test.py::GreenPool::test_spawn 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_spawn 130s tests/greenpool_test.py::GreenPool::test_spawn_n 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n 130s tests/greenpool_test.py::GreenPool::test_spawn_n_2 130s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n_2 130s tests/greenpool_test.py::GreenPool::test_starmap 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_starmap 130s tests/greenpool_test.py::GreenPool::test_timer_cancel 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_timer_cancel 130s tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 130s tests/greenpool_test.py::GreenPool::test_waiting 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_waiting 130s tests/greenpool_test.py::GreenPile::test_constructing_from_pool 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPile::test_constructing_from_pool 130s tests/greenpool_test.py::GreenPile::test_empty_pile 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPile::test_empty_pile 130s tests/greenpool_test.py::GreenPile::test_pile 130s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPile::test_pile 130s tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 130s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_ident 130s tests/patcher_test.py::GreenThreadWrapper::test_is_alive 130s [gw0] [ 49%] PASSED tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 130s tests/greenpool_test.py::test_greenpool_type_check 130s [gw0] [ 49%] PASSED tests/greenpool_test.py::test_greenpool_type_check 131s tests/greenpool_test.py::Stress::test_imap_50 131s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_alive 131s tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 131s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 131s tests/patcher_test.py::GreenThreadWrapper::test_join 131s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_join 131s tests/patcher_test.py::GreenThreadWrapper::test_name 131s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_name 131s tests/patcher_test.py::test_patcher_existing_locks_early 131s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_early 132s tests/patcher_test.py::test_patcher_existing_locks_late 132s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_late 132s tests/patcher_test.py::test_patcher_existing_locks_unlocked 132s [gw1] [ 50%] SKIPPED tests/patcher_test.py::test_patcher_existing_locks_unlocked 132s tests/patcher_test.py::test_patcher_existing_logging_module_lock 132s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_logging_module_lock 132s tests/patcher_test.py::test_importlib_lock 132s [gw0] [ 50%] PASSED tests/greenpool_test.py::Stress::test_imap_50 132s tests/greenpool_test.py::Stress::test_imap_500 132s [gw1] [ 50%] PASSED tests/patcher_test.py::test_importlib_lock 132s tests/patcher_test.py::test_threading_condition 132s [gw1] [ 50%] PASSED tests/patcher_test.py::test_threading_condition 133s tests/patcher_test.py::test_threading_join 133s [gw1] [ 50%] PASSED tests/patcher_test.py::test_threading_join 133s tests/patcher_test.py::test_socketserver_selectors 133s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_imap_500 134s tests/greenpool_test.py::Stress::test_ordering_5 134s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_ordering_5 134s tests/greenpool_test.py::Stress::test_ordering_50 134s [gw1] [ 51%] PASSED tests/patcher_test.py::test_socketserver_selectors 134s tests/patcher_test.py::test_blocking_select_methods_are_deleted 134s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_ordering_50 134s tests/greenpool_test.py::Stress::test_with_intpool 134s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_with_intpool 134s tests/greenthread_test.py::Spawn::test_kill 134s [gw0] [ 51%] PASSED tests/greenthread_test.py::Spawn::test_kill 134s tests/greenthread_test.py::Spawn::test_kill_meth 134s [gw0] [ 51%] PASSED tests/greenthread_test.py::Spawn::test_kill_meth 134s tests/greenthread_test.py::Spawn::test_kill_n 134s [gw1] [ 52%] PASSED tests/patcher_test.py::test_blocking_select_methods_are_deleted 134s tests/patcher_test.py::test_regular_file_readall 134s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_kill_n 134s tests/greenthread_test.py::Spawn::test_link 134s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link 134s tests/greenthread_test.py::Spawn::test_link_after_exited 134s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link_after_exited 134s tests/greenthread_test.py::Spawn::test_link_relinks 134s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link_relinks 134s tests/greenthread_test.py::Spawn::test_n 134s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_n 134s tests/greenthread_test.py::Spawn::test_simple 134s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_simple 134s tests/greenthread_test.py::SpawnAfter::test_basic 134s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_basic 134s tests/greenthread_test.py::SpawnAfter::test_cancel 134s [gw1] [ 53%] PASSED tests/patcher_test.py::test_regular_file_readall 134s tests/patcher_test.py::test_threading_current 134s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel 135s tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 135s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 135s tests/greenthread_test.py::SpawnAfter::test_kill 135s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill 135s tests/greenthread_test.py::SpawnAfter::test_kill_already_started 135s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_already_started 135s tests/greenthread_test.py::SpawnAfter::test_kill_meth 135s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_meth 135s tests/greenthread_test.py::SpawnAfter::test_kill_n 135s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_n 135s tests/greenthread_test.py::SpawnAfter::test_link 135s [gw1] [ 54%] PASSED tests/patcher_test.py::test_threading_current 135s tests/patcher_test.py::test_threadpoolexecutor 135s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_link 135s tests/greenthread_test.py::SpawnAfter::test_link_after_exited 135s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_after_exited 135s tests/greenthread_test.py::SpawnAfter::test_link_relinks 135s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_relinks 135s tests/greenthread_test.py::SpawnAfter::test_n 135s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_n 135s tests/greenthread_test.py::SpawnAfter::test_simple 135s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_simple 135s tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 135s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 135s tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 135s [gw1] [ 55%] PASSED tests/patcher_test.py::test_threadpoolexecutor 135s tests/patcher_test.py::test_builtin 135s [gw1] [ 55%] PASSED tests/patcher_test.py::test_builtin 135s tests/patcher_test.py::test_open_kwargs 135s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 135s tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 135s [gw1] [ 55%] PASSED tests/patcher_test.py::test_open_kwargs 135s tests/patcher_test.py::test_patcher_existing_locks 135s [gw1] [ 55%] PASSED tests/patcher_test.py::test_patcher_existing_locks 135s tests/patcher_test.py::test_patcher_existing_locks_exception 135s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 135s tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 135s [gw0] [ 55%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 135s tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 135s [gw0] [ 56%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 135s tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 135s [gw0] [ 56%] PASSED tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 135s tests/hub_test.py::TestScheduleCall::test_global 135s [gw0] [ 56%] PASSED tests/hub_test.py::TestScheduleCall::test_global 135s tests/hub_test.py::TestScheduleCall::test_local 135s [gw0] [ 56%] PASSED tests/hub_test.py::TestScheduleCall::test_local 136s tests/hub_test.py::TestScheduleCall::test_ordering 136s [gw0] [ 56%] PASSED tests/hub_test.py::TestScheduleCall::test_ordering 136s tests/hub_test.py::TestDebug::test_debug_listeners 136s [gw0] [ 56%] PASSED tests/hub_test.py::TestDebug::test_debug_listeners 136s tests/hub_test.py::TestDebug::test_timer_exceptions 136s [gw0] [ 56%] PASSED tests/hub_test.py::TestDebug::test_timer_exceptions 136s tests/hub_test.py::TestExceptionInMainloop::test_sleep 136s [gw0] [ 57%] PASSED tests/hub_test.py::TestExceptionInMainloop::test_sleep 136s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 136s [gw1] [ 57%] PASSED tests/patcher_test.py::test_patcher_existing_locks_exception 136s tests/patcher_test.py::test_patcher_threading_subclass_done 136s [gw0] [ 57%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 136s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 136s [gw0] [ 57%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 136s tests/hub_test.py::TestHubBlockingDetector::test_block_detect 136s [gw1] [ 57%] PASSED tests/patcher_test.py::test_patcher_threading_subclass_done 136s tests/pools_test.py::TestIntPool::test_blocks_on_pool 136s [gw1] [ 57%] PASSED tests/pools_test.py::TestIntPool::test_blocks_on_pool 136s tests/pools_test.py::TestIntPool::test_create_contention 136s [gw1] [ 57%] PASSED tests/pools_test.py::TestIntPool::test_create_contention 136s tests/pools_test.py::TestIntPool::test_exhaustion 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_exhaustion 136s tests/pools_test.py::TestIntPool::test_free 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_free 136s tests/pools_test.py::TestIntPool::test_integers 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_integers 136s tests/pools_test.py::TestIntPool::test_ordering 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_ordering 136s tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 136s tests/pools_test.py::TestIntPool::test_putting_to_queue 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_putting_to_queue 136s tests/pools_test.py::TestIntPool::test_resize 136s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_resize 136s tests/pools_test.py::TestAbstract::test_abstract 136s [gw1] [ 59%] PASSED tests/pools_test.py::TestAbstract::test_abstract 136s tests/pools_test.py::TestIntPool2::test_something 136s [gw1] [ 59%] PASSED tests/pools_test.py::TestIntPool2::test_something 136s tests/pools_test.py::TestOrderAsStack::test_ordering 136s [gw1] [ 59%] PASSED tests/pools_test.py::TestOrderAsStack::test_ordering 136s tests/pools_test.py::TestCreateRaises::test_it 136s [gw1] [ 59%] PASSED tests/pools_test.py::TestCreateRaises::test_it 136s tests/queue_test.py::TestQueue::test_channel_send 136s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_channel_send 136s tests/queue_test.py::TestQueue::test_channel_sender_timing_out 136s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_channel_sender_timing_out 136s tests/queue_test.py::TestQueue::test_channel_wait 136s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_channel_wait 136s tests/queue_test.py::TestQueue::test_channel_waiters 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_channel_waiters 136s tests/queue_test.py::TestQueue::test_getting_before_sending 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_getting_before_sending 136s tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 136s tests/queue_test.py::TestQueue::test_max_size 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_max_size 136s tests/queue_test.py::TestQueue::test_multiple_waiters 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_multiple_waiters 136s tests/queue_test.py::TestQueue::test_resize_down 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_resize_down 136s tests/queue_test.py::TestQueue::test_resize_to_Unlimited 136s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_resize_to_Unlimited 136s tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 136s tests/ssl_test.py::SSLTest::test_regression_gh_17 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_regression_gh_17 136s tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 136s tests/ssl_test.py::SSLTest::test_ssl_close 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_close 136s tests/ssl_test.py::SSLTest::test_ssl_connect 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_connect 136s tests/ssl_test.py::SSLTest::test_ssl_context 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_context 136s tests/ssl_test.py::SSLTest::test_ssl_unwrap 136s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_unwrap 136s tests/subprocess_test.py::test_subprocess_wait 136s [gw1] [ 61%] PASSED tests/subprocess_test.py::test_subprocess_wait 137s tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 137s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 137s tests/subprocess_test.py::test_universal_lines 137s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_universal_lines 137s tests/subprocess_test.py::test_patched_communicate_290 137s [gw0] [ 62%] PASSED tests/hub_test.py::TestHubBlockingDetector::test_block_detect 137s tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 137s [gw0] [ 62%] SKIPPED tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 137s tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 137s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_patched_communicate_290 137s tests/subprocess_test.py::test_check_call_without_timeout_works 137s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_check_call_without_timeout_works 137s tests/subprocess_test.py::test_exception_identity 137s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_exception_identity 137s tests/test__event.py::TestEvent::test_send 137s [gw1] [ 63%] PASSED tests/test__event.py::TestEvent::test_send 137s tests/test__event.py::TestEvent::test_send_exc 137s [gw1] [ 63%] PASSED tests/test__event.py::TestEvent::test_send_exc 137s tests/test__greenness.py::test_urllib 137s [gw1] [ 63%] PASSED tests/test__greenness.py::test_urllib 137s tests/test__refcount.py::test_clean_exit 137s [gw0] [ 63%] PASSED tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 137s tests/hub_test.py::test_repeated_select_bad_fd 137s [gw0] [ 63%] PASSED tests/hub_test.py::test_repeated_select_bad_fd 137s tests/hub_test.py::test_fork 137s [gw1] [ 63%] PASSED tests/test__refcount.py::test_clean_exit 138s tests/test__refcount.py::test_timeout_exit 138s [gw0] [ 63%] PASSED tests/hub_test.py::test_fork 138s tests/hub_test.py::test_fork_simple 138s [gw1] [ 64%] PASSED tests/test__refcount.py::test_timeout_exit 138s tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 138s [gw1] [ 64%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 138s tests/test__socket_errors.py::TestSocketErrors::test_timeout 138s [gw0] [ 64%] PASSED tests/hub_test.py::test_fork_simple 138s tests/hub_test.py::TestDeadRunLoop::test_kill 138s [gw0] [ 64%] PASSED tests/hub_test.py::TestDeadRunLoop::test_kill 139s tests/hub_test.py::TestDeadRunLoop::test_parent 139s [gw1] [ 64%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout 139s tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 139s [gw0] [ 64%] PASSED tests/hub_test.py::TestDeadRunLoop::test_parent 139s tests/queue_test.py::TestQueue::test_resize_up 139s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_resize_up 139s tests/queue_test.py::TestQueue::test_send_first 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_send_first 139s tests/queue_test.py::TestQueue::test_send_last 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_send_last 139s tests/queue_test.py::TestQueue::test_task_done 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_task_done 139s tests/queue_test.py::TestQueue::test_two_bogus_waiters 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_two_bogus_waiters 139s tests/queue_test.py::TestQueue::test_two_waiters_one_dies 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_two_waiters_one_dies 139s tests/queue_test.py::TestQueue::test_waiters_that_cancel 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_waiters_that_cancel 139s tests/queue_test.py::TestQueue::test_waiting 139s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_waiting 139s tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 139s tests/queue_test.py::TestQueue::test_zero_max_size 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestQueue::test_zero_max_size 139s tests/queue_test.py::TestNoWait::test_get_nowait_simple 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_simple 139s tests/queue_test.py::TestNoWait::test_get_nowait_unlock 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_unlock 139s tests/queue_test.py::TestNoWait::test_put_nowait_simple 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_simple 139s tests/queue_test.py::TestNoWait::test_put_nowait_unlock 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_unlock 139s tests/queue_test.py::TestNoWait::test_wait_except 139s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_wait_except 139s tests/semaphore_test.py::TestSemaphore::test_bounded 139s [gw0] [ 66%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded 139s tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 139s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 139s tests/semaphore_test.py::TestSemaphore::test_non_blocking 139s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_non_blocking 139s tests/semaphore_test.py::TestSemaphore::test_timeout 139s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout 139s tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 139s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 140s tests/semaphore_test.py::test_semaphore_contention 140s [gw0] [ 67%] PASSED tests/semaphore_test.py::test_semaphore_contention 140s tests/semaphore_test.py::test_semaphore_type_check 140s [gw0] [ 67%] PASSED tests/semaphore_test.py::test_semaphore_type_check 140s tests/socket_test.py::test_recv_type 140s [gw1] [ 67%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 140s tests/test__socket_errors.py::test_create_connection_refused 140s [gw1] [ 68%] PASSED tests/test__socket_errors.py::test_create_connection_refused 140s tests/test_infrastructure_tests.py::test_run_python_timeout 140s [gw1] [ 68%] PASSED tests/test_infrastructure_tests.py::test_run_python_timeout 140s tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 140s [gw1] [ 68%] PASSED tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 140s tests/thread_test.py::Locals::test_assignment 140s [gw1] [ 68%] PASSED tests/thread_test.py::Locals::test_assignment 140s tests/thread_test.py::Locals::test_calling_methods 140s [gw1] [ 68%] PASSED tests/thread_test.py::Locals::test_calling_methods 140s tests/thread_test.py::Locals::test_calls_init 140s [gw1] [ 68%] PASSED tests/thread_test.py::Locals::test_calls_init 140s tests/thread_test.py::Locals::test_no_leaking 140s [gw0] [ 68%] PASSED tests/socket_test.py::test_recv_type 140s tests/socket_test.py::test_recv_into_type 140s [gw1] [ 69%] PASSED tests/thread_test.py::Locals::test_no_leaking 140s tests/thread_test.py::test_compat_lock_release 140s [gw1] [ 69%] PASSED tests/thread_test.py::test_compat_lock_release 140s tests/thread_test.py::test_reinit 140s [gw1] [ 69%] PASSED tests/thread_test.py::test_reinit 140s tests/thread_test.py::test_can_use_eventlet_in_os_threads 140s [gw0] [ 69%] PASSED tests/socket_test.py::test_recv_into_type 140s tests/socket_test.py::test_socket_api_family 140s [gw0] [ 69%] PASSED tests/socket_test.py::test_socket_api_family 140s tests/socket_test.py::test_getaddrinfo_ipv6_scope 140s [gw0] [ 69%] PASSED tests/socket_test.py::test_getaddrinfo_ipv6_scope 140s tests/socket_test.py::test_error_is_timeout 140s [gw0] [ 69%] PASSED tests/socket_test.py::test_error_is_timeout 140s tests/socket_test.py::test_connect_ex_success 140s [gw0] [ 70%] PASSED tests/socket_test.py::test_connect_ex_success 140s tests/ssl_test.py::SSLTest::test_client_check_hostname 140s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_client_check_hostname 141s tests/ssl_test.py::SSLTest::test_context_version_setters 141s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_context_version_setters 141s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 141s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_context_wrapped_accept 141s tests/ssl_test.py::SSLTest::test_duplex_response 141s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_duplex_response 141s tests/ssl_test.py::SSLTest::test_explicit_keys_accept 141s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_explicit_keys_accept 141s tests/ssl_test.py::SSLTest::test_greensslobject 141s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_greensslobject 141s tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 141s [gw1] [ 71%] PASSED tests/thread_test.py::test_can_use_eventlet_in_os_threads 141s tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 141s [gw1] [ 71%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 141s tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 141s [gw1] [ 71%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 141s tests/timeout_test.py::TestDirectRaise::test_repr 141s [gw1] [ 71%] PASSED tests/timeout_test.py::TestDirectRaise::test_repr 141s tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 141s [gw1] [ 71%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 141s tests/timeout_test.py::TestWithTimeout::test_with_timeout 141s [gw1] [ 71%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_timeout 141s tests/timeout_test.py::test_is_timeout_attribute 141s [gw1] [ 71%] PASSED tests/timeout_test.py::test_is_timeout_attribute 141s tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 141s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 141s tests/timeout_with_statement_test.py::Test::test_cancellation 141s [gw0] [ 72%] PASSED tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 141s tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 141s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_cancellation 141s tests/timeout_with_statement_test.py::Test::test_dummy_timer 141s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_dummy_timer 141s tests/timeout_with_statement_test.py::Test::test_nested_timeout 141s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_nested_timeout 141s tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 141s [gw0] [ 72%] PASSED tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 141s tests/tpool_test.py::TestTpool::test_wrap_dict 141s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_dict 141s tests/tpool_test.py::TestTpool::test_wrap_eq 141s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 141s tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 141s [gw0] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_eq 141s tests/tpool_test.py::TestTpool::test_wrap_getitem 141s [gw1] [ 73%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 141s tests/timeout_with_statement_test.py::Test::test_raising_exception_class 141s [gw0] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_getitem 141s tests/tpool_test.py::TestTpool::test_wrap_hash 141s [gw1] [ 73%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exception_class 141s tests/timeout_with_statement_test.py::Test::test_raising_self 141s [gw0] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_hash 141s tests/tpool_test.py::TestTpool::test_wrap_ints 141s [gw0] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_ints 141s tests/tpool_test.py::TestTpool::test_wrap_iterator 141s [gw1] [ 73%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self 141s tests/timeout_with_statement_test.py::Test::test_raising_self_true 141s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator 141s tests/tpool_test.py::TestTpool::test_wrap_iterator2 141s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self_true 141s tests/timeout_with_statement_test.py::Test::test_ref 141s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator2 141s tests/tpool_test.py::TestTpool::test_wrap_module_class 141s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_module_class 141s tests/tpool_test.py::TestTpool::test_wrap_nonzero 141s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_ref 141s tests/timeout_with_statement_test.py::Test::test_silent_block 141s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_nonzero 141s tests/tpool_test.py::TestTpool::test_wrap_setitem 141s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_setitem 141s tests/tpool_test.py::TestTpool::test_wrap_string 141s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_string 141s tests/tpool_test.py::TestTpool::test_wrap_tuple 141s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_tuple 141s tests/tpool_test.py::TestTpool::test_wrap_uniterable 141s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_uniterable 141s tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 141s [gw1] [ 75%] PASSED tests/timeout_with_statement_test.py::Test::test_silent_block 141s tests/timer_test.py::TestTimer::test_copy 141s [gw1] [ 75%] PASSED tests/timer_test.py::TestTimer::test_copy 141s tests/timer_test.py::TestTimer::test_schedule 141s [gw1] [ 75%] PASSED tests/timer_test.py::TestTimer::test_schedule 141s tests/tpool_test.py::TestTpool::test_autowrap 141s [gw1] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_autowrap 141s tests/tpool_test.py::TestTpool::test_autowrap_both 141s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_both 141s tests/tpool_test.py::TestTpool::test_autowrap_names 141s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_names 142s tests/tpool_test.py::TestTpool::test_callable 142s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_callable 142s tests/tpool_test.py::TestTpool::test_callable_iterator 142s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_callable_iterator 142s tests/tpool_test.py::TestTpool::test_contention 142s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_contention 142s tests/tpool_test.py::TestTpool::test_eventlet_timeout 142s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_eventlet_timeout 142s tests/tpool_test.py::TestTpool::test_killall 142s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_killall 142s tests/tpool_test.py::TestTpool::test_killall_remaining_results 142s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_killall_remaining_results 142s tests/tpool_test.py::TestTpool::test_multiple_wraps 142s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_multiple_wraps 142s tests/tpool_test.py::TestTpool::test_raising_exceptions 142s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_raising_exceptions 142s tests/tpool_test.py::TestTpool::test_timeout 142s [gw0] [ 77%] PASSED tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 142s tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 142s [gw0] [ 77%] PASSED tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 142s tests/tpool_test.py::test_isolate_from_socket_default_timeout 142s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_timeout 143s tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 143s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 143s tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 143s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 143s tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 143s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 143s tests/websocket_test.py::TestWebSocket::test_close_idle 143s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_close_idle 143s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 143s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 143s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 143s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 143s tests/websocket_test.py::TestWebSocket::test_empty_query_string 143s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_empty_query_string 143s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 143s [gw0] [ 78%] PASSED tests/tpool_test.py::test_isolate_from_socket_default_timeout 143s tests/tpool_test.py::test_exception_leak 143s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 143s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 143s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 143s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 143s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 143s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 143s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 143s tests/websocket_test.py::TestWebSocket::test_incorrect_headers 143s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_incorrect_headers 143s tests/websocket_test.py::TestWebSocket::test_query_string 143s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_query_string 143s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 143s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 143s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 143s [gw0] [ 79%] PASSED tests/tpool_test.py::test_exception_leak 143s tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 143s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 143s tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 143s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 143s tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 143s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 143s tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 143s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 143s tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 143s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 143s tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 143s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 143s tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 143s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 143s tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 143s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 143s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 143s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 143s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 143s tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 143s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 143s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 143s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 143s [gw0] [ 82%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 143s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 143s tests/websocket_test.py::TestWebSocketObject::test_close_ws 143s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketObject::test_close_ws 143s tests/websocket_test.py::TestWebSocketObject::test_recieve 143s [gw0] [ 82%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 143s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketObject::test_recieve 143s tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 143s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 143s tests/wsgi_test.py::TestHttpd::test_001_server 143s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_001_server 143s tests/wsgi_test.py::TestHttpd::test_002_keepalive 143s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 143s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 143s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_002_keepalive 144s tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 144s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 144s tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 144s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 144s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 144s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 144s tests/wsgi_test.py::TestHttpd::test_007_get_arg 144s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_007_get_arg 144s tests/wsgi_test.py::TestHttpd::test_008_correctresponse 144s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_008_correctresponse 144s tests/wsgi_test.py::TestHttpd::test_009_chunked_response 144s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 144s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 144s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_009_chunked_response 144s tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 144s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 144s tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 144s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 144s tests/wsgi_test.py::TestHttpd::test_012_ssl_server 144s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_012_ssl_server 144s tests/wsgi_test.py::TestHttpd::test_013_empty_return 144s [gw0] [ 84%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 144s tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 144s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_013_empty_return 144s tests/wsgi_test.py::TestHttpd::test_014_chunked_post 144s [gw0] [ 84%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 144s tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 144s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_014_chunked_post 144s tests/wsgi_test.py::TestHttpd::test_015_write 144s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_015_write 144s tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 144s [gw0] [ 85%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 144s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 144s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 144s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 144s [gw0] [ 85%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 144s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 144s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 144s tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 144s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 144s tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 144s [gw0] [ 86%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 144s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 144s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 144s tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 144s [gw1] [ 86%] SKIPPED tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 144s tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 144s [gw0] [ 86%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 144s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 144s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 144s tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 144s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 144s tests/wsgi_test.py::TestHttpd::test_022_custom_pool 144s [gw0] [ 86%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 144s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 144s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_022_custom_pool 144s tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 144s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 144s tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 144s [gw0] [ 87%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 144s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 144s [gw0] [ 87%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 144s tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 144s [gw0] [ 87%] PASSED tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 144s tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 144s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 144s tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 144s [gw0] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 144s tests/wsgi_test.py::TestHttpd::test_025_accept_errors 144s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 144s tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 144s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_025_accept_errors 144s tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 144s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 144s tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 144s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 144s tests/wsgi_test.py::TestHttpd::test_026_log_format 144s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 144s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 144s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_026_log_format 144s tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 144s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 144s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 144s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 144s tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 144s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 144s tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 144s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 144s tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 144s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 144s tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 144s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 144s tests/wsgi_test.py::TestHttpd::test_029_posthooks 144s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 144s tests/wsgi_test.py::TestHttpd::test_client_disconnect 144s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_029_posthooks 144s tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 144s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_client_disconnect 144s tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 144s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 144s tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 144s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 144s tests/wsgi_test.py::TestHttpd::test_close_idle_connections 144s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 144s tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 144s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections 144s tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 144s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 144s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 144s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 144s tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 144s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 144s tests/wsgi_test.py::TestHttpd::test_debug 144s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 144s tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 144s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_debug 144s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 144s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 144s tests/wsgi_test.py::TestHttpd::test_ipv6 144s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 144s tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 144s [gw1] [ 91%] SKIPPED tests/wsgi_test.py::TestHttpd::test_ipv6 144s tests/wsgi_test.py::TestHttpd::test_log_disable 144s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_disable 144s tests/wsgi_test.py::TestHttpd::test_log_unix_address 144s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_unix_address 144s tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 144s tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 144s tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 144s tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 144s tests/wsgi_test.py::TestHttpd::test_path_info_decoding 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_decoding 144s tests/wsgi_test.py::TestHttpd::test_path_info_latin1 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_latin1 144s tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 144s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 145s tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 145s tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 145s tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 145s tests/wsgi_test.py::TestHttpd::test_socket_remains_open 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_socket_remains_open 145s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 145s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 145s tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 145s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 145s tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 145s tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 145s tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 145s tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 145s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 145s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 145s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 145s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 145s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 145s tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 145s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 145s tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 145s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 145s tests/wsgi_test.py::TestChunkedInput::test_dirt 145s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_dirt 145s tests/wsgi_test.py::TestChunkedInput::test_short_read 145s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read 145s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 145s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 145s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 145s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 145s tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 145s [gw1] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 145s tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 145s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 145s tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 145s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 145s tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 145s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 145s tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 145s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 146s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 146s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 146s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 146s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 146s tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 146s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 146s tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 146s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 146s tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 146s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 146s tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 146s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 146s tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 146s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 146s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 146s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 146s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 146s [gw0] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 146s tests/wsgi_test.py::TestHttpd::test_env_header_stripping 146s [gw0] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_env_header_stripping 146s tests/wsgi_test.py::TestHttpd::test_env_headers 146s [gw0] [ 98%] PASSED tests/wsgi_test.py::TestHttpd::test_env_headers 146s tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 146s [gw0] [ 98%] PASSED tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 146s tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 146s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 146s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 146s [gw0] [ 98%] PASSED tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 146s tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 146s [gw0] [ 98%] PASSED tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 146s tests/wsgi_test.py::TestHttpd::test_headers_raw 146s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 146s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 146s [gw0] [ 98%] PASSED tests/wsgi_test.py::TestHttpd::test_headers_raw 146s tests/zmq_test.py::TestQueueLock::test_count 146s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_count 146s tests/zmq_test.py::TestQueueLock::test_nested_acquire 146s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_nested_acquire 146s tests/zmq_test.py::TestQueueLock::test_queue_lock_order 146s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_queue_lock_order 146s tests/zmq_test.py::TestBlockedThread::test_block 146s [gw0] [ 99%] PASSED tests/zmq_test.py::TestBlockedThread::test_block 146s tests/zmq_test.py::test_recv_json_no_args 146s [gw0] [ 99%] PASSED tests/zmq_test.py::test_recv_json_no_args 146s [gw1] [ 99%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 146s tests/zmq_test.py::test_recv_timeout 146s tests/zmq_test.py::TestQueueLock::test_errors 146s [gw1] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_errors 147s [gw0] [100%] PASSED tests/zmq_test.py::test_recv_timeout 147s 147s =============================== warnings summary =============================== 147s tests/api_test.py: 2 warnings 147s tests/convenience_test.py: 2 warnings 147s tests/greenio_test.py: 1 warning 147s tests/ssl_test.py: 26 warnings 147s tests/websocket_test.py: 2 warnings 147s tests/wsgi_test.py: 9 warnings 147s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 147s context = _original_sslcontext(protocol=ssl_version) 147s 147s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 147s tests/backdoor_test.py::BackdoorTest::test_server 147s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 147s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper mode='rw' encoding='UTF-8'> 147s 147s Traceback (most recent call last): 147s File "/usr/lib/python3.13/socket.py", line 737, in write 147s return self._sock.send(b) 147s ~~~~~~~~~~~~~~~^^^ 147s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 383, in send 147s return self._send_loop(self.fd.send, data, flags) 147s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 147s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 370, in _send_loop 147s return send_method(data, *args) 147s BrokenPipeError: [Errno 32] Broken pipe 147s 147s During handling of the above exception, another exception occurred: 147s 147s Traceback (most recent call last): 147s File "/usr/lib/python3.13/socket.py", line 737, in write 147s return self._sock.send(b) 147s ~~~~~~~~~~~~~~~^^^ 147s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 383, in send 147s return self._send_loop(self.fd.send, data, flags) 147s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 147s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 370, in _send_loop 147s return send_method(data, *args) 147s BrokenPipeError: [Errno 32] Broken pipe 147s 147s Enable tracemalloc to get traceback where the object was allocated. 147s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 147s warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) 147s 147s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 147s /tmp/autopkgtest.MsSp80/build.TJa/src/tests/not_asyncio_test.py:22: RuntimeWarning: coroutine 'test_spawn_from_coroutine_errors..go' was never awaited 147s with pytest.raises(RuntimeError): 147s Enable tracemalloc to get traceback where the object was allocated. 147s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 147s 147s tests/openssl_test.py::test_import 147s tests/openssl_test.py::test_import 147s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography. 147s from OpenSSL.crypto import * 147s 147s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 147s /tmp/autopkgtest.MsSp80/build.TJa/src/tests/ssl_test.py:333: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 147s context = ssl.SSLContext(ssl.PROTOCOL_TLS) 147s 147s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 147s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated 147s context = _original_sslcontext(protocol=ssl_version) 147s 147s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 147s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenthread.py:272: DeprecationWarning: capitalize_response_headers is disabled. 147s Please, make sure you know what you are doing. 147s HTTP headers names are case-insensitive per RFC standard. 147s Most likely, you need to fix HTTP parsing in your client software. 147s result = function(*args, **kwargs) 147s 147s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 147s ================ 630 passed, 89 skipped, 51 warnings in 29.74s ================= 147s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 147s !! 147s 147s ******************************************************************************** 147s Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). 147s 147s By 2026-Feb-18, you need to update your project and remove deprecated calls 147s or your builds will no longer be supported. 147s 147s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 147s ******************************************************************************** 147s 147s !! 147s corresp(dist, value, root_dir) 147s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 147s !! 147s 147s ******************************************************************************** 147s Please consider removing the following classifiers in favor of a SPDX license expression: 147s 147s License :: OSI Approved :: MIT License 147s 147s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 147s ******************************************************************************** 147s 147s !! 147s dist._finalize_license_expression() 147s /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 147s !! 147s 147s ******************************************************************************** 147s Please consider removing the following classifiers in favor of a SPDX license expression: 147s 147s License :: OSI Approved :: MIT License 147s 147s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 147s ******************************************************************************** 147s 147s !! 147s self._finalize_license_expression() 147s running install 147s /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 147s !! 147s 147s ******************************************************************************** 147s Please avoid running ``setup.py`` directly. 147s Instead, use pypa/build, pypa/installer or other 147s standards-based tools. 147s 147s See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 147s ******************************************************************************** 147s 147s !! 147s self.initialize_options() 147s running build 147s running build_py 147s running egg_info 147s writing eventlet.egg-info/PKG-INFO 147s writing dependency_links to eventlet.egg-info/dependency_links.txt 147s writing requirements to eventlet.egg-info/requires.txt 147s writing top-level names to eventlet.egg-info/top_level.txt 147s reading manifest file 'eventlet.egg-info/SOURCES.txt' 147s reading manifest template 'MANIFEST.in' 147s warning: no files found matching 'Makefile' under directory 'doc' 147s adding license file 'LICENSE' 147s adding license file 'AUTHORS' 147s writing manifest file 'eventlet.egg-info/SOURCES.txt' 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green' to be distributed and are 147s already explicitly excluding 'eventlet.green' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.OpenSSL' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.OpenSSL' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.OpenSSL' to be distributed and are 147s already explicitly excluding 'eventlet.green.OpenSSL' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.OpenSSL.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.OpenSSL.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.OpenSSL.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.green.OpenSSL.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.green.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.http' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.http' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.http' to be distributed and are 147s already explicitly excluding 'eventlet.green.http' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.http.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.http.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.http.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.green.http.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.urllib' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.urllib' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.urllib' to be distributed and are 147s already explicitly excluding 'eventlet.green.urllib' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.green.urllib.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.green.urllib.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.green.urllib.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.green.urllib.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.greenio' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.greenio' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.greenio' to be distributed and are 147s already explicitly excluding 'eventlet.greenio' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.greenio.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.greenio.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.greenio.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.greenio.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s creating build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/_version.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/asyncio.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.hubs' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.hubs' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.hubs' to be distributed and are 147s already explicitly excluding 'eventlet.hubs' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.hubs.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.hubs.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.hubs.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.hubs.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.support' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.support' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.support' to be distributed and are 147s already explicitly excluding 'eventlet.support' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support.__pycache__' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.support.__pycache__' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.support.__pycache__' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.support.__pycache__' to be distributed and are 147s already explicitly excluding 'eventlet.support.__pycache__' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.zipkin' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.zipkin' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.zipkin' to be distributed and are 147s already explicitly excluding 'eventlet.zipkin' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.zipkin._thrift' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.zipkin._thrift' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.zipkin._thrift' to be distributed and are 147s already explicitly excluding 'eventlet.zipkin._thrift' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift.zipkinCore' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.zipkin._thrift.zipkinCore' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.zipkin._thrift.zipkinCore' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.zipkin._thrift.zipkinCore' to be distributed and are 147s already explicitly excluding 'eventlet.zipkin._thrift.zipkinCore' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin.example' is absent from the `packages` configuration. 147s !! 147s 147s ******************************************************************************** 147s ############################ 147s # Package would be ignored # 147s ############################ 147s Python recognizes 'eventlet.zipkin.example' as an importable package[^1], 147s but it is absent from setuptools' `packages` configuration. 147s 147s This leads to an ambiguous overall configuration. If you want to distribute this 147s package, please make sure that 'eventlet.zipkin.example' is explicitly added 147s to the `packages` configuration field. 147s 147s Alternatively, you can also rely on setuptools' discovery methods 147s (for example by using `find_namespace_packages(...)`/`find_namespace:` 147s instead of `find_packages(...)`/`find:`). 147s 147s You can read more about "package discovery" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 147s 147s If you don't want 'eventlet.zipkin.example' to be distributed and are 147s already explicitly excluding 'eventlet.zipkin.example' via 147s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 147s you can try to use `exclude_package_data`, or `include-package-data=False` in 147s combination with a more fine grained `package-data` configuration. 147s 147s You can read more about "package data files" on setuptools documentation page: 147s 147s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 147s 147s 147s [^1]: For Python, any directory (with suitable naming) can be imported, 147s even if it does not contain any `.py` files. 147s On the other hand, currently there is no concept of package data 147s directory, all directories are treated like packages. 147s ******************************************************************************** 147s 147s !! 147s check.warn(importable) 147s copying eventlet/__pycache__/backdoor.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/convenience.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/corolocal.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/dagpool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/db_pool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/debug.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/event.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/greenpool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/greenthread.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/lock.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/patcher.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/pools.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/queue.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/semaphore.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/timeout.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/tpool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/websocket.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s copying eventlet/__pycache__/wsgi.cpython-313.pyc -> build/lib/eventlet/__pycache__ 147s creating build/lib/eventlet/green/OpenSSL/__pycache__ 147s copying eventlet/green/OpenSSL/__pycache__/SSL.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 147s copying eventlet/green/OpenSSL/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 147s copying eventlet/green/OpenSSL/__pycache__/crypto.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 147s copying eventlet/green/OpenSSL/__pycache__/tsafe.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 147s copying eventlet/green/OpenSSL/__pycache__/version.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 147s creating build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/BaseHTTPServer.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/MySQLdb.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/Queue.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/SocketServer.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/_socket_nodns.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/builtin.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/ftplib.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/httplib.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/os.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/profile.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/select.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/selectors.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/socket.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/ssl.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/subprocess.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/thread.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/threading.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/time.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s copying eventlet/green/__pycache__/zmq.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 147s creating build/lib/eventlet/green/http/__pycache__ 147s copying eventlet/green/http/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/http/__pycache__ 147s copying eventlet/green/http/__pycache__/client.cpython-313.pyc -> build/lib/eventlet/green/http/__pycache__ 147s creating build/lib/eventlet/green/urllib/__pycache__ 147s copying eventlet/green/urllib/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 147s copying eventlet/green/urllib/__pycache__/error.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 147s copying eventlet/green/urllib/__pycache__/parse.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 147s copying eventlet/green/urllib/__pycache__/request.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 147s copying eventlet/green/urllib/__pycache__/response.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 147s creating build/lib/eventlet/greenio/__pycache__ 147s copying eventlet/greenio/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/greenio/__pycache__ 147s copying eventlet/greenio/__pycache__/base.cpython-313.pyc -> build/lib/eventlet/greenio/__pycache__ 147s copying eventlet/greenio/__pycache__/py3.cpython-313.pyc -> build/lib/eventlet/greenio/__pycache__ 147s creating build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/asyncio.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/epolls.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/hub.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/kqueue.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/poll.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/selects.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s copying eventlet/hubs/__pycache__/timer.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 147s creating build/lib/eventlet/support/__pycache__ 147s copying eventlet/support/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 147s copying eventlet/support/__pycache__/greendns.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 147s copying eventlet/support/__pycache__/greenlets.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 147s copying eventlet/support/__pycache__/psycopg2_patcher.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 147s running install_lib 147s copying build/lib/eventlet/__pycache__/asyncio.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 147s /usr/lib/python3/dist-packages/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 147s return 147s copying build/lib/eventlet/__pycache__/wsgi.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 147s copying build/lib/eventlet/__pycache__/semaphore.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 147s copying build/lib/eventlet/__pycache__/greenpool.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 147s copying build/lib/eventlet/__pycache__/websocket.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 147s copying build/lib/eventlet/__pycache__/dagpool.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 147s copying build/lib/eventlet/green/__pycache__/Queue.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 147s copying build/lib/eventlet/green/__pycache__/builtin.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 147s copying build/lib/eventlet/green/__pycache__/select.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 147s copying build/lib/eventlet/green/__pycache__/zmq.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 147s copying build/lib/eventlet/green/urllib/__pycache__/parse.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 147s copying build/lib/eventlet/green/urllib/__pycache__/response.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 147s copying build/lib/eventlet/green/OpenSSL/__pycache__/SSL.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 147s copying build/lib/eventlet/green/OpenSSL/__pycache__/crypto.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 147s copying build/lib/eventlet/green/OpenSSL/__pycache__/version.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 147s copying build/lib/eventlet/green/OpenSSL/__pycache__/__init__.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 147s copying build/lib/eventlet/green/OpenSSL/__pycache__/tsafe.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 147s copying build/lib/eventlet/support/__pycache__/psycopg2_patcher.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__pycache__ 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenpool.py to greenpool.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/dagpool.py to dagpool.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/websocket.py to websocket.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/asyncio.py to asyncio.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/semaphore.py to semaphore.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/CGIHTTPServer.py to CGIHTTPServer.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/select.py to select.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookies.py to cookies.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookiejar.py to cookiejar.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/client.py to client.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/server.py to server.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/os.py to os.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SimpleHTTPServer.py to SimpleHTTPServer.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/httplib.py to httplib.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/_socket_nodns.py to _socket_nodns.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/socket.py to socket.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/request.py to request.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/error.py to error.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/parse.py to parse.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/response.py to response.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/builtin.py to builtin.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/subprocess.py to subprocess.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/Queue.py to Queue.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asynchat.py to asynchat.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/SSL.py to SSL.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/version.py to version.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/crypto.py to crypto.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/tsafe.py to tsafe.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asyncore.py to asyncore.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ftplib.py to ftplib.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SocketServer.py to SocketServer.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/threading.py to threading.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/selectors.py to selectors.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib2.py to urllib2.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/thread.py to thread.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/time.py to time.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ssl.py to ssl.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/MySQLdb.py to MySQLdb.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/zmq.py to zmq.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/BaseHTTPServer.py to BaseHTTPServer.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/profile.py to profile.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/corolocal.py to corolocal.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/http.py to http.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/api.py to api.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/wsgi.py to wsgi.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/patcher.py to patcher.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/ttypes.py to ttypes.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/constants.py to constants.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/client.py to client.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/log.py to log.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/greenthread.py to greenthread.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/tpool.py to tpool.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/db_pool.py to db_pool.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/coros.py to coros.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/queue.py to queue.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/_version.py to _version.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/convenience.py to convenience.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/base.py to base.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/py3.py to py3.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/wsgi.py to wsgi.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/patcher.py to patcher.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/kqueue.py to kqueue.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/asyncio.py to asyncio.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/pyevent.py to pyevent.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/timer.py to timer.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/selects.py to selects.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/hub.py to hub.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/epolls.py to epolls.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/poll.py to poll.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/lock.py to lock.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/pools.py to pools.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/debug.py to debug.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/timeout.py to timeout.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greenlets.py to greenlets.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greendns.py to greendns.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/psycopg2_patcher.py to psycopg2_patcher.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesss.py to stacklesss.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/pylib.py to pylib.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesspypys.py to stacklesspypys.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__init__.py to __init__.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/event.py to event.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenthread.py to greenthread.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/backdoor.py to backdoor.cpython-314.pyc 147s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/__init__.py to __init__.cpython-314.pyc 147s running install_egg_info 147s removing '/debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info' (and everything under it) 147s Copying eventlet.egg-info to /debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info 147s Skipping SOURCES.txt 147s running install_scripts 148s ============================= test session starts ============================== 148s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 148s cachedir: .pytest_cache 148s rootdir: /tmp/autopkgtest.MsSp80/build.TJa/src 148s configfile: pyproject.toml 148s plugins: typeguard-4.4.4, xdist-3.8.0 148s created: 2/2 workers 148s 2 workers [717 items] 148s 148s scheduling tests via LoadScheduling 148s 148s tests/api_test.py::TestApi::test_001_trampoline_timeout 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 148s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 148s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 148s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 148s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 148s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 148s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 148s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 148s tests/debug_test.py::TestSpew::test_line 148s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line 148s tests/debug_test.py::TestSpew::test_line_global 148s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_global 148s tests/debug_test.py::TestSpew::test_line_nofile 148s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nofile 148s tests/debug_test.py::TestSpew::test_line_nooutput 148s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nooutput 149s tests/debug_test.py::TestSpew::test_line_novalue 149s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_novalue 149s tests/debug_test.py::TestSpew::test_spew 149s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_spew 149s tests/debug_test.py::TestSpew::test_unspew 149s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_unspew 149s tests/debug_test.py::TestDebug::test_everything 149s [gw1] [ 5%] PASSED tests/debug_test.py::TestDebug::test_everything 149s tests/debug_test.py::TestDebug::test_hub_exceptions 149s [gw1] [ 6%] PASSED tests/debug_test.py::TestDebug::test_hub_exceptions 149s tests/env_test.py::test_hub_selects 149s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_001_trampoline_timeout 149s tests/api_test.py::TestApi::test_connect_ssl 149s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_ssl 149s tests/api_test.py::TestApi::test_connect_tcp 149s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_tcp 149s tests/api_test.py::TestApi::test_killing_dormant 149s [gw1] [ 6%] PASSED tests/env_test.py::test_hub_selects 149s tests/env_test.py::test_tpool_dns 149s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_killing_dormant 149s tests/api_test.py::TestApi::test_nested_with_timeout 149s [gw1] [ 6%] PASSED tests/env_test.py::test_tpool_dns 149s tests/env_test.py::test_tpool_size 149s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_nested_with_timeout 149s tests/api_test.py::TestApi::test_tcp_listener 149s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_tcp_listener 149s tests/api_test.py::TestApi::test_timeout_cancel 149s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_timeout_cancel 149s tests/api_test.py::test_wrap_is_timeout 149s [gw0] [ 7%] PASSED tests/api_test.py::test_wrap_is_timeout 149s tests/api_test.py::test_timeouterror_deprecated 149s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_size 149s tests/env_test.py::test_tpool_negative 149s [gw0] [ 7%] PASSED tests/api_test.py::test_timeouterror_deprecated 149s tests/api_test.py::test_zero_second_sleep 149s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_negative 149s tests/env_test.py::test_tpool_zero 149s [gw0] [ 8%] PASSED tests/api_test.py::test_zero_second_sleep 149s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 149s [gw1] [ 8%] PASSED tests/env_test.py::test_tpool_zero 149s tests/event_test.py::TestEvent::test_double_exception 149s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_double_exception 149s tests/event_test.py::TestEvent::test_multiple_waiters 149s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters 149s tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 149s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 149s tests/event_test.py::TestEvent::test_reset 149s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_reset 149s tests/event_test.py::TestEvent::test_waiting_for_event 149s [gw0] [ 8%] PASSED tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 150s tests/backdoor_test.py::BackdoorTest::test_server 150s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_waiting_for_event 150s tests/event_test.py::test_wait_timeout_ok 150s [gw1] [ 9%] PASSED tests/event_test.py::test_wait_timeout_ok 150s tests/event_test.py::test_wait_timeout_exceed 150s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_server 150s tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 150s [gw0] [ 9%] SKIPPED tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 150s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 150s [gw1] [ 9%] PASSED tests/event_test.py::test_wait_timeout_exceed 150s tests/green_http_test.py::test_green_http_doesnt_change_original_module 150s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 150s tests/convenience_test.py::TestServe::test_blocking 150s [gw0] [ 9%] PASSED tests/convenience_test.py::TestServe::test_blocking 150s tests/convenience_test.py::TestServe::test_called_for_each_connection 150s [gw1] [ 10%] PASSED tests/green_http_test.py::test_green_http_doesnt_change_original_module 150s tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 150s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_called_for_each_connection 150s tests/convenience_test.py::TestServe::test_concurrency 150s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_concurrency 150s tests/convenience_test.py::TestServe::test_excepting_server 150s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server 150s tests/convenience_test.py::TestServe::test_excepting_server_already_closed 150s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server_already_closed 150s tests/convenience_test.py::TestServe::test_exiting_server 150s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_exiting_server 150s tests/convenience_test.py::TestServe::test_raising_stopserve 150s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_raising_stopserve 150s tests/convenience_test.py::TestServe::test_wrap_ssl 150s [gw1] [ 11%] PASSED tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 150s tests/green_http_test.py::test_http_request_encode_chunked_kwarg 150s [gw1] [ 11%] PASSED tests/green_http_test.py::test_http_request_encode_chunked_kwarg 150s tests/green_profile_test.py::test_green_profile_basic 150s [gw1] [ 11%] PASSED tests/green_profile_test.py::test_green_profile_basic 150s tests/green_select_test.py::test_select_mark_file_as_reopened 150s [gw0] [ 11%] PASSED tests/convenience_test.py::TestServe::test_wrap_ssl 150s tests/convenience_test.py::test_socket_reuse 150s [gw0] [ 11%] PASSED tests/convenience_test.py::test_socket_reuse 150s tests/convenience_test.py::test_reuse_random_port_warning 150s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuse_random_port_warning 150s tests/convenience_test.py::test_reuseport_oserror 150s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuseport_oserror 150s tests/dagpool_test.py::test_check_no_suspend 150s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_check_no_suspend 150s tests/dagpool_test.py::test_init 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_init 150s tests/dagpool_test.py::test_wait_each_empty 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_empty 150s tests/dagpool_test.py::test_wait_each_preload 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_preload 150s tests/dagpool_test.py::test_wait_each_posted 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_posted 150s tests/dagpool_test.py::test_wait_posted 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_posted 150s tests/dagpool_test.py::test_spawn_collision_preload 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_preload 150s tests/dagpool_test.py::test_spawn_collision_post 150s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_post 150s tests/dagpool_test.py::test_spawn_collision_spawn 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_spawn_collision_spawn 150s tests/dagpool_test.py::test_spawn_multiple 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_spawn_multiple 150s tests/dagpool_test.py::test_spawn_many 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_spawn_many 150s tests/dagpool_test.py::test_wait_each_all 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_wait_each_all 150s tests/dagpool_test.py::test_kill 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_kill 150s tests/dagpool_test.py::test_post_collision_preload 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_preload 150s tests/dagpool_test.py::test_post_collision_post 150s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_post 150s tests/dagpool_test.py::test_post_collision_spawn 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_post_collision_spawn 150s tests/dagpool_test.py::test_post_replace 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_post_replace 150s tests/dagpool_test.py::test_getitem 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_getitem 150s tests/dagpool_test.py::test_waitall_exc 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_waitall_exc 150s tests/dagpool_test.py::test_propagate_exc 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_propagate_exc 150s tests/dagpool_test.py::test_wait_each_exc 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_wait_each_exc 150s tests/dagpool_test.py::test_post_get_exc 150s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_post_get_exc 150s tests/db_pool_test.py::test_raw_pool_issue_125 150s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_issue_125 150s tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 150s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 150s tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 150s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 150s tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 150s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 150s tests/db_pool_test.py::test_raw_pool_clear_update_current_size 150s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_clear_update_current_size 150s tests/db_pool_test.py::Test01MysqlTpool::test_bool 150s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_bool 150s tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 150s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 150s tests/db_pool_test.py::Test01MysqlTpool::test_connecting 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connecting 150s tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 150s tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 150s tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 150s tests/db_pool_test.py::Test01MysqlTpool::test_put_none 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_none 150s tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 150s tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 150s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 150s tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 150s tests/db_pool_test.py::Test01MysqlTpool::test_run_query 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_query 150s tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 150s tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 150s tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 150s tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 150s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 150s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 150s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 150s tests/db_pool_test.py::Test02MysqlRaw::test_bool 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_bool 150s tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 150s tests/db_pool_test.py::Test02MysqlRaw::test_connecting 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connecting 150s tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 150s tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 150s tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 150s tests/db_pool_test.py::Test02MysqlRaw::test_put_none 150s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_none 150s tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 150s tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 150s tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 150s tests/db_pool_test.py::Test02MysqlRaw::test_run_query 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_query 150s tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 150s tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 150s tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 150s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 150s tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 150s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 150s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 150s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 150s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 150s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 150s tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 150s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 150s tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 150s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 150s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 150s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 150s tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 150s [gw0] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 150s tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 150s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 150s tests/greenio_test.py::TestGreenSocket::test_full_duplex 150s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_full_duplex 150s tests/greenio_test.py::TestGreenSocket::test_invalid_connection 150s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_invalid_connection 150s tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 150s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 151s tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 151s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 151s tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 151s [gw1] [ 21%] PASSED tests/green_select_test.py::test_select_mark_file_as_reopened 151s tests/greendns_test.py::TestHostsResolver::test_default_fname 151s [gw1] [ 21%] PASSED tests/greendns_test.py::TestHostsResolver::test_default_fname 151s tests/greendns_test.py::TestHostsResolver::test_getaliases 151s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases 151s tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 151s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 151s tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 151s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 151s tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 151s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 151s tests/greendns_test.py::TestHostsResolver::test_load_no_contents 151s [gw0] [ 22%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 151s tests/greenio_test.py::TestGreenSocket::test_recv_timeout 151s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_no_contents 151s tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 151s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 151s tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 151s tests/greendns_test.py::TestHostsResolver::test_query_A 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_A 151s tests/greendns_test.py::TestHostsResolver::test_query_AAAA 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_AAAA 151s tests/greendns_test.py::TestHostsResolver::test_query_CNAME 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_CNAME 151s tests/greendns_test.py::TestHostsResolver::test_query_ans_types 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_ans_types 151s tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 151s tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 151s tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 151s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 151s tests/greendns_test.py::TestHostsResolver::test_readlines_lines 151s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_lines 151s tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 151s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 151s tests/greendns_test.py::TestUdp::test_udp_ipv4 151s [gw1] [ 24%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4 151s tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 151s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_timeout 151s tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 151s [gw1] [ 24%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 151s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 151s [gw1] [ 24%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 151s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 151s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 151s tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 151s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 151s tests/greendns_test.py::TestUdp::test_udp_ipv6 151s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6 151s tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 151s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 151s tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 151s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 151s tests/greenio_test.py::TestGreenSocket::test_send_timeout 151s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_send_timeout 151s tests/greenio_test.py::TestGreenSocket::test_sendall 151s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 151s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 151s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall 151s tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 151s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 151s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 151s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 151s tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 151s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 151s tests/greendns_test.py::TestProxyResolver::test_getaliases 151s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 151s tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 151s [gw1] [ 26%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases 151s tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 151s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 151s tests/greenio_test.py::TestGreenSocket::test_socketpair_select 151s [gw1] [ 26%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 152s tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 152s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenSocket::test_socketpair_select 152s tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 152s [gw1] [ 27%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 152s tests/greendns_test.py::TestProxyResolver::test_hosts 152s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 152s tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 152s [gw1] [ 27%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts 152s tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 152s [gw1] [ 27%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 152s tests/greendns_test.py::TestProxyResolver::test_noanswer 152s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 152s tests/greenio_test.py::TestGreenSocket::test_wrap_socket 152s [gw1] [ 27%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer 152s tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 152s [gw0] [ 28%] PASSED tests/greenio_test.py::TestGreenSocket::test_wrap_socket 152s tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 152s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 152s tests/greendns_test.py::TestProxyResolver::test_nxdomain 152s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_nxdomain 152s tests/greendns_test.py::TestProxyResolver::test_resolver 152s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_resolver 152s tests/greendns_test.py::TestResolve::test_A 152s [gw1] [ 28%] PASSED tests/greendns_test.py::TestResolve::test_A 152s tests/greendns_test.py::TestResolve::test_AAAA 152s [gw1] [ 28%] PASSED tests/greendns_test.py::TestResolve::test_AAAA 152s tests/greendns_test.py::TestResolve::test_exc 152s [gw1] [ 28%] PASSED tests/greendns_test.py::TestResolve::test_exc 152s tests/greendns_test.py::TestResolve::test_noraise_noanswer 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_noraise_noanswer 152s tests/greendns_test.py::TestResolve::test_noraise_nxdomain 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_noraise_nxdomain 152s tests/greendns_test.py::TestResolve::test_timeout 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_timeout 152s tests/greendns_test.py::TestResolve::test_unknown_rdtype 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolve::test_unknown_rdtype 152s tests/greendns_test.py::TestResolveCname::test_no_answer 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolveCname::test_no_answer 152s tests/greendns_test.py::TestResolveCname::test_nodata 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolveCname::test_nodata 152s tests/greendns_test.py::TestResolveCname::test_success 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolveCname::test_success 152s tests/greendns_test.py::TestResolveCname::test_timeout 152s [gw1] [ 29%] PASSED tests/greendns_test.py::TestResolveCname::test_timeout 152s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 152s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 152s tests/greendns_test.py::TestGetaddrinfo::test_canonname 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_canonname 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 152s [gw1] [ 30%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 152s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 152s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 152s tests/greendns_test.py::TestGetaddrinfo::test_host_none 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none 152s tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 152s tests/greendns_test.py::TestGetaddrinfo::test_noport 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_noport 152s tests/greendns_test.py::TestGetaddrinfo::test_numerichost 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numerichost 152s tests/greendns_test.py::TestGetaddrinfo::test_numericserv 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numericserv 152s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 152s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 152s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 152s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 152s tests/greendns_test.py::TestIsIpAddr::test_isv4 152s [gw1] [ 33%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4 152s tests/greendns_test.py::TestIsIpAddr::test_isv4_false 152s [gw1] [ 33%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_false 152s tests/greendns_test.py::TestIsIpAddr::test_isv4_none 152s [gw0] [ 33%] PASSED tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 152s tests/greenio_test.py::test_get_fileno_of_a_socket_works 152s [gw0] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_works 152s tests/greenio_test.py::test_get_fileno_of_an_int_works 152s [gw0] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_an_int_works 152s tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 152s [gw0] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 152s tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 152s [gw0] [ 34%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 152s tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 152s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_none 152s tests/greendns_test.py::TestIsIpAddr::test_isv6 152s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6 152s tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 152s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 152s tests/greendns_test.py::TestIsIpAddr::test_isv6_none 152s [gw0] [ 34%] FAILED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 152s tests/greenio_test.py::TestGreenPipe::test_pipe 152s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_none 152s tests/greendns_test.py::TestIsIpAddr::test_none 152s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_none 152s tests/greendns_test.py::TestIsIpAddr::test_v4 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4 152s tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 152s [gw0] [ 35%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe 152s tests/greenio_test.py::TestGreenPipe::test_pipe_read 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 152s tests/greendns_test.py::TestIsIpAddr::test_v6_addr 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v6_addr 152s tests/greendns_test.py::TestGethostbyname::test_ipaddr 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestGethostbyname::test_ipaddr 152s tests/greendns_test.py::TestGethostbyname::test_name 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestGethostbyname::test_name 152s tests/greendns_test.py::TestGetaliases::test_getaliases 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestGetaliases::test_getaliases 152s tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 152s [gw1] [ 35%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 152s tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 152s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 152s tests/greendns_test.py::TestGethostbyname_ex::test_name 152s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_name 152s tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 152s [gw0] [ 36%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_read 152s tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 152s [gw1] [ 36%] PASSED tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 152s tests/greendns_test.py::test_reverse_name 152s [gw0] [ 36%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 152s tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 152s [gw0] [ 36%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 152s tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 152s [gw0] [ 36%] PASSED tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 152s tests/greenio_test.py::TestGreenPipe::test_truncate 152s [gw0] [ 37%] PASSED tests/greenio_test.py::TestGreenPipe::test_truncate 152s tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 152s [gw1] [ 37%] PASSED tests/greendns_test.py::test_reverse_name 152s tests/greendns_test.py::test_proxy_resolve_unqualified 152s [gw1] [ 37%] PASSED tests/greendns_test.py::test_proxy_resolve_unqualified 152s tests/greendns_test.py::test_hosts_priority 152s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_priority 152s tests/greendns_test.py::test_hosts_no_network 152s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_no_network 152s tests/greendns_test.py::test_import_rdtypes_then_eventlet 152s [gw1] [ 37%] PASSED tests/greendns_test.py::test_import_rdtypes_then_eventlet 152s tests/greenio_test.py::TestGreenSocket::test_accept_timeout 152s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_accept_timeout 153s tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 153s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 153s tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 153s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 153s tests/greenio_test.py::TestGreenSocket::test_closure 153s [gw1] [ 38%] SKIPPED tests/greenio_test.py::TestGreenSocket::test_closure 153s tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 153s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 153s tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 153s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 153s tests/hub_test.py::test_use_hub_class 153s [gw1] [ 38%] PASSED tests/hub_test.py::test_use_hub_class 153s tests/hub_test.py::test_kqueue_unsupported 153s [gw1] [ 38%] PASSED tests/hub_test.py::test_kqueue_unsupported 153s tests/mysqldb_test.py::TestMySQLdb::test_connecting 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting 153s tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 153s tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 153s tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 153s tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 153s tests/mysqldb_test.py::TestMySQLdb::test_run_query 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_query 153s tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 153s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 153s tests/mysqldb_test.py::TestMySQLdb::test_yields 153s [gw1] [ 40%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_yields 153s tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 153s [gw1] [ 40%] SKIPPED tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 153s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 153s [gw1] [ 40%] PASSED tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 153s tests/openssl_test.py::test_import 153s [gw1] [ 40%] PASSED tests/openssl_test.py::test_import 153s tests/os_test.py::test_pathlib_open_issue_534 153s [gw1] [ 40%] PASSED tests/os_test.py::test_pathlib_open_issue_534 153s tests/os_test.py::test_os_read_nonblocking 153s [gw1] [ 40%] PASSED tests/os_test.py::test_os_read_nonblocking 155s tests/os_test.py::test_os_write_nonblocking 155s [gw1] [ 40%] PASSED tests/os_test.py::test_os_write_nonblocking 155s tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 155s [gw1] [ 41%] SKIPPED tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 156s tests/patcher_test.py::ImportPatched::test_patch_a_module 156s [gw1] [ 41%] PASSED tests/patcher_test.py::ImportPatched::test_patch_a_module 156s tests/patcher_test.py::test_import_patched_handles_sub_modules 156s [gw1] [ 41%] PASSED tests/patcher_test.py::test_import_patched_handles_sub_modules 156s tests/patcher_test.py::MonkeyPatch::test_boolean 156s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean 156s tests/patcher_test.py::MonkeyPatch::test_boolean_all 156s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all 156s tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 156s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 156s tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 156s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 157s tests/patcher_test.py::MonkeyPatch::test_boolean_double 157s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_double 157s tests/patcher_test.py::MonkeyPatch::test_boolean_negative 157s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative 157s tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 157s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 157s tests/patcher_test.py::MonkeyPatch::test_boolean_single 157s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_single 157s tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 157s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 158s tests/patcher_test.py::MonkeyPatch::test_early_patching 158s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_early_patching 158s tests/patcher_test.py::MonkeyPatch::test_late_patching 158s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_late_patching 158s tests/patcher_test.py::MonkeyPatch::test_patched_modules 158s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_patched_modules 158s tests/patcher_test.py::MonkeyPatch::test_typeerror 158s [gw1] [ 43%] PASSED tests/patcher_test.py::MonkeyPatch::test_typeerror 159s tests/patcher_test.py::Tpool::test_patched_thread 159s [gw1] [ 43%] PASSED tests/patcher_test.py::Tpool::test_patched_thread 159s tests/patcher_test.py::Tpool::test_simple 159s [gw1] [ 43%] PASSED tests/patcher_test.py::Tpool::test_simple 160s tests/patcher_test.py::Tpool::test_unpatched_thread 160s [gw1] [ 43%] PASSED tests/patcher_test.py::Tpool::test_unpatched_thread 160s tests/patcher_test.py::test_subprocess_after_monkey_patch 160s [gw1] [ 43%] PASSED tests/patcher_test.py::test_subprocess_after_monkey_patch 160s tests/patcher_test.py::Threading::test_greenlet 160s [gw1] [ 43%] PASSED tests/patcher_test.py::Threading::test_greenlet 161s tests/patcher_test.py::Threading::test_greenthread 161s [gw1] [ 43%] PASSED tests/patcher_test.py::Threading::test_greenthread 161s tests/patcher_test.py::Threading::test_keyerror 161s [gw0] [ 44%] PASSED tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 161s tests/greenio_test.py::test_set_nonblocking 161s [gw0] [ 44%] PASSED tests/greenio_test.py::test_set_nonblocking 161s tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 161s [gw0] [ 44%] PASSED tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 161s tests/greenio_test.py::test_double_close_219 161s [gw1] [ 44%] PASSED tests/patcher_test.py::Threading::test_keyerror 161s tests/patcher_test.py::Threading::test_tpool 161s [gw0] [ 44%] PASSED tests/greenio_test.py::test_double_close_219 161s tests/greenio_test.py::test_partial_write_295 161s [gw1] [ 44%] PASSED tests/patcher_test.py::Threading::test_tpool 161s tests/patcher_test.py::Os::test_waitpid 161s [gw0] [ 44%] PASSED tests/greenio_test.py::test_partial_write_295 161s tests/greenio_test.py::test_socket_file_read_non_int 161s [gw0] [ 45%] PASSED tests/greenio_test.py::test_socket_file_read_non_int 161s tests/greenio_test.py::test_pipe_context 161s [gw0] [ 45%] FAILED tests/greenio_test.py::test_pipe_context 161s tests/greenio_test.py::test_greenpipe_write 161s [gw0] [ 45%] FAILED tests/greenio_test.py::test_greenpipe_write 161s tests/greenio_test.py::test_greenpipe_append 161s [gw0] [ 45%] FAILED tests/greenio_test.py::test_greenpipe_append 161s tests/greenio_test.py::test_greenpipe_read_overwrite 161s [gw0] [ 45%] FAILED tests/greenio_test.py::test_greenpipe_read_overwrite 161s tests/greenio_test.py::test_greenpipe_write_plus 161s [gw0] [ 45%] FAILED tests/greenio_test.py::test_greenpipe_write_plus 161s tests/greenio_test.py::test_greenpipe_append_plus 161s [gw0] [ 45%] FAILED tests/greenio_test.py::test_greenpipe_append_plus 161s tests/greenpool_test.py::GreenPool::test_empty_imap 161s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_empty_imap 161s tests/greenpool_test.py::GreenPool::test_exceptions 161s [gw1] [ 46%] PASSED tests/patcher_test.py::Os::test_waitpid 161s tests/patcher_test.py::GreenThreadWrapper::test_ident 161s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_exceptions 162s tests/greenpool_test.py::GreenPool::test_imap 162s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap 162s tests/greenpool_test.py::GreenPool::test_imap_multi_args 162s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap_multi_args 162s tests/greenpool_test.py::GreenPool::test_imap_nonefunc 162s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap_nonefunc 162s tests/greenpool_test.py::GreenPool::test_imap_raises 162s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_imap_raises 162s tests/greenpool_test.py::GreenPool::test_multiple_coros 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_multiple_coros 162s tests/greenpool_test.py::GreenPool::test_pool_smash 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_pool_smash 162s tests/greenpool_test.py::GreenPool::test_recursive_waitall 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_recursive_waitall 162s tests/greenpool_test.py::GreenPool::test_reentrant 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_reentrant 162s tests/greenpool_test.py::GreenPool::test_resize 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_resize 162s tests/greenpool_test.py::GreenPool::test_spawn 162s [gw1] [ 47%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_ident 162s tests/patcher_test.py::GreenThreadWrapper::test_is_alive 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_spawn 162s tests/greenpool_test.py::GreenPool::test_spawn_n 162s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n 162s tests/greenpool_test.py::GreenPool::test_spawn_n_2 162s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n_2 162s tests/greenpool_test.py::GreenPool::test_starmap 162s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_starmap 162s tests/greenpool_test.py::GreenPool::test_timer_cancel 162s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_timer_cancel 162s tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 162s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 162s tests/greenpool_test.py::GreenPool::test_waiting 162s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPool::test_waiting 162s tests/greenpool_test.py::GreenPile::test_constructing_from_pool 162s [gw0] [ 48%] PASSED tests/greenpool_test.py::GreenPile::test_constructing_from_pool 162s tests/greenpool_test.py::GreenPile::test_empty_pile 162s [gw1] [ 48%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_alive 162s tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 162s [gw0] [ 49%] PASSED tests/greenpool_test.py::GreenPile::test_empty_pile 162s tests/greenpool_test.py::GreenPile::test_pile 162s [gw0] [ 49%] PASSED tests/greenpool_test.py::GreenPile::test_pile 162s tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 162s [gw0] [ 49%] PASSED tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 162s tests/greenpool_test.py::test_greenpool_type_check 162s [gw0] [ 49%] PASSED tests/greenpool_test.py::test_greenpool_type_check 162s tests/greenpool_test.py::Stress::test_imap_50 162s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 162s tests/patcher_test.py::GreenThreadWrapper::test_join 162s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_join 163s tests/patcher_test.py::GreenThreadWrapper::test_name 163s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_name 163s tests/patcher_test.py::test_patcher_existing_locks_early 163s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_early 163s tests/patcher_test.py::test_patcher_existing_locks_late 163s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_late 163s tests/patcher_test.py::test_patcher_existing_locks_unlocked 163s [gw1] [ 50%] SKIPPED tests/patcher_test.py::test_patcher_existing_locks_unlocked 163s tests/patcher_test.py::test_patcher_existing_logging_module_lock 163s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_logging_module_lock 163s tests/patcher_test.py::test_importlib_lock 163s [gw1] [ 50%] PASSED tests/patcher_test.py::test_importlib_lock 164s tests/patcher_test.py::test_threading_condition 164s [gw1] [ 50%] PASSED tests/patcher_test.py::test_threading_condition 165s tests/patcher_test.py::test_threading_join 165s [gw0] [ 50%] PASSED tests/greenpool_test.py::Stress::test_imap_50 165s tests/greenpool_test.py::Stress::test_imap_500 165s [gw1] [ 51%] PASSED tests/patcher_test.py::test_threading_join 167s tests/patcher_test.py::test_socketserver_selectors 167s [gw1] [ 51%] PASSED tests/patcher_test.py::test_socketserver_selectors 167s tests/patcher_test.py::test_blocking_select_methods_are_deleted 167s [gw1] [ 51%] PASSED tests/patcher_test.py::test_blocking_select_methods_are_deleted 167s tests/patcher_test.py::test_regular_file_readall 167s [gw1] [ 51%] FAILED tests/patcher_test.py::test_regular_file_readall 167s tests/patcher_test.py::test_threading_current 167s [gw1] [ 51%] PASSED tests/patcher_test.py::test_threading_current 167s tests/patcher_test.py::test_threadpoolexecutor 167s [gw1] [ 51%] PASSED tests/patcher_test.py::test_threadpoolexecutor 167s tests/patcher_test.py::test_builtin 167s [gw1] [ 51%] PASSED tests/patcher_test.py::test_builtin 167s tests/patcher_test.py::test_open_kwargs 167s [gw0] [ 52%] PASSED tests/greenpool_test.py::Stress::test_imap_500 167s tests/greenpool_test.py::Stress::test_ordering_5 167s [gw1] [ 52%] PASSED tests/patcher_test.py::test_open_kwargs 167s tests/patcher_test.py::test_patcher_existing_locks 167s [gw1] [ 52%] PASSED tests/patcher_test.py::test_patcher_existing_locks 167s tests/patcher_test.py::test_patcher_existing_locks_exception 167s [gw0] [ 52%] PASSED tests/greenpool_test.py::Stress::test_ordering_5 167s tests/greenpool_test.py::Stress::test_ordering_50 167s [gw1] [ 52%] PASSED tests/patcher_test.py::test_patcher_existing_locks_exception 167s tests/patcher_test.py::test_patcher_threading_subclass_done 167s [gw1] [ 52%] PASSED tests/patcher_test.py::test_patcher_threading_subclass_done 167s tests/pools_test.py::TestIntPool::test_blocks_on_pool 167s [gw1] [ 52%] PASSED tests/pools_test.py::TestIntPool::test_blocks_on_pool 167s tests/pools_test.py::TestIntPool::test_create_contention 167s [gw1] [ 52%] PASSED tests/pools_test.py::TestIntPool::test_create_contention 167s tests/pools_test.py::TestIntPool::test_exhaustion 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_exhaustion 167s tests/pools_test.py::TestIntPool::test_free 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_free 167s tests/pools_test.py::TestIntPool::test_integers 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_integers 167s tests/pools_test.py::TestIntPool::test_ordering 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_ordering 167s tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 167s tests/pools_test.py::TestIntPool::test_putting_to_queue 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_putting_to_queue 167s tests/pools_test.py::TestIntPool::test_resize 167s [gw1] [ 53%] PASSED tests/pools_test.py::TestIntPool::test_resize 167s tests/pools_test.py::TestAbstract::test_abstract 167s [gw1] [ 54%] PASSED tests/pools_test.py::TestAbstract::test_abstract 167s tests/pools_test.py::TestIntPool2::test_something 167s [gw1] [ 54%] PASSED tests/pools_test.py::TestIntPool2::test_something 167s tests/pools_test.py::TestOrderAsStack::test_ordering 167s [gw1] [ 54%] PASSED tests/pools_test.py::TestOrderAsStack::test_ordering 167s tests/pools_test.py::TestCreateRaises::test_it 167s [gw1] [ 54%] PASSED tests/pools_test.py::TestCreateRaises::test_it 167s tests/queue_test.py::TestQueue::test_channel_send 167s [gw1] [ 54%] PASSED tests/queue_test.py::TestQueue::test_channel_send 167s tests/queue_test.py::TestQueue::test_channel_sender_timing_out 167s [gw1] [ 54%] PASSED tests/queue_test.py::TestQueue::test_channel_sender_timing_out 167s tests/queue_test.py::TestQueue::test_channel_wait 167s [gw0] [ 54%] PASSED tests/greenpool_test.py::Stress::test_ordering_50 167s tests/greenpool_test.py::Stress::test_with_intpool 167s [gw1] [ 55%] PASSED tests/queue_test.py::TestQueue::test_channel_wait 167s tests/queue_test.py::TestQueue::test_channel_waiters 167s [gw0] [ 55%] PASSED tests/greenpool_test.py::Stress::test_with_intpool 167s [gw1] [ 55%] PASSED tests/queue_test.py::TestQueue::test_channel_waiters 167s tests/queue_test.py::TestQueue::test_getting_before_sending 167s tests/greenthread_test.py::Spawn::test_kill 167s [gw0] [ 55%] PASSED tests/greenthread_test.py::Spawn::test_kill 168s tests/greenthread_test.py::Spawn::test_kill_meth 168s [gw1] [ 55%] PASSED tests/queue_test.py::TestQueue::test_getting_before_sending 168s tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 168s [gw0] [ 55%] PASSED tests/greenthread_test.py::Spawn::test_kill_meth 168s tests/greenthread_test.py::Spawn::test_kill_n 168s [gw1] [ 55%] PASSED tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 168s tests/queue_test.py::TestQueue::test_max_size 168s [gw0] [ 56%] PASSED tests/greenthread_test.py::Spawn::test_kill_n 168s tests/greenthread_test.py::Spawn::test_link 168s [gw1] [ 56%] PASSED tests/queue_test.py::TestQueue::test_max_size 168s tests/queue_test.py::TestQueue::test_multiple_waiters 168s [gw0] [ 56%] PASSED tests/greenthread_test.py::Spawn::test_link 168s tests/greenthread_test.py::Spawn::test_link_after_exited 168s [gw0] [ 56%] PASSED tests/greenthread_test.py::Spawn::test_link_after_exited 168s tests/greenthread_test.py::Spawn::test_link_relinks 168s [gw1] [ 56%] PASSED tests/queue_test.py::TestQueue::test_multiple_waiters 168s tests/queue_test.py::TestQueue::test_resize_down 168s [gw0] [ 56%] PASSED tests/greenthread_test.py::Spawn::test_link_relinks 168s tests/greenthread_test.py::Spawn::test_n 168s [gw1] [ 56%] PASSED tests/queue_test.py::TestQueue::test_resize_down 168s tests/queue_test.py::TestQueue::test_resize_to_Unlimited 168s [gw0] [ 57%] PASSED tests/greenthread_test.py::Spawn::test_n 168s tests/greenthread_test.py::Spawn::test_simple 168s [gw1] [ 57%] PASSED tests/queue_test.py::TestQueue::test_resize_to_Unlimited 168s tests/queue_test.py::TestQueue::test_resize_up 168s [gw0] [ 57%] PASSED tests/greenthread_test.py::Spawn::test_simple 168s tests/greenthread_test.py::SpawnAfter::test_basic 168s [gw1] [ 57%] PASSED tests/queue_test.py::TestQueue::test_resize_up 168s tests/queue_test.py::TestQueue::test_send_first 168s [gw1] [ 57%] PASSED tests/queue_test.py::TestQueue::test_send_first 168s tests/queue_test.py::TestQueue::test_send_last 168s [gw1] [ 57%] PASSED tests/queue_test.py::TestQueue::test_send_last 168s tests/queue_test.py::TestQueue::test_task_done 168s [gw1] [ 57%] PASSED tests/queue_test.py::TestQueue::test_task_done 168s tests/queue_test.py::TestQueue::test_two_bogus_waiters 168s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_two_bogus_waiters 168s tests/queue_test.py::TestQueue::test_two_waiters_one_dies 168s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_two_waiters_one_dies 168s tests/queue_test.py::TestQueue::test_waiters_that_cancel 168s [gw0] [ 58%] PASSED tests/greenthread_test.py::SpawnAfter::test_basic 168s tests/greenthread_test.py::SpawnAfter::test_cancel 168s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_waiters_that_cancel 168s tests/queue_test.py::TestQueue::test_waiting 168s [gw0] [ 58%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel 168s tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 168s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_waiting 168s tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 168s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 168s tests/queue_test.py::TestQueue::test_zero_max_size 168s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_zero_max_size 168s tests/queue_test.py::TestNoWait::test_get_nowait_simple 168s [gw1] [ 59%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_simple 168s tests/queue_test.py::TestNoWait::test_get_nowait_unlock 168s [gw1] [ 59%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_unlock 168s tests/queue_test.py::TestNoWait::test_put_nowait_simple 168s [gw1] [ 59%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_simple 168s tests/queue_test.py::TestNoWait::test_put_nowait_unlock 168s [gw0] [ 59%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 168s tests/greenthread_test.py::SpawnAfter::test_kill 168s [gw0] [ 59%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill 168s tests/greenthread_test.py::SpawnAfter::test_kill_already_started 168s [gw1] [ 59%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_unlock 168s tests/queue_test.py::TestNoWait::test_wait_except 168s [gw0] [ 59%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_already_started 168s tests/greenthread_test.py::SpawnAfter::test_kill_meth 168s [gw1] [ 60%] PASSED tests/queue_test.py::TestNoWait::test_wait_except 168s tests/semaphore_test.py::TestSemaphore::test_bounded 168s [gw0] [ 60%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_meth 168s tests/greenthread_test.py::SpawnAfter::test_kill_n 168s [gw1] [ 60%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded 168s tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 168s [gw1] [ 60%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 168s tests/semaphore_test.py::TestSemaphore::test_non_blocking 168s [gw0] [ 60%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_n 168s tests/greenthread_test.py::SpawnAfter::test_link 168s [gw1] [ 60%] PASSED tests/semaphore_test.py::TestSemaphore::test_non_blocking 168s tests/semaphore_test.py::TestSemaphore::test_timeout 168s [gw0] [ 60%] PASSED tests/greenthread_test.py::SpawnAfter::test_link 168s tests/greenthread_test.py::SpawnAfter::test_link_after_exited 168s [gw0] [ 61%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_after_exited 168s tests/greenthread_test.py::SpawnAfter::test_link_relinks 168s [gw0] [ 61%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_relinks 168s tests/greenthread_test.py::SpawnAfter::test_n 168s [gw0] [ 61%] PASSED tests/greenthread_test.py::SpawnAfter::test_n 168s tests/greenthread_test.py::SpawnAfter::test_simple 168s [gw0] [ 61%] PASSED tests/greenthread_test.py::SpawnAfter::test_simple 168s tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 168s [gw1] [ 61%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout 168s tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 168s [gw1] [ 61%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 168s tests/semaphore_test.py::test_semaphore_contention 168s [gw0] [ 61%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 169s tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 169s [gw0] [ 62%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 169s tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 169s [gw1] [ 62%] PASSED tests/semaphore_test.py::test_semaphore_contention 169s tests/semaphore_test.py::test_semaphore_type_check 169s [gw1] [ 62%] PASSED tests/semaphore_test.py::test_semaphore_type_check 169s tests/socket_test.py::test_recv_type 169s [gw0] [ 62%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 169s tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 169s [gw0] [ 62%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 169s tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 169s [gw0] [ 62%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 169s tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 169s [gw1] [ 62%] PASSED tests/socket_test.py::test_recv_type 169s tests/socket_test.py::test_recv_into_type 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 169s tests/hub_test.py::TestScheduleCall::test_global 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestScheduleCall::test_global 169s tests/hub_test.py::TestScheduleCall::test_local 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestScheduleCall::test_local 169s tests/hub_test.py::TestScheduleCall::test_ordering 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestScheduleCall::test_ordering 169s tests/hub_test.py::TestDebug::test_debug_listeners 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestDebug::test_debug_listeners 169s tests/hub_test.py::TestDebug::test_timer_exceptions 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestDebug::test_timer_exceptions 169s tests/hub_test.py::TestExceptionInMainloop::test_sleep 169s [gw0] [ 63%] PASSED tests/hub_test.py::TestExceptionInMainloop::test_sleep 169s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 169s [gw0] [ 64%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 169s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 169s [gw0] [ 64%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 169s tests/hub_test.py::TestHubBlockingDetector::test_block_detect 169s [gw1] [ 64%] PASSED tests/socket_test.py::test_recv_into_type 169s tests/socket_test.py::test_socket_api_family 169s [gw1] [ 64%] PASSED tests/socket_test.py::test_socket_api_family 169s tests/socket_test.py::test_getaddrinfo_ipv6_scope 169s [gw1] [ 64%] PASSED tests/socket_test.py::test_getaddrinfo_ipv6_scope 169s tests/socket_test.py::test_error_is_timeout 169s [gw1] [ 64%] PASSED tests/socket_test.py::test_error_is_timeout 169s tests/socket_test.py::test_connect_ex_success 169s [gw1] [ 64%] PASSED tests/socket_test.py::test_connect_ex_success 169s tests/ssl_test.py::SSLTest::test_client_check_hostname 169s [gw1] [ 64%] PASSED tests/ssl_test.py::SSLTest::test_client_check_hostname 169s tests/ssl_test.py::SSLTest::test_context_version_setters 169s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_context_version_setters 169s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 169s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_context_wrapped_accept 169s tests/ssl_test.py::SSLTest::test_duplex_response 169s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_duplex_response 169s tests/ssl_test.py::SSLTest::test_explicit_keys_accept 169s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_explicit_keys_accept 169s tests/ssl_test.py::SSLTest::test_greensslobject 169s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_greensslobject 170s tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 170s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 170s tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 170s [gw1] [ 65%] PASSED tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 170s tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 170s [gw1] [ 66%] PASSED tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 170s tests/ssl_test.py::SSLTest::test_regression_gh_17 170s [gw1] [ 66%] PASSED tests/ssl_test.py::SSLTest::test_regression_gh_17 171s tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 171s [gw0] [ 66%] PASSED tests/hub_test.py::TestHubBlockingDetector::test_block_detect 171s tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 171s [gw0] [ 66%] SKIPPED tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 171s tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 171s [gw1] [ 66%] PASSED tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 171s tests/ssl_test.py::SSLTest::test_ssl_close 171s [gw1] [ 66%] PASSED tests/ssl_test.py::SSLTest::test_ssl_close 171s tests/ssl_test.py::SSLTest::test_ssl_connect 171s [gw1] [ 66%] PASSED tests/ssl_test.py::SSLTest::test_ssl_connect 171s tests/ssl_test.py::SSLTest::test_ssl_context 171s [gw1] [ 67%] PASSED tests/ssl_test.py::SSLTest::test_ssl_context 171s tests/ssl_test.py::SSLTest::test_ssl_unwrap 171s [gw1] [ 67%] PASSED tests/ssl_test.py::SSLTest::test_ssl_unwrap 171s tests/subprocess_test.py::test_subprocess_wait 171s [gw1] [ 67%] PASSED tests/subprocess_test.py::test_subprocess_wait 171s tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 171s [gw1] [ 67%] PASSED tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 171s tests/subprocess_test.py::test_universal_lines 171s [gw1] [ 67%] FAILED tests/subprocess_test.py::test_universal_lines 171s tests/timeout_with_statement_test.py::Test::test_nested_timeout 171s [gw1] [ 67%] PASSED tests/timeout_with_statement_test.py::Test::test_nested_timeout 171s tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 171s [gw1] [ 67%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 171s tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 171s [gw1] [ 68%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 171s tests/timeout_with_statement_test.py::Test::test_raising_exception_class 171s [gw1] [ 68%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exception_class 171s tests/timeout_with_statement_test.py::Test::test_raising_self 171s [gw1] [ 68%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self 171s tests/timeout_with_statement_test.py::Test::test_raising_self_true 171s [gw1] [ 68%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self_true 171s tests/timeout_with_statement_test.py::Test::test_ref 171s [gw0] [ 68%] PASSED tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 171s tests/hub_test.py::test_repeated_select_bad_fd 171s [gw0] [ 68%] PASSED tests/hub_test.py::test_repeated_select_bad_fd 171s tests/hub_test.py::test_fork 171s [gw1] [ 68%] PASSED tests/timeout_with_statement_test.py::Test::test_ref 171s tests/timeout_with_statement_test.py::Test::test_silent_block 171s [gw1] [ 69%] PASSED tests/timeout_with_statement_test.py::Test::test_silent_block 171s tests/timer_test.py::TestTimer::test_copy 171s [gw1] [ 69%] PASSED tests/timer_test.py::TestTimer::test_copy 171s tests/timer_test.py::TestTimer::test_schedule 171s [gw1] [ 69%] PASSED tests/timer_test.py::TestTimer::test_schedule 171s tests/tpool_test.py::TestTpool::test_autowrap 171s [gw1] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_autowrap 171s tests/tpool_test.py::TestTpool::test_autowrap_both 171s [gw0] [ 69%] PASSED tests/hub_test.py::test_fork 171s tests/hub_test.py::test_fork_simple 171s [gw1] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_both 171s tests/tpool_test.py::TestTpool::test_autowrap_names 171s [gw1] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_names 171s tests/tpool_test.py::TestTpool::test_callable 171s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_callable 171s tests/tpool_test.py::TestTpool::test_callable_iterator 171s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_callable_iterator 171s tests/tpool_test.py::TestTpool::test_contention 171s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_contention 171s tests/tpool_test.py::TestTpool::test_eventlet_timeout 171s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_eventlet_timeout 171s tests/tpool_test.py::TestTpool::test_killall 171s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_killall 171s tests/tpool_test.py::TestTpool::test_killall_remaining_results 171s [gw0] [ 70%] PASSED tests/hub_test.py::test_fork_simple 172s tests/hub_test.py::TestDeadRunLoop::test_kill 172s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_killall_remaining_results 172s tests/tpool_test.py::TestTpool::test_multiple_wraps 172s [gw1] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_multiple_wraps 172s tests/tpool_test.py::TestTpool::test_raising_exceptions 172s [gw1] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_raising_exceptions 172s tests/tpool_test.py::TestTpool::test_timeout 172s [gw0] [ 71%] PASSED tests/hub_test.py::TestDeadRunLoop::test_kill 172s tests/hub_test.py::TestDeadRunLoop::test_parent 172s [gw1] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_timeout 172s tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 172s [gw1] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 172s tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 172s [gw1] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 172s tests/tpool_test.py::TestTpool::test_wrap_dict 172s [gw1] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_dict 172s tests/tpool_test.py::TestTpool::test_wrap_eq 172s [gw1] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_eq 172s tests/tpool_test.py::TestTpool::test_wrap_getitem 172s [gw1] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_getitem 172s tests/tpool_test.py::TestTpool::test_wrap_hash 172s [gw1] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_hash 172s tests/tpool_test.py::TestTpool::test_wrap_ints 172s [gw1] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_ints 172s tests/tpool_test.py::TestTpool::test_wrap_iterator 172s [gw1] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator 172s tests/tpool_test.py::TestTpool::test_wrap_iterator2 172s [gw1] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator2 172s tests/tpool_test.py::TestTpool::test_wrap_module_class 172s [gw0] [ 72%] PASSED tests/hub_test.py::TestDeadRunLoop::test_parent 172s tests/subprocess_test.py::test_patched_communicate_290 172s [gw1] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_module_class 172s tests/tpool_test.py::TestTpool::test_wrap_nonzero 172s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_nonzero 172s tests/tpool_test.py::TestTpool::test_wrap_setitem 172s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_setitem 173s tests/tpool_test.py::TestTpool::test_wrap_string 173s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_string 173s tests/tpool_test.py::TestTpool::test_wrap_tuple 173s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_tuple 173s tests/tpool_test.py::TestTpool::test_wrap_uniterable 173s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_uniterable 173s tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 173s [gw0] [ 73%] PASSED tests/subprocess_test.py::test_patched_communicate_290 173s tests/subprocess_test.py::test_check_call_without_timeout_works 173s [gw0] [ 73%] PASSED tests/subprocess_test.py::test_check_call_without_timeout_works 173s tests/subprocess_test.py::test_exception_identity 173s [gw0] [ 74%] PASSED tests/subprocess_test.py::test_exception_identity 173s tests/test__event.py::TestEvent::test_send 173s [gw0] [ 74%] PASSED tests/test__event.py::TestEvent::test_send 173s tests/test__event.py::TestEvent::test_send_exc 173s [gw0] [ 74%] PASSED tests/test__event.py::TestEvent::test_send_exc 173s tests/test__refcount.py::test_clean_exit 173s [gw0] [ 74%] PASSED tests/test__refcount.py::test_clean_exit 173s tests/test__refcount.py::test_timeout_exit 173s [gw1] [ 74%] PASSED tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 174s tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 174s [gw1] [ 74%] PASSED tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 174s tests/tpool_test.py::test_isolate_from_socket_default_timeout 174s [gw0] [ 74%] PASSED tests/test__refcount.py::test_timeout_exit 174s tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 174s [gw0] [ 75%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 174s tests/test__socket_errors.py::TestSocketErrors::test_timeout 174s [gw1] [ 75%] PASSED tests/tpool_test.py::test_isolate_from_socket_default_timeout 174s tests/tpool_test.py::test_exception_leak 174s [gw1] [ 75%] PASSED tests/tpool_test.py::test_exception_leak 174s tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 174s [gw1] [ 75%] PASSED tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 174s tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 174s [gw1] [ 75%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 174s tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 174s [gw1] [ 75%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 174s tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 174s [gw1] [ 75%] PASSED tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 174s tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 174s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 174s tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 174s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 174s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 174s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 174s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 174s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 175s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 175s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 175s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 175s [gw1] [ 76%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 175s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 175s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 175s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 175s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 175s [gw0] [ 77%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout 175s tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 175s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 175s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 175s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 175s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 175s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 175s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 175s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 175s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 175s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 175s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 175s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 175s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 175s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 175s [gw1] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 175s tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 175s tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 175s tests/websocket_test.py::TestWebSocket::test_close_idle 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_close_idle 175s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 175s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 175s tests/websocket_test.py::TestWebSocket::test_empty_query_string 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_empty_query_string 175s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 175s [gw1] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 175s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 175s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 175s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 175s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 175s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 175s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 176s tests/websocket_test.py::TestWebSocket::test_incorrect_headers 176s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_incorrect_headers 176s tests/websocket_test.py::TestWebSocket::test_query_string 176s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_query_string 176s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 176s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 176s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 176s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 176s tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 176s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 176s tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 176s [gw0] [ 81%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 176s tests/test__socket_errors.py::test_create_connection_refused 176s [gw0] [ 81%] PASSED tests/test__socket_errors.py::test_create_connection_refused 176s tests/test_infrastructure_tests.py::test_run_python_timeout 176s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 176s tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 176s [gw0] [ 81%] PASSED tests/test_infrastructure_tests.py::test_run_python_timeout 176s tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 176s [gw0] [ 81%] PASSED tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 176s tests/thread_test.py::Locals::test_assignment 176s [gw0] [ 81%] PASSED tests/thread_test.py::Locals::test_assignment 176s tests/thread_test.py::Locals::test_calling_methods 176s [gw0] [ 82%] PASSED tests/thread_test.py::Locals::test_calling_methods 176s tests/thread_test.py::Locals::test_calls_init 176s [gw0] [ 82%] PASSED tests/thread_test.py::Locals::test_calls_init 176s tests/thread_test.py::Locals::test_no_leaking 176s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 176s tests/websocket_test.py::TestWebSocketObject::test_close_ws 176s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketObject::test_close_ws 176s tests/websocket_test.py::TestWebSocketObject::test_recieve 176s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocketObject::test_recieve 176s tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 176s [gw0] [ 82%] PASSED tests/thread_test.py::Locals::test_no_leaking 176s tests/thread_test.py::test_compat_lock_release 176s [gw0] [ 82%] PASSED tests/thread_test.py::test_compat_lock_release 176s tests/thread_test.py::test_reinit 176s [gw0] [ 82%] PASSED tests/thread_test.py::test_reinit 176s tests/thread_test.py::test_can_use_eventlet_in_os_threads 176s [gw1] [ 83%] PASSED tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 176s tests/wsgi_test.py::TestHttpd::test_001_server 176s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_001_server 176s tests/wsgi_test.py::TestHttpd::test_002_keepalive 176s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_002_keepalive 176s tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 176s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 176s tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 176s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 176s tests/wsgi_test.py::TestHttpd::test_007_get_arg 176s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_007_get_arg 176s tests/wsgi_test.py::TestHttpd::test_008_correctresponse 176s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_008_correctresponse 176s tests/wsgi_test.py::TestHttpd::test_009_chunked_response 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_009_chunked_response 176s tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 176s tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 176s tests/wsgi_test.py::TestHttpd::test_012_ssl_server 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_012_ssl_server 176s tests/wsgi_test.py::TestHttpd::test_013_empty_return 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_013_empty_return 176s tests/wsgi_test.py::TestHttpd::test_014_chunked_post 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_014_chunked_post 176s tests/wsgi_test.py::TestHttpd::test_015_write 176s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_015_write 176s tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 176s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 176s tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 176s tests/wsgi_test.py::TestHttpd::test_026_log_format 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_026_log_format 176s tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 176s tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 176s tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 176s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 177s tests/wsgi_test.py::TestHttpd::test_029_posthooks 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_029_posthooks 177s tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 177s tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 177s tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 177s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 177s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 177s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 177s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 177s tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 177s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 177s tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 177s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 177s tests/wsgi_test.py::TestHttpd::test_client_disconnect 177s [gw0] [ 87%] PASSED tests/thread_test.py::test_can_use_eventlet_in_os_threads 177s tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 177s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_client_disconnect 177s tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 177s [gw0] [ 87%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 177s tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 177s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 177s tests/wsgi_test.py::TestHttpd::test_close_idle_connections 177s [gw0] [ 87%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 177s tests/timeout_test.py::TestDirectRaise::test_repr 177s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections 177s tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 177s [gw0] [ 88%] PASSED tests/timeout_test.py::TestDirectRaise::test_repr 177s tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 177s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 177s tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 177s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 177s tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 177s [gw0] [ 88%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 177s tests/timeout_test.py::TestWithTimeout::test_with_timeout 177s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 177s tests/wsgi_test.py::TestHttpd::test_debug 177s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_debug 177s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 177s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 177s tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 177s [gw0] [ 89%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_timeout 177s tests/timeout_test.py::test_is_timeout_attribute 177s [gw0] [ 89%] PASSED tests/timeout_test.py::test_is_timeout_attribute 177s tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 177s [gw0] [ 89%] PASSED tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 177s tests/timeout_with_statement_test.py::Test::test_cancellation 177s [gw0] [ 89%] PASSED tests/timeout_with_statement_test.py::Test::test_cancellation 177s tests/timeout_with_statement_test.py::Test::test_dummy_timer 177s [gw0] [ 89%] PASSED tests/timeout_with_statement_test.py::Test::test_dummy_timer 177s tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 177s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 177s tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 177s [gw0] [ 89%] SKIPPED tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 177s tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 177s tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 177s tests/wsgi_test.py::TestHttpd::test_022_custom_pool 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_022_custom_pool 177s tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 177s tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 177s tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 177s tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 177s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 177s tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 177s tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 177s tests/wsgi_test.py::TestHttpd::test_025_accept_errors 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_025_accept_errors 177s tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 177s tests/wsgi_test.py::TestHttpd::test_log_unix_address 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_unix_address 177s tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 177s tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 177s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 177s tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 177s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 177s tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 177s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 177s tests/wsgi_test.py::TestHttpd::test_path_info_decoding 177s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_decoding 177s tests/wsgi_test.py::TestHttpd::test_path_info_latin1 177s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_latin1 177s tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 177s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 178s tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 178s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 178s tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 178s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 178s tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 178s tests/wsgi_test.py::TestHttpd::test_socket_remains_open 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_socket_remains_open 178s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 178s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 178s tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 178s tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 178s tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 178s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 178s tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 178s tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 178s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 178s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 178s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 178s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 178s tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 178s tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 178s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 178s tests/wsgi_test.py::TestChunkedInput::test_dirt 178s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_dirt 178s tests/wsgi_test.py::TestChunkedInput::test_short_read 178s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read 178s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 178s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 178s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 178s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 179s tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 179s [gw0] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 179s tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 179s [gw0] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 179s tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 179s [gw0] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 179s tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 179s [gw0] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 179s tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 179s [gw0] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 179s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 179s [gw0] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 179s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 179s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 179s tests/wsgi_test.py::TestHttpd::test_env_header_stripping 179s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_env_header_stripping 179s tests/wsgi_test.py::TestHttpd::test_env_headers 179s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_env_headers 179s tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 179s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 179s tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 179s [gw1] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 179s tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 179s [gw1] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 179s tests/wsgi_test.py::TestHttpd::test_headers_raw 179s [gw1] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_headers_raw 179s tests/wsgi_test.py::TestHttpd::test_ipv6 179s [gw1] [ 97%] SKIPPED tests/wsgi_test.py::TestHttpd::test_ipv6 179s tests/wsgi_test.py::TestHttpd::test_log_disable 179s [gw1] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_log_disable 179s tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 179s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 179s tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 179s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 179s tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 179s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 179s tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 179s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 179s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 179s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 179s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 179s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 179s tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 179s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 179s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 179s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 179s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 179s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 179s tests/zmq_test.py::TestQueueLock::test_count 179s [gw0] [ 99%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 179s tests/zmq_test.py::TestQueueLock::test_errors 179s [gw1] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_count 179s tests/zmq_test.py::TestQueueLock::test_nested_acquire 179s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_errors 179s tests/zmq_test.py::TestQueueLock::test_queue_lock_order 179s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_queue_lock_order 179s tests/zmq_test.py::test_recv_json_no_args 179s [gw1] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_nested_acquire 179s tests/zmq_test.py::TestBlockedThread::test_block 179s [gw0] [ 99%] PASSED tests/zmq_test.py::test_recv_json_no_args 179s tests/zmq_test.py::test_recv_timeout 179s [gw1] [ 99%] PASSED tests/zmq_test.py::TestBlockedThread::test_block 180s [gw0] [100%] PASSED tests/zmq_test.py::test_recv_timeout 180s 180s ==================================== ERRORS ==================================== 180s __________________ ERROR collecting tests/test__greenness.py ___________________ 180s tests/test__greenness.py:8: in 180s from eventlet.green.urllib.request import urlopen 180s eventlet/green/urllib/request.py:40: in 180s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 180s ^^^^^^^^^ 180s E NameError: name 'URLopener' is not defined 180s __________________ ERROR collecting tests/test__greenness.py ___________________ 180s tests/test__greenness.py:8: in 180s from eventlet.green.urllib.request import urlopen 180s eventlet/green/urllib/request.py:40: in 180s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 180s ^^^^^^^^^ 180s E NameError: name 'URLopener' is not defined 180s =================================== FAILURES =================================== 180s ____________________ TestGreenPipe.test_pip_read_until_end _____________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s self = 180s 180s def test_pip_read_until_end(self): 180s # similar to test_pip_read above but reading until eof 180s r, w = os.pipe() 180s 180s > r = greenio.GreenPipe(r, 'rb') 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:757: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 180s newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s ___________________________ TestGreenPipe.test_pipe ____________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s self = 180s 180s def test_pipe(self): 180s r, w = os.pipe() 180s > rf = greenio.GreenPipe(r, 'rb') 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:706: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 180s newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s _________________________ TestGreenPipe.test_pipe_read _________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s self = 180s 180s def test_pipe_read(self): 180s # ensure that 'readline' works properly on GreenPipes when data is not 180s # immediately available (fd is nonblocking, was raising EAGAIN) 180s # also ensures that readline() terminates on '\n' and '\r\n' 180s r, w = os.pipe() 180s 180s > r = greenio.GreenPipe(r, 'rb') 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:729: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 180s newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s ________________ TestGreenPipe.test_pipe_writes_large_messages _________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s self = 180s 180s def test_pipe_writes_large_messages(self): 180s r, w = os.pipe() 180s 180s > r = greenio.GreenPipe(r, 'rb') 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:786: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 180s newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s ______________________________ test_pipe_context _______________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_pipe_context(): 180s # ensure using a pipe as a context actually closes it. 180s r, w = os.pipe() 180s > r = greenio.GreenPipe(r) 180s ^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:997: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = 29, mode = 'r', buffering = -1, encoding = None, errors = None 180s newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s _____________________________ test_greenpipe_write _____________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_greenpipe_write(): 180s expected = b"initial" 180s with tempfile.NamedTemporaryFile() as f: 180s > with greenio.GreenPipe(f.name, "wb") as writer: 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:1012: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = '/tmp/tmp206iviww', mode = 'wb', buffering = -1, encoding = None 180s errors = None, newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s ____________________________ test_greenpipe_append _____________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_greenpipe_append(): 180s old_data = b"existing data..." 180s new_data = b"append with mode=a" 180s expected = old_data + new_data 180s with tempfile.NamedTemporaryFile() as f: 180s with open(f.name, "wb") as fw: 180s fw.write(old_data) 180s 180s > with greenio.GreenPipe(f.name, "ab") as writer: 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:1027: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = '/tmp/tmpx4lg4egv', mode = 'ab', buffering = -1, encoding = None 180s errors = None, newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s ________________________ test_greenpipe_read_overwrite _________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_greenpipe_read_overwrite(): 180s old_data = b"existing data..." 180s new_data = b"overwrite with mode=r+" 180s with tempfile.NamedTemporaryFile() as f: 180s > with greenio.GreenPipe(f.name, "wb") as writer: 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:1038: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = '/tmp/tmp3lmma0ly', mode = 'wb', buffering = -1, encoding = None 180s errors = None, newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s __________________________ test_greenpipe_write_plus ___________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_greenpipe_write_plus(): 180s expected = "write with mode=w+" 180s with tempfile.NamedTemporaryFile() as f: 180s > with greenio.GreenPipe(f.name, "w+") as writer: 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:1051: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = '/tmp/tmpo_l4gz6i', mode = 'w+', buffering = -1, encoding = None 180s errors = None, newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s __________________________ test_greenpipe_append_plus __________________________ 180s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_greenpipe_append_plus(): 180s expected = "append with mode=a+" 180s with tempfile.NamedTemporaryFile() as f: 180s > with greenio.GreenPipe(f.name, "a+") as writer: 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s 180s tests/greenio_test.py:1061: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = '/tmp/tmp20hp2fjx', mode = 'a+', buffering = -1, encoding = None 180s errors = None, newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s __________________________ test_regular_file_readall ___________________________ 180s [gw1] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_regular_file_readall(): 180s > tests.run_isolated('regular_file_readall.py') 180s 180s tests/patcher_test.py:499: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s tests/__init__.py:365: in run_isolated 180s run_python(prefix + path, **kwargs) 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s path = '/tmp/autopkgtest.MsSp80/build.TJa/src/tests/isolated/regular_file_readall.py' 180s env = None, args = None, timeout = 10, pythonpath_extend = None 180s expect_pass = True 180s 180s def run_python(path, env=None, args=None, timeout=None, pythonpath_extend=None, expect_pass=False): 180s new_argv = [sys.executable] 180s new_env = os.environ.copy() 180s new_env.setdefault('eventlet_test_in_progress', 'yes') 180s src_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 180s if path: 180s path = os.path.abspath(path) 180s new_argv.append(path) 180s new_env['PYTHONPATH'] = os.pathsep.join(sys.path + [src_dir]) 180s if env: 180s new_env.update(env) 180s if pythonpath_extend: 180s new_path = [p for p in new_env.get('PYTHONPATH', '').split(os.pathsep) if p] 180s new_path.extend( 180s p if os.path.isabs(p) else os.path.join(src_dir, p) for p in pythonpath_extend 180s ) 180s new_env['PYTHONPATH'] = os.pathsep.join(new_path) 180s if args: 180s new_argv.extend(args) 180s p = subprocess.Popen( 180s new_argv, 180s env=new_env, 180s stderr=subprocess.STDOUT, 180s stdin=subprocess.PIPE, 180s stdout=subprocess.PIPE, 180s ) 180s if timeout is None: 180s timeout = 10 180s try: 180s output, _ = p.communicate(timeout=timeout) 180s except subprocess.TimeoutExpired: 180s p.kill() 180s output, _ = p.communicate(timeout=timeout) 180s if expect_pass: 180s sys.stderr.write('Program {} output:\n---\n{}\n---\n'.format(path, output.decode())) 180s assert False, 'timed out' 180s return '{}\nFAIL - timed out'.format(output).encode() 180s 180s if expect_pass: 180s if output.startswith(b'skip'): 180s parts = output.rstrip().split(b':', 1) 180s skip_args = [] 180s if len(parts) > 1: 180s skip_args.append(parts[1]) 180s raise SkipTest(*skip_args) 180s lines = output.splitlines() 180s ok = lines[-1].rstrip() == b'pass' 180s if not ok or len(lines) > 1: 180s sys.stderr.write('Program {} output:\n---\n{}\n---\n'.format(path, output.decode(errors="backslashreplace"))) 180s > assert ok, 'Expected single line "pass" in stdout' 180s ^^ 180s E AssertionError: Expected single line "pass" in stdout 180s 180s tests/__init__.py:358: AssertionError 180s ----------------------------- Captured stderr call ----------------------------- 180s Program /tmp/autopkgtest.MsSp80/build.TJa/src/tests/isolated/regular_file_readall.py output: 180s --- 180s Traceback (most recent call last): 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/tests/isolated/regular_file_readall.py", line 17, in 180s fp = os.fdopen(fd, "rb") 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/os.py", line 29, in fdopen 180s return greenio.GreenPipe(fd, *args, **kw) 180s ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/py3.py", line 216, in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s File "/usr/lib/python3.14/_pyio.py", line 242, in open 180s if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s --- 180s _____________________________ test_universal_lines _____________________________ 180s [gw1] linux -- Python 3.14.2 /usr/bin/python3.14 180s 180s def test_universal_lines(): 180s > p = subprocess.Popen( 180s [sys.executable, '--version'], 180s shell=False, 180s stdout=subprocess.PIPE, 180s universal_newlines=True) 180s 180s tests/subprocess_test.py:52: 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s eventlet/green/subprocess.py:73: in __init__ 180s wrapped_pipe = greenio.GreenPipe(pipe, mode, bufsize) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s eventlet/greenio/py3.py:216: in GreenPipe 180s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 180s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 180s 180s file = 17, mode = 'r', buffering = -1, encoding = None, errors = None 180s newline = None, closefd = True, opener = None 180s 180s @staticmethod 180s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 180s newline=None, closefd=True, opener=None): 180s 180s r"""Open file and return a stream. Raise OSError upon failure. 180s 180s file is either a text or byte string giving the name (and the path 180s if the file isn't in the current working directory) of the file to 180s be opened or an integer file descriptor of the file to be 180s wrapped. (If a file descriptor is given, it is closed when the 180s returned I/O object is closed, unless closefd is set to False.) 180s 180s mode is an optional string that specifies the mode in which the file is 180s opened. It defaults to 'r' which means open for reading in text mode. Other 180s common values are 'w' for writing (truncating the file if it already 180s exists), 'x' for exclusive creation of a new file, and 'a' for appending 180s (which on some Unix systems, means that all writes append to the end of the 180s file regardless of the current seek position). In text mode, if encoding is 180s not specified the encoding used is platform dependent. (For reading and 180s writing raw bytes use binary mode and leave encoding unspecified.) The 180s available modes are: 180s 180s ========= =============================================================== 180s Character Meaning 180s --------- --------------------------------------------------------------- 180s 'r' open for reading (default) 180s 'w' open for writing, truncating the file first 180s 'x' create a new file and open it for writing 180s 'a' open for writing, appending to the end of the file if it exists 180s 'b' binary mode 180s 't' text mode (default) 180s '+' open a disk file for updating (reading and writing) 180s ========= =============================================================== 180s 180s The default mode is 'rt' (open for reading text). For binary random 180s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 180s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 180s raises an `FileExistsError` if the file already exists. 180s 180s Python distinguishes between files opened in binary and text modes, 180s even when the underlying operating system doesn't. Files opened in 180s binary mode (appending 'b' to the mode argument) return contents as 180s bytes objects without any decoding. In text mode (the default, or when 180s 't' is appended to the mode argument), the contents of the file are 180s returned as strings, the bytes having been first decoded using a 180s platform-dependent encoding or using the specified encoding if given. 180s 180s buffering is an optional integer used to set the buffering policy. 180s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 180s line buffering (only usable in text mode), and an integer > 1 to indicate 180s the size of a fixed-size chunk buffer. When no buffering argument is 180s given, the default buffering policy works as follows: 180s 180s * Binary files are buffered in fixed-size chunks; the size of the buffer 180s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 180s when the device block size is available. 180s On most systems, the buffer will typically be 128 kilobytes long. 180s 180s * "Interactive" text files (files for which isatty() returns True) 180s use line buffering. Other text files use the policy described above 180s for binary files. 180s 180s encoding is the str name of the encoding used to decode or encode the 180s file. This should only be used in text mode. The default encoding is 180s platform dependent, but any encoding supported by Python can be 180s passed. See the codecs module for the list of supported encodings. 180s 180s errors is an optional string that specifies how encoding errors are to 180s be handled---this argument should not be used in binary mode. Pass 180s 'strict' to raise a ValueError exception if there is an encoding error 180s (the default of None has the same effect), or pass 'ignore' to ignore 180s errors. (Note that ignoring encoding errors can lead to data loss.) 180s See the documentation for codecs.register for a list of the permitted 180s encoding error strings. 180s 180s newline is a string controlling how universal newlines works (it only 180s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 180s as follows: 180s 180s * On input, if newline is None, universal newlines mode is 180s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 180s these are translated into '\n' before being returned to the 180s caller. If it is '', universal newline mode is enabled, but line 180s endings are returned to the caller untranslated. If it has any of 180s the other legal values, input lines are only terminated by the given 180s string, and the line ending is returned to the caller untranslated. 180s 180s * On output, if newline is None, any '\n' characters written are 180s translated to the system default line separator, os.linesep. If 180s newline is '', no translation takes place. If newline is any of the 180s other legal values, any '\n' characters written are translated to 180s the given string. 180s 180s closedfd is a bool. If closefd is False, the underlying file descriptor will 180s be kept open when the file is closed. This does not work when a file name is 180s given and must be True in that case. 180s 180s The newly created file is non-inheritable. 180s 180s A custom opener can be used by passing a callable as *opener*. The 180s underlying file descriptor for the file object is then obtained by calling 180s *opener* with (*file*, *flags*). *opener* must return an open file 180s descriptor (passing os.open as *opener* results in functionality similar to 180s passing None). 180s 180s open() returns a file object whose type depends on the mode, and 180s through which the standard file operations such as reading and writing 180s are performed. When open() is used to open a file in a text mode ('w', 180s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 180s a file in a binary mode, the returned class varies: in read binary 180s mode, it returns a BufferedReader; in write binary and append binary 180s modes, it returns a BufferedWriter, and in read/write mode, it returns 180s a BufferedRandom. 180s 180s It is also possible to use a string or bytearray as a file for both 180s reading and writing. For strings StringIO can be used like a file 180s opened in a text mode, and for bytes a BytesIO can be used like a file 180s opened in a binary mode. 180s """ 180s if not isinstance(file, int): 180s file = os.fspath(file) 180s if not isinstance(file, (str, bytes, int)): 180s raise TypeError("invalid file: %r" % file) 180s if not isinstance(mode, str): 180s raise TypeError("invalid mode: %r" % mode) 180s if not isinstance(buffering, int): 180s raise TypeError("invalid buffering: %r" % buffering) 180s if encoding is not None and not isinstance(encoding, str): 180s raise TypeError("invalid encoding: %r" % encoding) 180s if errors is not None and not isinstance(errors, str): 180s raise TypeError("invalid errors: %r" % errors) 180s modes = set(mode) 180s if modes - set("axrwb+t") or len(mode) > len(modes): 180s raise ValueError("invalid mode: %r" % mode) 180s creating = "x" in modes 180s reading = "r" in modes 180s writing = "w" in modes 180s appending = "a" in modes 180s updating = "+" in modes 180s text = "t" in modes 180s binary = "b" in modes 180s if text and binary: 180s raise ValueError("can't have text and binary mode at once") 180s if creating + reading + writing + appending > 1: 180s raise ValueError("can't have read/write/append mode at once") 180s if not (creating or reading or writing or appending): 180s raise ValueError("must have exactly one of read/write/append mode") 180s if binary and encoding is not None: 180s raise ValueError("binary mode doesn't take an encoding argument") 180s if binary and errors is not None: 180s raise ValueError("binary mode doesn't take an errors argument") 180s if binary and newline is not None: 180s raise ValueError("binary mode doesn't take a newline argument") 180s if binary and buffering == 1: 180s import warnings 180s warnings.warn("line buffering (buffering=1) isn't supported in binary " 180s "mode, the default buffer size will be used", 180s RuntimeWarning, 2) 180s raw = FileIO(file, 180s (creating and "x" or "") + 180s (reading and "r" or "") + 180s (writing and "w" or "") + 180s (appending and "a" or "") + 180s (updating and "+" or ""), 180s closefd, opener=opener) 180s result = raw 180s try: 180s line_buffering = False 180s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 180s ^^^^^^^^^^^^^^^^^^^^^ 180s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 180s 180s /usr/lib/python3.14/_pyio.py:242: AttributeError 180s =============================== warnings summary =============================== 180s eventlet/greenpool.py:95 180s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 180s return 180s 180s tests/api_test.py: 2 warnings 180s tests/convenience_test.py: 2 warnings 180s tests/greenio_test.py: 1 warning 180s tests/ssl_test.py: 26 warnings 180s tests/websocket_test.py: 2 warnings 180s tests/wsgi_test.py: 9 warnings 180s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 180s context = _original_sslcontext(protocol=ssl_version) 180s 180s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 180s tests/backdoor_test.py::BackdoorTest::test_server 180s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 180s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored while finalizing file <_io.TextIOWrapper mode='rw' encoding='UTF-8'>: None 180s 180s Traceback (most recent call last): 180s File "/usr/lib/python3.14/socket.py", line 743, in write 180s return self._sock.send(b) 180s ~~~~~~~~~~~~~~~^^^ 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 383, in send 180s return self._send_loop(self.fd.send, data, flags) 180s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 370, in _send_loop 180s return send_method(data, *args) 180s BrokenPipeError: [Errno 32] Broken pipe 180s 180s During handling of the above exception, another exception occurred: 180s 180s Traceback (most recent call last): 180s File "/usr/lib/python3.14/socket.py", line 743, in write 180s return self._sock.send(b) 180s ~~~~~~~~~~~~~~~^^^ 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 383, in send 180s return self._send_loop(self.fd.send, data, flags) 180s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 180s File "/tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenio/base.py", line 370, in _send_loop 180s return send_method(data, *args) 180s BrokenPipeError: [Errno 32] Broken pipe 180s 180s 180s warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) 180s 180s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 180s /tmp/autopkgtest.MsSp80/build.TJa/src/tests/not_asyncio_test.py:22: RuntimeWarning: coroutine 'test_spawn_from_coroutine_errors..go' was never awaited 180s with pytest.raises(RuntimeError): 180s Enable tracemalloc to get traceback where the object was allocated. 180s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 180s 180s tests/openssl_test.py::test_import 180s tests/openssl_test.py::test_import 180s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography. 180s from OpenSSL.crypto import * 180s 180s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 180s /tmp/autopkgtest.MsSp80/build.TJa/src/tests/ssl_test.py:333: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 180s context = ssl.SSLContext(ssl.PROTOCOL_TLS) 180s 180s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 180s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated 180s context = _original_sslcontext(protocol=ssl_version) 180s 180s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 180s /tmp/autopkgtest.MsSp80/build.TJa/src/eventlet/greenthread.py:272: DeprecationWarning: capitalize_response_headers is disabled. 180s Please, make sure you know what you are doing. 180s HTTP headers names are case-insensitive per RFC standard. 180s Most likely, you need to fix HTTP parsing in your client software. 180s result = function(*args, **kwargs) 180s 180s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 180s =========================== short test summary info ============================ 180s FAILED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end - Attrib... 180s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe - AttributeError: 'Gre... 180s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_read - AttributeError:... 180s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 180s FAILED tests/greenio_test.py::test_pipe_context - AttributeError: 'GreenFileI... 180s FAILED tests/greenio_test.py::test_greenpipe_write - AttributeError: 'GreenFi... 180s FAILED tests/greenio_test.py::test_greenpipe_append - AttributeError: 'GreenF... 180s FAILED tests/greenio_test.py::test_greenpipe_read_overwrite - AttributeError:... 180s FAILED tests/greenio_test.py::test_greenpipe_write_plus - AttributeError: 'Gr... 180s FAILED tests/greenio_test.py::test_greenpipe_append_plus - AttributeError: 'G... 180s FAILED tests/patcher_test.py::test_regular_file_readall - AssertionError: Exp... 180s FAILED tests/subprocess_test.py::test_universal_lines - AttributeError: 'Gree... 180s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 180s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 180s ====== 12 failed, 617 passed, 89 skipped, 52 warnings, 2 errors in 31.99s ====== 180s autopkgtest [10:22:14]: test unittests: -----------------------] 181s unittests FAIL non-zero exit status 1 181s autopkgtest [10:22:15]: test unittests: - - - - - - - - - - results - - - - - - - - - - 181s autopkgtest [10:22:15]: @@@@@@@@@@@@@@@@@@@@ summary 181s listen3 PASS 181s unittests FAIL non-zero exit status 1