0s autopkgtest [01:46:57]: starting date and time: 2026-01-23 01:46:57+0000 0s autopkgtest [01:46:57]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [01:46:57]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.93y36nqj/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-arm64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-arm64-8.secgroup --name adt-resolute-arm64-python-eventlet-20260123-014137-juju-7f2275-prod-proposed-migration-environment-15-d3f5f555-db5a-45c1-a871-551794260068 --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-arm64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 5s Creating nova instance adt-resolute-arm64-python-eventlet-20260123-014137-juju-7f2275-prod-proposed-migration-environment-15-d3f5f555-db5a-45c1-a871-551794260068 from image adt/ubuntu-resolute-arm64-server-20260122.img (UUID ed27afc7-5f46-4e8b-ad73-864280a0ddbb)... 117s autopkgtest [01:48:54]: testbed dpkg architecture: arm64 117s autopkgtest [01:48:54]: testbed apt version: 3.1.12 117s autopkgtest [01:48:54]: @@@@@@@@@@@@@@@@@@@@ test bed setup 118s autopkgtest [01:48:55]: testbed release detected to be: None 118s autopkgtest [01:48:55]: updating testbed package index (apt update) 119s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 120s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 120s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 120s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 120s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.5 kB] 120s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1020 kB] 120s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 120s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [87.5 kB] 120s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [105 kB] 120s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3424 B] 120s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [7876 B] 120s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [304 B] 120s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [757 kB] 121s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [18.1 kB] 121s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [7156 B] 121s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [332 B] 123s Fetched 2157 kB in 2s (1043 kB/s) 124s Reading package lists... 126s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 126s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 126s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 126s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 127s Reading package lists... 127s Reading package lists... 127s Building dependency tree... 127s Reading state information... 127s Calculating upgrade... 128s The following packages were automatically installed and are no longer required: 128s python3.13 python3.13-minimal 128s Use 'sudo apt autoremove' to remove them. 128s The following NEW packages will be installed: 128s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 128s The following packages will be upgraded: 128s apt libapt-pkg7.0 libplymouth5 libpython3-stdlib plymouth 128s plymouth-theme-ubuntu-text python3 python3-gdbm python3-minimal 128s 9 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 128s Need to get 9472 kB of archives. 128s After this operation, 26.0 MB of additional disk space will be used. 128s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.2-1 [917 kB] 129s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.2-1 [2548 kB] 130s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-gdbm arm64 3.14.2-1 [11.1 kB] 130s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.14.2-1 [28.2 kB] 130s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.14.2-1 [22.9 kB] 130s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.2-1 [2351 kB] 131s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.2-1 [816 kB] 131s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.14.2-1 [10.9 kB] 131s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libapt-pkg7.0 arm64 3.1.13 [1067 kB] 131s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 apt arm64 3.1.13 [1412 kB] 131s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libplymouth5 arm64 24.004.60+git20250831.4a3c171d-0ubuntu4 [141 kB] 131s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 plymouth-theme-ubuntu-text arm64 24.004.60+git20250831.4a3c171d-0ubuntu4 [10.0 kB] 131s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 plymouth arm64 24.004.60+git20250831.4a3c171d-0ubuntu4 [138 kB] 131s dpkg-preconfigure: unable to re-open stdin: No such file or directory 131s Fetched 9472 kB in 3s (2877 kB/s) 131s Selecting previously unselected package libpython3.14-minimal:arm64. 132s (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 ... 135223 files and directories currently installed.) 132s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_arm64.deb ... 132s Unpacking libpython3.14-minimal:arm64 (3.14.2-1) ... 132s Selecting previously unselected package python3.14-minimal. 132s Preparing to unpack .../python3.14-minimal_3.14.2-1_arm64.deb ... 132s Unpacking python3.14-minimal (3.14.2-1) ... 132s Preparing to unpack .../python3-gdbm_3.14.2-1_arm64.deb ... 132s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-1) ... 132s Setting up libpython3.14-minimal:arm64 (3.14.2-1) ... 132s Setting up python3.14-minimal (3.14.2-1) ... 133s (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 ... 135565 files and directories currently installed.) 133s Preparing to unpack .../python3-minimal_3.14.2-1_arm64.deb ... 133s Unpacking python3-minimal (3.14.2-1) over (3.13.7-1) ... 133s Setting up python3-minimal (3.14.2-1) ... 133s (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 ... 135565 files and directories currently installed.) 133s Preparing to unpack .../0-python3_3.14.2-1_arm64.deb ... 134s running python pre-rtupdate hooks for python3.14... 134s Unpacking python3 (3.14.2-1) over (3.13.7-1) ... 134s Selecting previously unselected package libpython3.14-stdlib:arm64. 134s Preparing to unpack .../1-libpython3.14-stdlib_3.14.2-1_arm64.deb ... 134s Unpacking libpython3.14-stdlib:arm64 (3.14.2-1) ... 134s Selecting previously unselected package python3.14. 134s Preparing to unpack .../2-python3.14_3.14.2-1_arm64.deb ... 134s Unpacking python3.14 (3.14.2-1) ... 134s Preparing to unpack .../3-libpython3-stdlib_3.14.2-1_arm64.deb ... 134s Unpacking libpython3-stdlib:arm64 (3.14.2-1) over (3.13.7-1) ... 134s Preparing to unpack .../4-libapt-pkg7.0_3.1.13_arm64.deb ... 134s Unpacking libapt-pkg7.0:arm64 (3.1.13) over (3.1.12) ... 134s Preparing to unpack .../5-apt_3.1.13_arm64.deb ... 134s Unpacking apt (3.1.13) over (3.1.12) ... 134s Preparing to unpack .../6-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu4_arm64.deb ... 134s Unpacking libplymouth5:arm64 (24.004.60+git20250831.4a3c171d-0ubuntu4) over (24.004.60+git20250831.4a3c171d-0ubuntu3) ... 134s Preparing to unpack .../7-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu4_arm64.deb ... 134s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu4) over (24.004.60+git20250831.4a3c171d-0ubuntu3) ... 135s Preparing to unpack .../8-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu4_arm64.deb ... 135s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu4) over (24.004.60+git20250831.4a3c171d-0ubuntu3) ... 135s Setting up libpython3.14-stdlib:arm64 (3.14.2-1) ... 135s Setting up libplymouth5:arm64 (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 135s Setting up libapt-pkg7.0:arm64 (3.1.13) ... 135s Setting up python3.14 (3.14.2-1) ... 136s Setting up libpython3-stdlib:arm64 (3.14.2-1) ... 136s Setting up apt (3.1.13) ... 136s Setting up python3-gdbm (3.14.2-1) ... 136s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 136s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 137s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 137s Setting up python3 (3.14.2-1) ... 137s running python rtupdate hooks for python3.14... 137s running python post-rtupdate hooks for python3.14... 137s Processing triggers for libc-bin (2.42-2ubuntu4) ... 137s Processing triggers for systemd (259-1ubuntu2) ... 137s Processing triggers for man-db (2.13.1-1) ... 139s Processing triggers for initramfs-tools (0.150ubuntu7) ... 139s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 154s System running in EFI mode, skipping. 154s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 154s Processing triggers for initramfs-tools (0.150ubuntu7) ... 154s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 169s System running in EFI mode, skipping. 169s autopkgtest [01:49:46]: upgrading testbed (apt dist-upgrade and autopurge) 170s Reading package lists... 170s Building dependency tree... 170s Reading state information... 170s Calculating upgrade... 171s The following packages were automatically installed and are no longer required: 171s python3.13 python3.13-minimal 171s Use 'sudo apt autoremove' to remove them. 171s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 171s Reading package lists... 171s Building dependency tree... 171s Reading state information... 171s Solving dependencies... 172s The following packages will be REMOVED: 172s python3.13* python3.13-minimal* 172s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 172s After this operation, 7766 kB disk space will be freed. 172s (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 ... 135995 files and directories currently installed.) 172s Removing python3.13 (3.13.11-1) ... 172s Removing python3.13-minimal (3.13.11-1) ... 173s Processing triggers for man-db (2.13.1-1) ... 174s Processing triggers for systemd (259-1ubuntu2) ... 174s (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 ... 135968 files and directories currently installed.) 174s Purging configuration files for python3.13-minimal (3.13.11-1) ... 174s autopkgtest [01:49:51]: rebooting testbed after setup commands that affected boot 213s autopkgtest [01:50:30]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:41:39 UTC 2026 215s autopkgtest [01:50:32]: @@@@@@@@@@@@@@@@@@@@ apt-source python-eventlet 218s Get:1 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (dsc) [2605 B] 218s Get:2 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (tar) [562 kB] 218s Get:3 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (diff) [24.3 kB] 218s gpgv: Signature made Mon Sep 15 17:48:29 2025 UTC 218s gpgv: using RSA key 50C4A0DDCF31E452CEB19B516569D855A744BE93 218s gpgv: Can't check signature: No public key 218s dpkg-source: warning: cannot verify inline signature for ./python-eventlet_0.39.0-0ubuntu2.dsc: no acceptable signature found 218s autopkgtest [01:50:35]: testing package python-eventlet version 0.39.0-0ubuntu2 218s autopkgtest [01:50:35]: build not needed 219s autopkgtest [01:50:36]: test listen3: preparing testbed 219s Reading package lists... 219s Building dependency tree... 219s Reading state information... 219s Solving dependencies... 220s The following NEW packages will be installed: 220s python3-dnspython python3-eventlet python3-greenlet 220s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 220s Need to get 622 kB of archives. 220s After this operation, 3263 kB of additional disk space will be used. 220s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 220s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-greenlet arm64 3.2.4-3 [178 kB] 220s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-eventlet all 0.39.0-0ubuntu2 [277 kB] 221s Fetched 622 kB in 1s (1195 kB/s) 221s Selecting previously unselected package python3-dnspython. 221s (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 ... 135970 files and directories currently installed.) 221s Preparing to unpack .../python3-dnspython_2.7.0-1ubuntu2_all.deb ... 221s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 221s Selecting previously unselected package python3-greenlet. 221s Preparing to unpack .../python3-greenlet_3.2.4-3_arm64.deb ... 221s Unpacking python3-greenlet (3.2.4-3) ... 221s Selecting previously unselected package python3-eventlet. 221s Preparing to unpack .../python3-eventlet_0.39.0-0ubuntu2_all.deb ... 221s Unpacking python3-eventlet (0.39.0-0ubuntu2) ... 221s Setting up python3-greenlet (3.2.4-3) ... 221s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 222s Setting up python3-eventlet (0.39.0-0ubuntu2) ... 222s /usr/lib/python3/dist-packages/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 222s return 223s autopkgtest [01:50:40]: test listen3: [----------------------- 224s autopkgtest [01:50:41]: test listen3: -----------------------] 224s listen3 PASS 224s autopkgtest [01:50:41]: test listen3: - - - - - - - - - - results - - - - - - - - - - 225s autopkgtest [01:50:42]: test unittests: preparing testbed 225s Reading package lists... 225s Building dependency tree... 225s Reading state information... 225s Solving dependencies... 225s The following NEW packages will be installed: 225s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 225s cpp-15-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper debugedit 225s dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz g++ 225s g++-15 g++-15-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-15 225s gcc-15-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 225s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 225s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 225s libitm1 libjson-perl liblsan0 libmpc3 libnorm1t64 libpgm-5.3-0t64 225s libsodium23 libstdc++-15-dev libtool libtsan2 libubsan1 libzmq5 m4 225s openstack-pkg-tools po-debconf pybuild-plugin-pyproject python-eventlet-doc 225s python3-alabaster python3-all python3-build python3-defusedxml 225s python3-docutils python3-execnet python3-hatchling python3-imagesize 225s python3-iniconfig python3-installer python3-monotonic python3-pathspec 225s python3-pbr python3-pip python3-pluggy python3-pyproject-hooks 225s python3-pytest python3-pytest-xdist python3-roman-numerals 225s python3-setuptools-scm python3-snowballstemmer python3-sphinx 225s python3-sphinxcontrib.apidoc python3-trove-classifiers python3-wheel 225s python3-zmq python3.13 python3.13-minimal sgml-base sphinx-common xml-core 226s 0 upgraded, 83 newly installed, 0 to remove and 0 not upgraded. 226s Need to get 77.7 MB of archives. 226s After this operation, 278 MB of additional disk space will be used. 226s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13-minimal arm64 3.13.11-1 [2346 kB] 227s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13 arm64 3.13.11-1 [758 kB] 227s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 m4 arm64 1.4.20-2 [213 kB] 227s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 autoconf all 2.72-3.1ubuntu1 [384 kB] 227s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 autotools-dev all 20240727.1 [43.4 kB] 227s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 automake all 1:1.18.1-3build1 [582 kB] 227s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 autopoint all 0.23.2-1 [620 kB] 227s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libisl23 arm64 0.27-1build1 [676 kB] 227s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libmpc3 arm64 1.3.1-2 [55.6 kB] 227s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15-aarch64-linux-gnu arm64 15.2.0-11ubuntu1 [11.7 MB] 227s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15 arm64 15.2.0-11ubuntu1 [1030 B] 227s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [5736 B] 227s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp arm64 4:15.2.0-4ubuntu1 [22.4 kB] 227s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libcc1-0 arm64 15.2.0-11ubuntu1 [49.0 kB] 227s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-11ubuntu1 [147 kB] 227s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libitm1 arm64 15.2.0-11ubuntu1 [28.0 kB] 227s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 libasan8 arm64 15.2.0-11ubuntu1 [2920 kB] 228s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 liblsan0 arm64 15.2.0-11ubuntu1 [1316 kB] 228s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libtsan2 arm64 15.2.0-11ubuntu1 [2690 kB] 228s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 libubsan1 arm64 15.2.0-11ubuntu1 [1176 kB] 228s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 libhwasan0 arm64 15.2.0-11ubuntu1 [1638 kB] 228s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 libgcc-15-dev arm64 15.2.0-11ubuntu1 [2600 kB] 228s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15-aarch64-linux-gnu arm64 15.2.0-11ubuntu1 [23.1 MB] 229s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15 arm64 15.2.0-11ubuntu1 [517 kB] 229s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [1206 B] 229s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc arm64 4:15.2.0-4ubuntu1 [5016 B] 229s Get:27 http://ftpmaster.internal/ubuntu resolute/main arm64 libstdc++-15-dev arm64 15.2.0-11ubuntu1 [2547 kB] 230s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15-aarch64-linux-gnu arm64 15.2.0-11ubuntu1 [13.2 MB] 233s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15 arm64 15.2.0-11ubuntu1 [24.6 kB] 233s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [956 B] 233s Get:31 http://ftpmaster.internal/ubuntu resolute/main arm64 g++ arm64 4:15.2.0-4ubuntu1 [1080 B] 233s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 build-essential arm64 12.12ubuntu2 [5254 B] 233s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 233s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 libtool all 2.5.4-9 [169 kB] 233s Get:35 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-autoreconf all 21 [12.5 kB] 233s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 233s Get:37 http://ftpmaster.internal/ubuntu resolute/main arm64 libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 234s Get:38 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 234s Get:39 http://ftpmaster.internal/ubuntu resolute/main arm64 debugedit arm64 1:5.2-3 [49.1 kB] 234s Get:40 http://ftpmaster.internal/ubuntu resolute/main arm64 dwz arm64 0.16-2 [113 kB] 234s Get:41 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 234s Get:42 http://ftpmaster.internal/ubuntu resolute/main arm64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 234s Get:43 http://ftpmaster.internal/ubuntu resolute/main arm64 po-debconf all 1.0.22 [215 kB] 234s Get:44 http://ftpmaster.internal/ubuntu resolute/main arm64 debhelper all 13.28ubuntu1 [916 kB] 234s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 dh-python all 7.20251231 [122 kB] 234s Get:46 http://ftpmaster.internal/ubuntu resolute/main arm64 sgml-base all 1.31+nmu1 [11.0 kB] 234s Get:47 http://ftpmaster.internal/ubuntu resolute/main arm64 xml-core all 0.19build1 [20.3 kB] 234s Get:48 http://ftpmaster.internal/ubuntu resolute/main arm64 docutils-common all 0.22.4+dfsg-1 [130 kB] 234s Get:49 http://ftpmaster.internal/ubuntu resolute/main arm64 libjson-perl all 4.10000-1 [81.9 kB] 234s Get:50 http://ftpmaster.internal/ubuntu resolute/universe arm64 libnorm1t64 arm64 1.5.9+dfsg-4 [152 kB] 234s Get:51 http://ftpmaster.internal/ubuntu resolute/universe arm64 libpgm-5.3-0t64 arm64 5.3.128~dfsg-2.1build2 [161 kB] 234s Get:52 http://ftpmaster.internal/ubuntu resolute/main arm64 libsodium23 arm64 1.0.18-2 [120 kB] 234s Get:53 http://ftpmaster.internal/ubuntu resolute/universe arm64 libzmq5 arm64 4.3.5-1build3 [244 kB] 234s Get:54 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 234s Get:55 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-wheel all 0.46.1-2 [22.1 kB] 234s Get:56 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-build all 1.2.2-5 [30.9 kB] 234s Get:57 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 234s Get:58 http://ftpmaster.internal/ubuntu resolute/universe arm64 pybuild-plugin-pyproject all 7.20251231 [1714 B] 234s Get:59 http://ftpmaster.internal/ubuntu resolute/main arm64 python-eventlet-doc all 0.39.0-0ubuntu2 [353 kB] 234s Get:60 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-all arm64 3.14.2-1 [888 B] 234s Get:61 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-defusedxml all 0.7.1-3build1 [42.4 kB] 234s Get:62 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-roman-numerals all 4.1.0-1 [8660 B] 234s Get:63 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-docutils all 0.22.4+dfsg-1 [439 kB] 234s Get:64 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-execnet all 2.1.1-1build1 [33.5 kB] 234s Get:65 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pathspec all 0.12.1-1build1 [24.6 kB] 234s Get:66 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-2 [21.1 kB] 234s Get:67 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-trove-classifiers all 2025.11.14.15-1 [11.1 kB] 234s Get:68 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-hatchling all 1.28.0-1 [47.3 kB] 234s Get:69 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-imagesize all 1.4.1-1build1 [6900 B] 234s Get:70 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-2 [6962 B] 234s Get:71 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-monotonic all 1.6-3build1 [5518 B] 234s Get:72 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pbr all 6.1.1-0ubuntu2 [58.3 kB] 234s Get:73 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pip all 25.1.1+dfsg-1ubuntu2 [1416 kB] 234s Get:74 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 9.0.2-2 [277 kB] 234s Get:75 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest-xdist all 3.8.0-4 [34.7 kB] 234s Get:76 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-setuptools-scm all 8.2.1-4 [32.8 kB] 234s Get:77 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-snowballstemmer all 3.0.1-1 [65.9 kB] 234s Get:78 http://ftpmaster.internal/ubuntu resolute/main arm64 sphinx-common all 8.2.3-12 [657 kB] 234s Get:79 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-alabaster all 0.7.16-0.1build1 [18.6 kB] 234s Get:80 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-sphinx all 8.2.3-12 [483 kB] 234s Get:81 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-sphinxcontrib.apidoc all 0.3.0-2ubuntu1 [8032 B] 234s Get:82 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-zmq arm64 27.1.0-1 [231 kB] 234s Get:83 http://ftpmaster.internal/ubuntu resolute/universe arm64 openstack-pkg-tools all 140 [103 kB] 235s Fetched 77.7 MB in 9s (8685 kB/s) 235s Selecting previously unselected package python3.13-minimal. 235s (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 ... 136374 files and directories currently installed.) 235s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_arm64.deb ... 235s Unpacking python3.13-minimal (3.13.11-1) ... 235s Selecting previously unselected package python3.13. 235s Preparing to unpack .../01-python3.13_3.13.11-1_arm64.deb ... 235s Unpacking python3.13 (3.13.11-1) ... 235s Selecting previously unselected package m4. 235s Preparing to unpack .../02-m4_1.4.20-2_arm64.deb ... 235s Unpacking m4 (1.4.20-2) ... 235s Selecting previously unselected package autoconf. 235s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 235s Unpacking autoconf (2.72-3.1ubuntu1) ... 235s Selecting previously unselected package autotools-dev. 235s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 235s Unpacking autotools-dev (20240727.1) ... 235s Selecting previously unselected package automake. 235s Preparing to unpack .../05-automake_1%3a1.18.1-3build1_all.deb ... 235s Unpacking automake (1:1.18.1-3build1) ... 235s Selecting previously unselected package autopoint. 235s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 235s Unpacking autopoint (0.23.2-1) ... 235s Selecting previously unselected package libisl23:arm64. 235s Preparing to unpack .../07-libisl23_0.27-1build1_arm64.deb ... 235s Unpacking libisl23:arm64 (0.27-1build1) ... 235s Selecting previously unselected package libmpc3:arm64. 236s Preparing to unpack .../08-libmpc3_1.3.1-2_arm64.deb ... 236s Unpacking libmpc3:arm64 (1.3.1-2) ... 236s Selecting previously unselected package cpp-15-aarch64-linux-gnu. 236s Preparing to unpack .../09-cpp-15-aarch64-linux-gnu_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking cpp-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package cpp-15. 236s Preparing to unpack .../10-cpp-15_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking cpp-15 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package cpp-aarch64-linux-gnu. 236s Preparing to unpack .../11-cpp-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 236s Unpacking cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 236s Selecting previously unselected package cpp. 236s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_arm64.deb ... 236s Unpacking cpp (4:15.2.0-4ubuntu1) ... 236s Selecting previously unselected package libcc1-0:arm64. 236s Preparing to unpack .../13-libcc1-0_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking libcc1-0:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package libgomp1:arm64. 236s Preparing to unpack .../14-libgomp1_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking libgomp1:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package libitm1:arm64. 236s Preparing to unpack .../15-libitm1_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking libitm1:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package libasan8:arm64. 236s Preparing to unpack .../16-libasan8_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking libasan8:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package liblsan0:arm64. 236s Preparing to unpack .../17-liblsan0_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking liblsan0:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package libtsan2:arm64. 236s Preparing to unpack .../18-libtsan2_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking libtsan2:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package libubsan1:arm64. 236s Preparing to unpack .../19-libubsan1_15.2.0-11ubuntu1_arm64.deb ... 236s Unpacking libubsan1:arm64 (15.2.0-11ubuntu1) ... 236s Selecting previously unselected package libhwasan0:arm64. 237s Preparing to unpack .../20-libhwasan0_15.2.0-11ubuntu1_arm64.deb ... 237s Unpacking libhwasan0:arm64 (15.2.0-11ubuntu1) ... 237s Selecting previously unselected package libgcc-15-dev:arm64. 237s Preparing to unpack .../21-libgcc-15-dev_15.2.0-11ubuntu1_arm64.deb ... 237s Unpacking libgcc-15-dev:arm64 (15.2.0-11ubuntu1) ... 237s Selecting previously unselected package gcc-15-aarch64-linux-gnu. 237s Preparing to unpack .../22-gcc-15-aarch64-linux-gnu_15.2.0-11ubuntu1_arm64.deb ... 237s Unpacking gcc-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 237s Selecting previously unselected package gcc-15. 237s Preparing to unpack .../23-gcc-15_15.2.0-11ubuntu1_arm64.deb ... 237s Unpacking gcc-15 (15.2.0-11ubuntu1) ... 237s Selecting previously unselected package gcc-aarch64-linux-gnu. 237s Preparing to unpack .../24-gcc-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 237s Unpacking gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 237s Selecting previously unselected package gcc. 237s Preparing to unpack .../25-gcc_4%3a15.2.0-4ubuntu1_arm64.deb ... 237s Unpacking gcc (4:15.2.0-4ubuntu1) ... 237s Selecting previously unselected package libstdc++-15-dev:arm64. 237s Preparing to unpack .../26-libstdc++-15-dev_15.2.0-11ubuntu1_arm64.deb ... 237s Unpacking libstdc++-15-dev:arm64 (15.2.0-11ubuntu1) ... 237s Selecting previously unselected package g++-15-aarch64-linux-gnu. 238s Preparing to unpack .../27-g++-15-aarch64-linux-gnu_15.2.0-11ubuntu1_arm64.deb ... 238s Unpacking g++-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 238s Selecting previously unselected package g++-15. 238s Preparing to unpack .../28-g++-15_15.2.0-11ubuntu1_arm64.deb ... 238s Unpacking g++-15 (15.2.0-11ubuntu1) ... 238s Selecting previously unselected package g++-aarch64-linux-gnu. 238s Preparing to unpack .../29-g++-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 238s Unpacking g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 238s Selecting previously unselected package g++. 238s Preparing to unpack .../30-g++_4%3a15.2.0-4ubuntu1_arm64.deb ... 238s Unpacking g++ (4:15.2.0-4ubuntu1) ... 238s Selecting previously unselected package build-essential. 238s Preparing to unpack .../31-build-essential_12.12ubuntu2_arm64.deb ... 238s Unpacking build-essential (12.12ubuntu2) ... 238s Selecting previously unselected package libdebhelper-perl. 238s Preparing to unpack .../32-libdebhelper-perl_13.28ubuntu1_all.deb ... 238s Unpacking libdebhelper-perl (13.28ubuntu1) ... 238s Selecting previously unselected package libtool. 238s Preparing to unpack .../33-libtool_2.5.4-9_all.deb ... 238s Unpacking libtool (2.5.4-9) ... 238s Selecting previously unselected package dh-autoreconf. 238s Preparing to unpack .../34-dh-autoreconf_21_all.deb ... 238s Unpacking dh-autoreconf (21) ... 238s Selecting previously unselected package libarchive-zip-perl. 238s Preparing to unpack .../35-libarchive-zip-perl_1.68-1_all.deb ... 238s Unpacking libarchive-zip-perl (1.68-1) ... 238s Selecting previously unselected package libfile-stripnondeterminism-perl. 238s Preparing to unpack .../36-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 238s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 238s Selecting previously unselected package dh-strip-nondeterminism. 238s Preparing to unpack .../37-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 238s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 238s Selecting previously unselected package debugedit. 238s Preparing to unpack .../38-debugedit_1%3a5.2-3_arm64.deb ... 238s Unpacking debugedit (1:5.2-3) ... 238s Selecting previously unselected package dwz. 238s Preparing to unpack .../39-dwz_0.16-2_arm64.deb ... 238s Unpacking dwz (0.16-2) ... 238s Selecting previously unselected package gettext. 239s Preparing to unpack .../40-gettext_0.23.2-1_arm64.deb ... 239s Unpacking gettext (0.23.2-1) ... 239s Selecting previously unselected package intltool-debian. 239s Preparing to unpack .../41-intltool-debian_0.35.0+20060710.6build1_all.deb ... 239s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 239s Selecting previously unselected package po-debconf. 239s Preparing to unpack .../42-po-debconf_1.0.22_all.deb ... 239s Unpacking po-debconf (1.0.22) ... 239s Selecting previously unselected package debhelper. 239s Preparing to unpack .../43-debhelper_13.28ubuntu1_all.deb ... 239s Unpacking debhelper (13.28ubuntu1) ... 239s Selecting previously unselected package dh-python. 239s Preparing to unpack .../44-dh-python_7.20251231_all.deb ... 239s Unpacking dh-python (7.20251231) ... 239s Selecting previously unselected package sgml-base. 239s Preparing to unpack .../45-sgml-base_1.31+nmu1_all.deb ... 239s Unpacking sgml-base (1.31+nmu1) ... 239s Selecting previously unselected package xml-core. 239s Preparing to unpack .../46-xml-core_0.19build1_all.deb ... 239s Unpacking xml-core (0.19build1) ... 239s Selecting previously unselected package docutils-common. 239s Preparing to unpack .../47-docutils-common_0.22.4+dfsg-1_all.deb ... 239s Unpacking docutils-common (0.22.4+dfsg-1) ... 239s Selecting previously unselected package libjson-perl. 239s Preparing to unpack .../48-libjson-perl_4.10000-1_all.deb ... 239s Unpacking libjson-perl (4.10000-1) ... 239s Selecting previously unselected package libnorm1t64:arm64. 239s Preparing to unpack .../49-libnorm1t64_1.5.9+dfsg-4_arm64.deb ... 239s Unpacking libnorm1t64:arm64 (1.5.9+dfsg-4) ... 239s Selecting previously unselected package libpgm-5.3-0t64:arm64. 239s Preparing to unpack .../50-libpgm-5.3-0t64_5.3.128~dfsg-2.1build2_arm64.deb ... 239s Unpacking libpgm-5.3-0t64:arm64 (5.3.128~dfsg-2.1build2) ... 239s Selecting previously unselected package libsodium23:arm64. 239s Preparing to unpack .../51-libsodium23_1.0.18-2_arm64.deb ... 239s Unpacking libsodium23:arm64 (1.0.18-2) ... 239s Selecting previously unselected package libzmq5:arm64. 239s Preparing to unpack .../52-libzmq5_4.3.5-1build3_arm64.deb ... 239s Unpacking libzmq5:arm64 (4.3.5-1build3) ... 239s Selecting previously unselected package python3-pyproject-hooks. 239s Preparing to unpack .../53-python3-pyproject-hooks_1.2.0-1_all.deb ... 239s Unpacking python3-pyproject-hooks (1.2.0-1) ... 239s Selecting previously unselected package python3-wheel. 239s Preparing to unpack .../54-python3-wheel_0.46.1-2_all.deb ... 239s Unpacking python3-wheel (0.46.1-2) ... 239s Selecting previously unselected package python3-build. 239s Preparing to unpack .../55-python3-build_1.2.2-5_all.deb ... 239s Unpacking python3-build (1.2.2-5) ... 239s Selecting previously unselected package python3-installer. 239s Preparing to unpack .../56-python3-installer_0.7.0+dfsg1-3_all.deb ... 239s Unpacking python3-installer (0.7.0+dfsg1-3) ... 240s Selecting previously unselected package pybuild-plugin-pyproject. 240s Preparing to unpack .../57-pybuild-plugin-pyproject_7.20251231_all.deb ... 240s Unpacking pybuild-plugin-pyproject (7.20251231) ... 240s Selecting previously unselected package python-eventlet-doc. 240s Preparing to unpack .../58-python-eventlet-doc_0.39.0-0ubuntu2_all.deb ... 240s Unpacking python-eventlet-doc (0.39.0-0ubuntu2) ... 240s Selecting previously unselected package python3-all. 240s Preparing to unpack .../59-python3-all_3.14.2-1_arm64.deb ... 240s Unpacking python3-all (3.14.2-1) ... 240s Selecting previously unselected package python3-defusedxml. 240s Preparing to unpack .../60-python3-defusedxml_0.7.1-3build1_all.deb ... 240s Unpacking python3-defusedxml (0.7.1-3build1) ... 240s Selecting previously unselected package python3-roman-numerals. 240s Preparing to unpack .../61-python3-roman-numerals_4.1.0-1_all.deb ... 240s Unpacking python3-roman-numerals (4.1.0-1) ... 240s Selecting previously unselected package python3-docutils. 240s Preparing to unpack .../62-python3-docutils_0.22.4+dfsg-1_all.deb ... 240s Unpacking python3-docutils (0.22.4+dfsg-1) ... 240s Selecting previously unselected package python3-execnet. 240s Preparing to unpack .../63-python3-execnet_2.1.1-1build1_all.deb ... 240s Unpacking python3-execnet (2.1.1-1build1) ... 240s Selecting previously unselected package python3-pathspec. 240s Preparing to unpack .../64-python3-pathspec_0.12.1-1build1_all.deb ... 240s Unpacking python3-pathspec (0.12.1-1build1) ... 240s Selecting previously unselected package python3-pluggy. 240s Preparing to unpack .../65-python3-pluggy_1.6.0-2_all.deb ... 240s Unpacking python3-pluggy (1.6.0-2) ... 240s Selecting previously unselected package python3-trove-classifiers. 240s Preparing to unpack .../66-python3-trove-classifiers_2025.11.14.15-1_all.deb ... 240s Unpacking python3-trove-classifiers (2025.11.14.15-1) ... 240s Selecting previously unselected package python3-hatchling. 240s Preparing to unpack .../67-python3-hatchling_1.28.0-1_all.deb ... 240s Unpacking python3-hatchling (1.28.0-1) ... 240s Selecting previously unselected package python3-imagesize. 240s Preparing to unpack .../68-python3-imagesize_1.4.1-1build1_all.deb ... 240s Unpacking python3-imagesize (1.4.1-1build1) ... 240s Selecting previously unselected package python3-iniconfig. 240s Preparing to unpack .../69-python3-iniconfig_2.1.0-2_all.deb ... 240s Unpacking python3-iniconfig (2.1.0-2) ... 240s Selecting previously unselected package python3-monotonic. 240s Preparing to unpack .../70-python3-monotonic_1.6-3build1_all.deb ... 240s Unpacking python3-monotonic (1.6-3build1) ... 240s Selecting previously unselected package python3-pbr. 240s Preparing to unpack .../71-python3-pbr_6.1.1-0ubuntu2_all.deb ... 240s Unpacking python3-pbr (6.1.1-0ubuntu2) ... 240s Selecting previously unselected package python3-pip. 240s Preparing to unpack .../72-python3-pip_25.1.1+dfsg-1ubuntu2_all.deb ... 240s Unpacking python3-pip (25.1.1+dfsg-1ubuntu2) ... 241s Selecting previously unselected package python3-pytest. 241s Preparing to unpack .../73-python3-pytest_9.0.2-2_all.deb ... 241s Unpacking python3-pytest (9.0.2-2) ... 241s Selecting previously unselected package python3-pytest-xdist. 241s Preparing to unpack .../74-python3-pytest-xdist_3.8.0-4_all.deb ... 241s Unpacking python3-pytest-xdist (3.8.0-4) ... 241s Selecting previously unselected package python3-setuptools-scm. 241s Preparing to unpack .../75-python3-setuptools-scm_8.2.1-4_all.deb ... 241s Unpacking python3-setuptools-scm (8.2.1-4) ... 241s Selecting previously unselected package python3-snowballstemmer. 241s Preparing to unpack .../76-python3-snowballstemmer_3.0.1-1_all.deb ... 241s Unpacking python3-snowballstemmer (3.0.1-1) ... 241s Selecting previously unselected package sphinx-common. 241s Preparing to unpack .../77-sphinx-common_8.2.3-12_all.deb ... 241s Unpacking sphinx-common (8.2.3-12) ... 241s Selecting previously unselected package python3-alabaster. 241s Preparing to unpack .../78-python3-alabaster_0.7.16-0.1build1_all.deb ... 241s Unpacking python3-alabaster (0.7.16-0.1build1) ... 241s Selecting previously unselected package python3-sphinx. 241s Preparing to unpack .../79-python3-sphinx_8.2.3-12_all.deb ... 241s Unpacking python3-sphinx (8.2.3-12) ... 241s Selecting previously unselected package python3-sphinxcontrib.apidoc. 241s Preparing to unpack .../80-python3-sphinxcontrib.apidoc_0.3.0-2ubuntu1_all.deb ... 241s Unpacking python3-sphinxcontrib.apidoc (0.3.0-2ubuntu1) ... 241s Selecting previously unselected package python3-zmq. 241s Preparing to unpack .../81-python3-zmq_27.1.0-1_arm64.deb ... 241s Unpacking python3-zmq (27.1.0-1) ... 241s Selecting previously unselected package openstack-pkg-tools. 241s Preparing to unpack .../82-openstack-pkg-tools_140_all.deb ... 241s Unpacking openstack-pkg-tools (140) ... 241s Setting up dh-python (7.20251231) ... 242s Setting up python3-iniconfig (2.1.0-2) ... 242s Setting up libnorm1t64:arm64 (1.5.9+dfsg-4) ... 242s Setting up libsodium23:arm64 (1.0.18-2) ... 242s Setting up python3-defusedxml (0.7.1-3build1) ... 242s Setting up python3-pbr (6.1.1-0ubuntu2) ... 242s Setting up libarchive-zip-perl (1.68-1) ... 242s Setting up python3-alabaster (0.7.16-0.1build1) ... 243s Setting up libdebhelper-perl (13.28ubuntu1) ... 243s Setting up m4 (1.4.20-2) ... 243s Setting up python-eventlet-doc (0.39.0-0ubuntu2) ... 243s Setting up libgomp1:arm64 (15.2.0-11ubuntu1) ... 243s Setting up python3-wheel (0.46.1-2) ... 243s Setting up python3-setuptools-scm (8.2.1-4) ... 243s Setting up python3-monotonic (1.6-3build1) ... 243s Setting up libpgm-5.3-0t64:arm64 (5.3.128~dfsg-2.1build2) ... 243s Setting up autotools-dev (20240727.1) ... 243s Setting up python3-pyproject-hooks (1.2.0-1) ... 244s Setting up python3-snowballstemmer (3.0.1-1) ... 244s Setting up libmpc3:arm64 (1.3.1-2) ... 244s Setting up autopoint (0.23.2-1) ... 244s Setting up python3-pip (25.1.1+dfsg-1ubuntu2) ... 246s Setting up python3-installer (0.7.0+dfsg1-3) ... 247s Setting up autoconf (2.72-3.1ubuntu1) ... 247s Setting up python3-pluggy (1.6.0-2) ... 247s Setting up libubsan1:arm64 (15.2.0-11ubuntu1) ... 247s Setting up dwz (0.16-2) ... 247s Setting up python3-trove-classifiers (2025.11.14.15-1) ... 247s Setting up libhwasan0:arm64 (15.2.0-11ubuntu1) ... 247s Setting up libasan8:arm64 (15.2.0-11ubuntu1) ... 247s Setting up libjson-perl (4.10000-1) ... 247s Setting up debugedit (1:5.2-3) ... 247s Setting up python3-roman-numerals (4.1.0-1) ... 247s Setting up python3.13-minimal (3.13.11-1) ... 248s Setting up sgml-base (1.31+nmu1) ... 248s Setting up libtsan2:arm64 (15.2.0-11ubuntu1) ... 248s Setting up libisl23:arm64 (0.27-1build1) ... 249s Setting up python3-build (1.2.2-5) ... 249s Setting up python3-execnet (2.1.1-1build1) ... 249s Setting up python3-pathspec (0.12.1-1build1) ... 249s Setting up libcc1-0:arm64 (15.2.0-11ubuntu1) ... 249s Setting up liblsan0:arm64 (15.2.0-11ubuntu1) ... 249s Setting up libitm1:arm64 (15.2.0-11ubuntu1) ... 249s Setting up python3-imagesize (1.4.1-1build1) ... 249s Setting up automake (1:1.18.1-3build1) ... 249s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 249s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 249s Setting up cpp-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 249s Setting up gettext (0.23.2-1) ... 249s Setting up libgcc-15-dev:arm64 (15.2.0-11ubuntu1) ... 249s Setting up libzmq5:arm64 (4.3.5-1build3) ... 249s Setting up python3.13 (3.13.11-1) ... 250s Setting up pybuild-plugin-pyproject (7.20251231) ... 250s Setting up python3-pytest (9.0.2-2) ... 251s Setting up python3-all (3.14.2-1) ... 251s Setting up intltool-debian (0.35.0+20060710.6build1) ... 251s Setting up cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 251s Setting up libstdc++-15-dev:arm64 (15.2.0-11ubuntu1) ... 251s Setting up python3-zmq (27.1.0-1) ... 252s Setting up sphinx-common (8.2.3-12) ... 252s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 252s Setting up cpp-15 (15.2.0-11ubuntu1) ... 252s Setting up cpp (4:15.2.0-4ubuntu1) ... 252s Setting up xml-core (0.19build1) ... 252s Setting up python3-hatchling (1.28.0-1) ... 252s Setting up gcc-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 252s Setting up python3-pytest-xdist (3.8.0-4) ... 252s Setting up po-debconf (1.0.22) ... 252s Setting up openstack-pkg-tools (140) ... 252s Setting up gcc-15 (15.2.0-11ubuntu1) ... 252s Setting up g++-15-aarch64-linux-gnu (15.2.0-11ubuntu1) ... 252s Setting up g++-15 (15.2.0-11ubuntu1) ... 252s Setting up gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 252s Setting up libtool (2.5.4-9) ... 252s Setting up gcc (4:15.2.0-4ubuntu1) ... 252s Setting up dh-autoreconf (21) ... 252s Setting up g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 252s Setting up debhelper (13.28ubuntu1) ... 252s Setting up g++ (4:15.2.0-4ubuntu1) ... 252s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 252s Setting up build-essential (12.12ubuntu2) ... 252s Processing triggers for install-info (7.2-5) ... 253s Processing triggers for libc-bin (2.42-2ubuntu4) ... 253s Processing triggers for systemd (259-1ubuntu2) ... 253s Processing triggers for man-db (2.13.1-1) ... 254s Processing triggers for sgml-base (1.31+nmu1) ... 254s Setting up docutils-common (0.22.4+dfsg-1) ... 254s Processing triggers for sgml-base (1.31+nmu1) ... 254s Setting up python3-docutils (0.22.4+dfsg-1) ... 255s Setting up python3-sphinx (8.2.3-12) ... 257s Setting up python3-sphinxcontrib.apidoc (0.3.0-2ubuntu1) ... 258s autopkgtest [01:51:15]: test unittests: [----------------------- 259s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 259s !! 259s 259s ******************************************************************************** 259s 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). 259s 259s By 2026-Feb-18, you need to update your project and remove deprecated calls 259s or your builds will no longer be supported. 259s 259s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 259s ******************************************************************************** 259s 259s !! 259s corresp(dist, value, root_dir) 259s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 259s !! 259s 259s ******************************************************************************** 259s Please consider removing the following classifiers in favor of a SPDX license expression: 259s 259s License :: OSI Approved :: MIT License 259s 259s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 259s ******************************************************************************** 259s 259s !! 259s dist._finalize_license_expression() 259s /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 259s !! 259s 259s ******************************************************************************** 259s Please consider removing the following classifiers in favor of a SPDX license expression: 259s 259s License :: OSI Approved :: MIT License 259s 259s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 259s ******************************************************************************** 259s 259s !! 259s self._finalize_license_expression() 259s running install 259s /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 259s !! 259s 259s ******************************************************************************** 259s Please avoid running ``setup.py`` directly. 259s Instead, use pypa/build, pypa/installer or other 259s standards-based tools. 259s 259s See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 259s ******************************************************************************** 259s 259s !! 259s self.initialize_options() 259s running build 259s running build_py 259s creating build/lib/eventlet 259s copying eventlet/timeout.py -> build/lib/eventlet 259s copying eventlet/db_pool.py -> build/lib/eventlet 259s copying eventlet/event.py -> build/lib/eventlet 259s copying eventlet/coros.py -> build/lib/eventlet 259s copying eventlet/queue.py -> build/lib/eventlet 259s copying eventlet/greenpool.py -> build/lib/eventlet 259s copying eventlet/corolocal.py -> build/lib/eventlet 259s copying eventlet/tpool.py -> build/lib/eventlet 259s copying eventlet/asyncio.py -> build/lib/eventlet 259s copying eventlet/wsgi.py -> build/lib/eventlet 259s copying eventlet/semaphore.py -> build/lib/eventlet 259s copying eventlet/debug.py -> build/lib/eventlet 259s copying eventlet/convenience.py -> build/lib/eventlet 259s copying eventlet/__init__.py -> build/lib/eventlet 259s copying eventlet/dagpool.py -> build/lib/eventlet 259s copying eventlet/_version.py -> build/lib/eventlet 259s copying eventlet/patcher.py -> build/lib/eventlet 259s copying eventlet/websocket.py -> build/lib/eventlet 259s copying eventlet/pools.py -> build/lib/eventlet 259s copying eventlet/lock.py -> build/lib/eventlet 259s copying eventlet/backdoor.py -> build/lib/eventlet 259s copying eventlet/greenthread.py -> build/lib/eventlet 259s running egg_info 259s creating eventlet.egg-info 259s writing eventlet.egg-info/PKG-INFO 259s writing dependency_links to eventlet.egg-info/dependency_links.txt 259s writing requirements to eventlet.egg-info/requires.txt 259s writing top-level names to eventlet.egg-info/top_level.txt 259s writing manifest file 'eventlet.egg-info/SOURCES.txt' 259s reading manifest file 'eventlet.egg-info/SOURCES.txt' 259s reading manifest template 'MANIFEST.in' 259s warning: no files found matching 'Makefile' under directory 'doc' 259s adding license file 'LICENSE' 259s adding license file 'AUTHORS' 259s writing manifest file 'eventlet.egg-info/SOURCES.txt' 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.green' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.green' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.green' to be distributed and are 259s already explicitly excluding 'eventlet.green' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.green.OpenSSL' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.green.OpenSSL' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.green.OpenSSL' to be distributed and are 259s already explicitly excluding 'eventlet.green.OpenSSL' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.green.http' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.green.http' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.green.http' to be distributed and are 259s already explicitly excluding 'eventlet.green.http' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.green.urllib' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.green.urllib' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.green.urllib' to be distributed and are 259s already explicitly excluding 'eventlet.green.urllib' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.greenio' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.greenio' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.greenio' to be distributed and are 259s already explicitly excluding 'eventlet.greenio' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.hubs' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.hubs' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.hubs' to be distributed and are 259s already explicitly excluding 'eventlet.hubs' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.support' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.support' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.support' to be distributed and are 259s already explicitly excluding 'eventlet.support' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.zipkin' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.zipkin' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.zipkin' to be distributed and are 259s already explicitly excluding 'eventlet.zipkin' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.zipkin._thrift' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.zipkin._thrift' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.zipkin._thrift' to be distributed and are 259s already explicitly excluding 'eventlet.zipkin._thrift' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift.zipkinCore' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.zipkin._thrift.zipkinCore' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.zipkin._thrift.zipkinCore' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.zipkin._thrift.zipkinCore' to be distributed and are 259s already explicitly excluding 'eventlet.zipkin._thrift.zipkinCore' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin.example' is absent from the `packages` configuration. 259s !! 259s 259s ******************************************************************************** 259s ############################ 259s # Package would be ignored # 259s ############################ 259s Python recognizes 'eventlet.zipkin.example' as an importable package[^1], 259s but it is absent from setuptools' `packages` configuration. 259s 259s This leads to an ambiguous overall configuration. If you want to distribute this 259s package, please make sure that 'eventlet.zipkin.example' is explicitly added 259s to the `packages` configuration field. 259s 259s Alternatively, you can also rely on setuptools' discovery methods 259s (for example by using `find_namespace_packages(...)`/`find_namespace:` 259s instead of `find_packages(...)`/`find:`). 259s 259s You can read more about "package discovery" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 259s 259s If you don't want 'eventlet.zipkin.example' to be distributed and are 259s already explicitly excluding 'eventlet.zipkin.example' via 259s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 259s you can try to use `exclude_package_data`, or `include-package-data=False` in 259s combination with a more fine grained `package-data` configuration. 259s 259s You can read more about "package data files" on setuptools documentation page: 259s 259s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 259s 259s 259s [^1]: For Python, any directory (with suitable naming) can be imported, 259s even if it does not contain any `.py` files. 259s On the other hand, currently there is no concept of package data 259s directory, all directories are treated like packages. 259s ******************************************************************************** 259s 259s !! 259s check.warn(importable) 259s creating build/lib/eventlet/green 259s copying eventlet/green/BaseHTTPServer.py -> build/lib/eventlet/green 259s copying eventlet/green/CGIHTTPServer.py -> build/lib/eventlet/green 259s copying eventlet/green/MySQLdb.py -> build/lib/eventlet/green 259s copying eventlet/green/Queue.py -> build/lib/eventlet/green 259s copying eventlet/green/SimpleHTTPServer.py -> build/lib/eventlet/green 259s copying eventlet/green/SocketServer.py -> build/lib/eventlet/green 259s copying eventlet/green/__init__.py -> build/lib/eventlet/green 259s copying eventlet/green/_socket_nodns.py -> build/lib/eventlet/green 259s copying eventlet/green/asynchat.py -> build/lib/eventlet/green 259s copying eventlet/green/asyncore.py -> build/lib/eventlet/green 259s copying eventlet/green/builtin.py -> build/lib/eventlet/green 259s copying eventlet/green/ftplib.py -> build/lib/eventlet/green 259s copying eventlet/green/httplib.py -> build/lib/eventlet/green 259s copying eventlet/green/os.py -> build/lib/eventlet/green 259s copying eventlet/green/profile.py -> build/lib/eventlet/green 259s copying eventlet/green/select.py -> build/lib/eventlet/green 259s copying eventlet/green/selectors.py -> build/lib/eventlet/green 259s copying eventlet/green/socket.py -> build/lib/eventlet/green 259s copying eventlet/green/ssl.py -> build/lib/eventlet/green 259s copying eventlet/green/subprocess.py -> build/lib/eventlet/green 259s copying eventlet/green/thread.py -> build/lib/eventlet/green 259s copying eventlet/green/threading.py -> build/lib/eventlet/green 259s copying eventlet/green/time.py -> build/lib/eventlet/green 259s copying eventlet/green/urllib2.py -> build/lib/eventlet/green 259s copying eventlet/green/zmq.py -> build/lib/eventlet/green 259s creating build/lib/eventlet/green/OpenSSL 259s copying eventlet/green/OpenSSL/SSL.py -> build/lib/eventlet/green/OpenSSL 259s copying eventlet/green/OpenSSL/__init__.py -> build/lib/eventlet/green/OpenSSL 259s copying eventlet/green/OpenSSL/crypto.py -> build/lib/eventlet/green/OpenSSL 259s copying eventlet/green/OpenSSL/tsafe.py -> build/lib/eventlet/green/OpenSSL 259s copying eventlet/green/OpenSSL/version.py -> build/lib/eventlet/green/OpenSSL 259s creating build/lib/eventlet/green/http 259s copying eventlet/green/http/__init__.py -> build/lib/eventlet/green/http 259s copying eventlet/green/http/client.py -> build/lib/eventlet/green/http 259s copying eventlet/green/http/cookiejar.py -> build/lib/eventlet/green/http 259s copying eventlet/green/http/cookies.py -> build/lib/eventlet/green/http 259s copying eventlet/green/http/server.py -> build/lib/eventlet/green/http 259s creating build/lib/eventlet/green/urllib 259s copying eventlet/green/urllib/__init__.py -> build/lib/eventlet/green/urllib 259s copying eventlet/green/urllib/error.py -> build/lib/eventlet/green/urllib 259s copying eventlet/green/urllib/parse.py -> build/lib/eventlet/green/urllib 259s copying eventlet/green/urllib/request.py -> build/lib/eventlet/green/urllib 259s copying eventlet/green/urllib/response.py -> build/lib/eventlet/green/urllib 259s creating build/lib/eventlet/greenio 259s copying eventlet/greenio/__init__.py -> build/lib/eventlet/greenio 259s copying eventlet/greenio/base.py -> build/lib/eventlet/greenio 259s copying eventlet/greenio/py3.py -> build/lib/eventlet/greenio 259s creating build/lib/eventlet/hubs 259s copying eventlet/hubs/__init__.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/asyncio.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/epolls.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/hub.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/kqueue.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/poll.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/pyevent.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/selects.py -> build/lib/eventlet/hubs 259s copying eventlet/hubs/timer.py -> build/lib/eventlet/hubs 259s creating build/lib/eventlet/support 259s copying eventlet/support/__init__.py -> build/lib/eventlet/support 259s copying eventlet/support/greendns.py -> build/lib/eventlet/support 259s copying eventlet/support/greenlets.py -> build/lib/eventlet/support 259s copying eventlet/support/psycopg2_patcher.py -> build/lib/eventlet/support 259s copying eventlet/support/pylib.py -> build/lib/eventlet/support 259s copying eventlet/support/stacklesspypys.py -> build/lib/eventlet/support 259s copying eventlet/support/stacklesss.py -> build/lib/eventlet/support 259s creating build/lib/eventlet/zipkin 259s copying eventlet/zipkin/README.rst -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/__init__.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/api.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/client.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/greenthread.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/http.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/log.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/patcher.py -> build/lib/eventlet/zipkin 259s copying eventlet/zipkin/wsgi.py -> build/lib/eventlet/zipkin 259s creating build/lib/eventlet/zipkin/_thrift 259s copying eventlet/zipkin/_thrift/README.rst -> build/lib/eventlet/zipkin/_thrift 259s copying eventlet/zipkin/_thrift/__init__.py -> build/lib/eventlet/zipkin/_thrift 259s copying eventlet/zipkin/_thrift/zipkinCore.thrift -> build/lib/eventlet/zipkin/_thrift 259s creating build/lib/eventlet/zipkin/_thrift/zipkinCore 259s copying eventlet/zipkin/_thrift/zipkinCore/__init__.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 259s copying eventlet/zipkin/_thrift/zipkinCore/constants.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 259s copying eventlet/zipkin/_thrift/zipkinCore/ttypes.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 259s creating build/lib/eventlet/zipkin/example 259s copying eventlet/zipkin/example/ex1.png -> build/lib/eventlet/zipkin/example 259s copying eventlet/zipkin/example/ex2.png -> build/lib/eventlet/zipkin/example 259s copying eventlet/zipkin/example/ex3.png -> build/lib/eventlet/zipkin/example 259s running install_lib 259s creating /debian/tmp/usr/lib/python3/dist-packages 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/client.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 259s copying build/lib/eventlet/zipkin/example/ex3.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 259s copying build/lib/eventlet/zipkin/example/ex2.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 259s copying build/lib/eventlet/zipkin/example/ex1.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 259s copying build/lib/eventlet/zipkin/log.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 259s copying build/lib/eventlet/zipkin/_thrift/zipkinCore.thrift -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 259s copying build/lib/eventlet/zipkin/_thrift/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 259s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 259s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/constants.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 259s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/ttypes.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 259s copying build/lib/eventlet/zipkin/_thrift/README.rst -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 259s copying build/lib/eventlet/zipkin/wsgi.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/api.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/http.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/README.rst -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s copying build/lib/eventlet/zipkin/greenthread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/thread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/subprocess.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/BaseHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/Queue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/time.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/asynchat.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/SocketServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/SimpleHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/select.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/ssl.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/_socket_nodns.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/builtin.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 259s copying build/lib/eventlet/green/OpenSSL/version.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 259s copying build/lib/eventlet/green/OpenSSL/SSL.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 259s copying build/lib/eventlet/green/OpenSSL/crypto.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 259s copying build/lib/eventlet/green/OpenSSL/tsafe.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 259s copying build/lib/eventlet/green/OpenSSL/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 259s copying build/lib/eventlet/green/profile.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/urllib2.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/CGIHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 259s copying build/lib/eventlet/green/http/client.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 259s copying build/lib/eventlet/green/http/cookies.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 259s copying build/lib/eventlet/green/http/cookiejar.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 259s copying build/lib/eventlet/green/http/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 259s copying build/lib/eventlet/green/http/server.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 259s copying build/lib/eventlet/green/httplib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/os.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/zmq.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 259s copying build/lib/eventlet/green/urllib/parse.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 259s copying build/lib/eventlet/green/urllib/error.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 259s copying build/lib/eventlet/green/urllib/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 259s copying build/lib/eventlet/green/urllib/response.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 259s copying build/lib/eventlet/green/urllib/request.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 259s copying build/lib/eventlet/green/ftplib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/socket.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/MySQLdb.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/selectors.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/threading.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/green/asyncore.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 259s copying build/lib/eventlet/timeout.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/db_pool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/hub.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/pyevent.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/asyncio.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/epolls.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/poll.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/timer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/kqueue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/hubs/selects.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 259s copying build/lib/eventlet/event.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/coros.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/queue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/greenpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/corolocal.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/tpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/asyncio.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/wsgi.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/semaphore.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/debug.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/convenience.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/greendns.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/greenlets.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/stacklesss.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/psycopg2_patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/stacklesspypys.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/support/pylib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 259s copying build/lib/eventlet/dagpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/_version.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 259s copying build/lib/eventlet/greenio/py3.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 259s copying build/lib/eventlet/greenio/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 259s copying build/lib/eventlet/greenio/base.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 259s copying build/lib/eventlet/patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/websocket.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/pools.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/lock.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/backdoor.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s copying build/lib/eventlet/greenthread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/client.py to client.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/log.py to log.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/constants.py to constants.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/ttypes.py to ttypes.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/wsgi.py to wsgi.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/api.py to api.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/http.py to http.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/patcher.py to patcher.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/greenthread.py to greenthread.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/thread.py to thread.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/subprocess.py to subprocess.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/BaseHTTPServer.py to BaseHTTPServer.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/Queue.py to Queue.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/time.py to time.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asynchat.py to asynchat.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SocketServer.py to SocketServer.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SimpleHTTPServer.py to SimpleHTTPServer.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/select.py to select.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ssl.py to ssl.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/_socket_nodns.py to _socket_nodns.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/builtin.py to builtin.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/version.py to version.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/SSL.py to SSL.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/crypto.py to crypto.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/tsafe.py to tsafe.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/profile.py to profile.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib2.py to urllib2.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/CGIHTTPServer.py to CGIHTTPServer.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/client.py to client.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookies.py to cookies.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookiejar.py to cookiejar.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/server.py to server.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/httplib.py to httplib.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/os.py to os.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/zmq.py to zmq.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/parse.py to parse.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/error.py to error.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/response.py to response.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/request.py to request.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ftplib.py to ftplib.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/socket.py to socket.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/MySQLdb.py to MySQLdb.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/selectors.py to selectors.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/threading.py to threading.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asyncore.py to asyncore.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/timeout.py to timeout.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/db_pool.py to db_pool.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/hub.py to hub.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/pyevent.py to pyevent.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/asyncio.py to asyncio.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/epolls.py to epolls.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/poll.py to poll.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/timer.py to timer.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/kqueue.py to kqueue.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/selects.py to selects.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/event.py to event.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/coros.py to coros.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/queue.py to queue.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenpool.py to greenpool.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/corolocal.py to corolocal.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/tpool.py to tpool.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/asyncio.py to asyncio.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/wsgi.py to wsgi.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/semaphore.py to semaphore.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/debug.py to debug.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/convenience.py to convenience.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greendns.py to greendns.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greenlets.py to greenlets.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesss.py to stacklesss.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/psycopg2_patcher.py to psycopg2_patcher.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesspypys.py to stacklesspypys.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/pylib.py to pylib.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/dagpool.py to dagpool.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/_version.py to _version.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/py3.py to py3.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/__init__.py to __init__.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/base.py to base.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/patcher.py to patcher.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/websocket.py to websocket.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/pools.py to pools.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/lock.py to lock.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/backdoor.py to backdoor.cpython-313.pyc 259s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenthread.py to greenthread.cpython-313.pyc 259s running install_egg_info 259s Copying eventlet.egg-info to /debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info 259s Skipping SOURCES.txt 259s running install_scripts 262s ============================= test session starts ============================== 262s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 262s cachedir: .pytest_cache 262s rootdir: /tmp/autopkgtest.YEdMQf/build.l07/src 262s configfile: pyproject.toml 262s plugins: typeguard-4.4.4, xdist-3.8.0 262s created: 2/2 workers 262s 2 workers [718 items] 262s 262s scheduling tests via LoadScheduling 262s 262s tests/api_test.py::TestApi::test_001_trampoline_timeout 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 262s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 262s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 262s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 262s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 262s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 262s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 262s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 262s tests/debug_test.py::TestSpew::test_line 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line 262s tests/debug_test.py::TestSpew::test_line_global 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_global 262s tests/debug_test.py::TestSpew::test_line_nofile 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nofile 262s tests/debug_test.py::TestSpew::test_line_nooutput 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nooutput 262s tests/debug_test.py::TestSpew::test_line_novalue 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_novalue 262s tests/debug_test.py::TestSpew::test_spew 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_spew 262s tests/debug_test.py::TestSpew::test_unspew 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_unspew 262s tests/debug_test.py::TestDebug::test_everything 262s [gw1] [ 5%] PASSED tests/debug_test.py::TestDebug::test_everything 262s tests/debug_test.py::TestDebug::test_hub_exceptions 262s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_001_trampoline_timeout 262s tests/api_test.py::TestApi::test_connect_ssl 262s [gw1] [ 6%] PASSED tests/debug_test.py::TestDebug::test_hub_exceptions 262s tests/env_test.py::test_hub_selects 262s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_ssl 262s tests/api_test.py::TestApi::test_connect_tcp 262s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_tcp 262s tests/api_test.py::TestApi::test_killing_dormant 262s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_killing_dormant 262s tests/api_test.py::TestApi::test_nested_with_timeout 262s [gw1] [ 6%] PASSED tests/env_test.py::test_hub_selects 262s tests/env_test.py::test_tpool_dns 262s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_nested_with_timeout 262s tests/api_test.py::TestApi::test_tcp_listener 262s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_tcp_listener 262s tests/api_test.py::TestApi::test_timeout_cancel 262s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_timeout_cancel 262s tests/api_test.py::test_wrap_is_timeout 262s [gw0] [ 7%] PASSED tests/api_test.py::test_wrap_is_timeout 262s tests/api_test.py::test_timeouterror_deprecated 262s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_dns 263s tests/env_test.py::test_tpool_size 263s [gw0] [ 7%] PASSED tests/api_test.py::test_timeouterror_deprecated 263s tests/api_test.py::test_zero_second_sleep 263s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_size 263s tests/env_test.py::test_tpool_negative 263s [gw0] [ 7%] PASSED tests/api_test.py::test_zero_second_sleep 263s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 263s [gw1] [ 8%] PASSED tests/env_test.py::test_tpool_negative 263s tests/env_test.py::test_tpool_zero 263s [gw0] [ 8%] PASSED tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 263s tests/backdoor_test.py::BackdoorTest::test_server 263s [gw0] [ 8%] PASSED tests/backdoor_test.py::BackdoorTest::test_server 263s tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 263s [gw0] [ 8%] SKIPPED tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 264s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 264s [gw1] [ 8%] PASSED tests/env_test.py::test_tpool_zero 264s tests/event_test.py::TestEvent::test_double_exception 264s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_double_exception 264s tests/event_test.py::TestEvent::test_multiple_waiters 264s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters 264s tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 264s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 264s tests/convenience_test.py::TestServe::test_blocking 264s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 264s tests/event_test.py::TestEvent::test_reset 264s [gw0] [ 9%] PASSED tests/convenience_test.py::TestServe::test_blocking 264s tests/convenience_test.py::TestServe::test_called_for_each_connection 264s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_reset 264s tests/event_test.py::TestEvent::test_waiting_for_event 264s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_waiting_for_event 264s tests/event_test.py::test_wait_timeout_ok 264s [gw0] [ 9%] PASSED tests/convenience_test.py::TestServe::test_called_for_each_connection 264s tests/convenience_test.py::TestServe::test_concurrency 264s [gw0] [ 9%] PASSED tests/convenience_test.py::TestServe::test_concurrency 264s tests/convenience_test.py::TestServe::test_excepting_server 264s [gw1] [ 10%] PASSED tests/event_test.py::test_wait_timeout_ok 264s tests/event_test.py::test_wait_timeout_exceed 264s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server 264s tests/convenience_test.py::TestServe::test_excepting_server_already_closed 264s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server_already_closed 264s tests/convenience_test.py::TestServe::test_exiting_server 264s [gw1] [ 10%] PASSED tests/event_test.py::test_wait_timeout_exceed 264s tests/green_http_test.py::test_green_http_doesnt_change_original_module 264s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_exiting_server 264s tests/convenience_test.py::TestServe::test_raising_stopserve 264s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_raising_stopserve 264s tests/convenience_test.py::TestServe::test_wrap_ssl 264s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_wrap_ssl 264s tests/convenience_test.py::test_socket_reuse 264s [gw0] [ 11%] PASSED tests/convenience_test.py::test_socket_reuse 264s tests/convenience_test.py::test_reuse_random_port_warning 264s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuse_random_port_warning 264s tests/convenience_test.py::test_reuseport_oserror 264s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuseport_oserror 264s tests/dagpool_test.py::test_check_no_suspend 264s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_check_no_suspend 264s tests/dagpool_test.py::test_init 264s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_init 264s tests/dagpool_test.py::test_wait_each_empty 264s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_empty 264s tests/dagpool_test.py::test_wait_each_preload 264s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_preload 264s tests/dagpool_test.py::test_wait_each_posted 264s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_posted 264s tests/dagpool_test.py::test_wait_posted 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_posted 264s tests/dagpool_test.py::test_spawn_collision_preload 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_preload 264s tests/dagpool_test.py::test_spawn_collision_post 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_post 264s tests/dagpool_test.py::test_spawn_collision_spawn 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_spawn 264s tests/dagpool_test.py::test_spawn_multiple 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_multiple 264s tests/dagpool_test.py::test_spawn_many 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_many 264s tests/dagpool_test.py::test_wait_each_all 264s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_all 264s tests/dagpool_test.py::test_kill 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_kill 264s tests/dagpool_test.py::test_post_collision_preload 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_preload 264s tests/dagpool_test.py::test_post_collision_post 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_post 264s tests/dagpool_test.py::test_post_collision_spawn 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_spawn 264s tests/dagpool_test.py::test_post_replace 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_replace 264s tests/dagpool_test.py::test_getitem 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_getitem 264s tests/dagpool_test.py::test_waitall_exc 264s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_waitall_exc 264s tests/dagpool_test.py::test_propagate_exc 264s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_propagate_exc 264s tests/dagpool_test.py::test_wait_each_exc 264s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_wait_each_exc 264s tests/dagpool_test.py::test_post_get_exc 264s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_post_get_exc 264s tests/db_pool_test.py::test_raw_pool_issue_125 264s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_issue_125 264s tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 264s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 264s tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 264s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 264s tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 264s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 264s tests/db_pool_test.py::test_raw_pool_clear_update_current_size 264s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_clear_update_current_size 264s tests/db_pool_test.py::Test01MysqlTpool::test_bool 264s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_bool 264s tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 264s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 264s tests/db_pool_test.py::Test01MysqlTpool::test_connecting 264s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connecting 264s tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 264s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 264s tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 264s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 264s tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 264s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 264s tests/db_pool_test.py::Test01MysqlTpool::test_put_none 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_none 264s tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 264s tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 264s tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 264s tests/db_pool_test.py::Test01MysqlTpool::test_run_query 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_query 264s tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 264s tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 264s tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 264s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 264s tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 264s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 264s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 264s tests/db_pool_test.py::Test02MysqlRaw::test_bool 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_bool 264s tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 264s tests/db_pool_test.py::Test02MysqlRaw::test_connecting 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connecting 264s tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 264s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 264s tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 264s tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 264s tests/db_pool_test.py::Test02MysqlRaw::test_put_none 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_none 264s tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 264s tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 264s tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 264s tests/db_pool_test.py::Test02MysqlRaw::test_run_query 264s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_query 264s tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 264s tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 264s tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 264s tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 264s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 264s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 264s tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 264s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 264s tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 264s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 264s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 264s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 264s tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 264s [gw1] [ 20%] PASSED tests/green_http_test.py::test_green_http_doesnt_change_original_module 264s tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 264s [gw0] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 265s tests/greenio_test.py::TestGreenSocket::test_full_duplex 265s [gw0] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_full_duplex 265s tests/greenio_test.py::TestGreenSocket::test_invalid_connection 265s [gw1] [ 20%] PASSED tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 265s tests/green_http_test.py::test_http_request_encode_chunked_kwarg 265s [gw1] [ 20%] PASSED tests/green_http_test.py::test_http_request_encode_chunked_kwarg 265s tests/green_profile_test.py::test_green_profile_basic 265s [gw1] [ 21%] PASSED tests/green_profile_test.py::test_green_profile_basic 265s tests/green_select_test.py::test_select_mark_file_as_reopened 265s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_invalid_connection 265s tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 265s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 265s tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 265s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 265s tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 265s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 265s tests/greenio_test.py::TestGreenSocket::test_recv_timeout 265s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_timeout 265s tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 265s [gw1] [ 21%] PASSED tests/green_select_test.py::test_select_mark_file_as_reopened 265s tests/greendns_test.py::TestHostsResolver::test_default_fname 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_default_fname 265s tests/greendns_test.py::TestHostsResolver::test_getaliases 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases 265s tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 265s [gw0] [ 22%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 265s tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 265s tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 265s tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 265s tests/greendns_test.py::TestHostsResolver::test_load_no_contents 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_no_contents 265s tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 265s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 266s tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 266s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 266s tests/greendns_test.py::TestHostsResolver::test_query_A 266s [gw0] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 266s tests/greenio_test.py::TestGreenSocket::test_send_timeout 266s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_A 266s tests/greendns_test.py::TestHostsResolver::test_query_AAAA 266s [gw0] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_send_timeout 266s tests/greenio_test.py::TestGreenSocket::test_sendall 266s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_AAAA 266s tests/greendns_test.py::TestHostsResolver::test_query_CNAME 266s [gw0] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall 266s tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 266s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_CNAME 266s tests/greendns_test.py::TestHostsResolver::test_query_ans_types 266s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_ans_types 266s tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 266s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 266s tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 266s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 266s tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 266s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 266s tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 266s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 266s tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 266s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 266s tests/greendns_test.py::TestHostsResolver::test_readlines_lines 266s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 266s tests/greenio_test.py::TestGreenSocket::test_socketpair_select 266s [gw1] [ 25%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_lines 266s tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 266s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_socketpair_select 266s tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 266s [gw1] [ 25%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 266s tests/greendns_test.py::TestUdp::test_udp_ipv4 266s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 266s tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 266s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4 266s tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 266s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 266s tests/greenio_test.py::TestGreenSocket::test_wrap_socket 266s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_wrap_socket 266s tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 266s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 266s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 266s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 266s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 266s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 266s tests/greenio_test.py::test_get_fileno_of_a_socket_works 266s [gw0] [ 26%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_works 266s tests/greenio_test.py::test_get_fileno_of_an_int_works 266s [gw0] [ 26%] PASSED tests/greenio_test.py::test_get_fileno_of_an_int_works 266s tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 266s [gw0] [ 26%] PASSED tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 266s tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 266s [gw0] [ 26%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 266s tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 266s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 266s tests/greenio_test.py::TestGreenPipe::test_pipe 266s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 266s tests/greendns_test.py::TestUdp::test_udp_ipv6 266s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe 266s tests/greenio_test.py::TestGreenPipe::test_pipe_read 266s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6 266s tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 266s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 267s tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 267s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read 267s tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 267s [gw0] [ 27%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 267s tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 267s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 267s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 267s [gw0] [ 28%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 267s tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 267s [gw1] [ 28%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 267s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 267s [gw0] [ 28%] PASSED tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 267s tests/greenio_test.py::TestGreenPipe::test_truncate 267s [gw0] [ 28%] PASSED tests/greenio_test.py::TestGreenPipe::test_truncate 267s tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 267s [gw1] [ 28%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 267s tests/greendns_test.py::TestProxyResolver::test_getaliases 267s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases 267s tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 267s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 267s tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 267s tests/greendns_test.py::TestProxyResolver::test_hosts 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts 267s tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 267s tests/greendns_test.py::TestProxyResolver::test_noanswer 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer 267s tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 267s tests/greendns_test.py::TestProxyResolver::test_nxdomain 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_nxdomain 267s tests/greendns_test.py::TestProxyResolver::test_resolver 267s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_resolver 267s tests/greendns_test.py::TestResolve::test_A 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_A 267s tests/greendns_test.py::TestResolve::test_AAAA 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_AAAA 267s tests/greendns_test.py::TestResolve::test_exc 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_exc 267s tests/greendns_test.py::TestResolve::test_noraise_noanswer 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_noraise_noanswer 267s tests/greendns_test.py::TestResolve::test_noraise_nxdomain 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_noraise_nxdomain 267s tests/greendns_test.py::TestResolve::test_timeout 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_timeout 267s tests/greendns_test.py::TestResolve::test_unknown_rdtype 267s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_unknown_rdtype 267s tests/greendns_test.py::TestResolveCname::test_no_answer 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_no_answer 267s tests/greendns_test.py::TestResolveCname::test_nodata 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_nodata 267s tests/greendns_test.py::TestResolveCname::test_success 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_success 267s tests/greendns_test.py::TestResolveCname::test_timeout 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_timeout 267s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 267s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 267s tests/greendns_test.py::TestGetaddrinfo::test_canonname 267s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_canonname 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 267s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 267s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 267s tests/greendns_test.py::TestGetaddrinfo::test_host_none 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none 267s tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 267s tests/greendns_test.py::TestGetaddrinfo::test_noport 267s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_noport 267s tests/greendns_test.py::TestGetaddrinfo::test_numerichost 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numerichost 267s tests/greendns_test.py::TestGetaddrinfo::test_numericserv 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numericserv 267s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 267s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 267s tests/greendns_test.py::TestIsIpAddr::test_isv4 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4 267s tests/greendns_test.py::TestIsIpAddr::test_isv4_false 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_false 267s tests/greendns_test.py::TestIsIpAddr::test_isv4_none 267s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_none 267s tests/greendns_test.py::TestIsIpAddr::test_isv6 267s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6 268s tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 268s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 268s tests/greendns_test.py::TestIsIpAddr::test_isv6_none 268s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_none 268s tests/greendns_test.py::TestIsIpAddr::test_none 268s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_none 268s tests/greendns_test.py::TestIsIpAddr::test_v4 268s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4 268s tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 268s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 268s tests/greendns_test.py::TestIsIpAddr::test_v6_addr 268s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v6_addr 268s tests/greendns_test.py::TestGethostbyname::test_ipaddr 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname::test_ipaddr 268s tests/greendns_test.py::TestGethostbyname::test_name 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname::test_name 268s tests/greendns_test.py::TestGetaliases::test_getaliases 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGetaliases::test_getaliases 268s tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 268s tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 268s tests/greendns_test.py::TestGethostbyname_ex::test_name 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_name 268s tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 268s [gw1] [ 36%] PASSED tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 268s tests/greendns_test.py::test_reverse_name 268s [gw1] [ 37%] PASSED tests/greendns_test.py::test_reverse_name 268s tests/greendns_test.py::test_proxy_resolve_unqualified 268s [gw1] [ 37%] PASSED tests/greendns_test.py::test_proxy_resolve_unqualified 268s tests/greendns_test.py::test_hosts_priority 268s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_priority 268s tests/greendns_test.py::test_hosts_no_network 268s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_no_network 269s tests/greendns_test.py::test_import_rdtypes_then_eventlet 269s [gw1] [ 37%] PASSED tests/greendns_test.py::test_import_rdtypes_then_eventlet 269s tests/greenio_test.py::TestGreenSocket::test_accept_timeout 269s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_accept_timeout 269s tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 269s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 269s tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 269s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 269s tests/greenio_test.py::TestGreenSocket::test_closure 269s [gw1] [ 38%] SKIPPED tests/greenio_test.py::TestGreenSocket::test_closure 269s tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 269s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 269s tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 269s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 269s tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 269s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 269s tests/hub_test.py::test_use_hub_class 269s [gw1] [ 38%] PASSED tests/hub_test.py::test_use_hub_class 270s tests/hub_test.py::test_kqueue_unsupported 270s [gw1] [ 38%] PASSED tests/hub_test.py::test_kqueue_unsupported 270s tests/mysqldb_test.py::TestMySQLdb::test_connecting 270s [gw1] [ 38%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting 270s tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 270s tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 270s tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 270s tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 270s tests/mysqldb_test.py::TestMySQLdb::test_run_query 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_query 270s tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 270s tests/mysqldb_test.py::TestMySQLdb::test_yields 270s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_yields 270s tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 270s [gw1] [ 40%] SKIPPED tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 270s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 270s [gw1] [ 40%] PASSED tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 270s tests/openssl_test.py::test_import 270s [gw1] [ 40%] PASSED tests/openssl_test.py::test_import 270s tests/os_test.py::test_pathlib_open_issue_534 270s [gw1] [ 40%] PASSED tests/os_test.py::test_pathlib_open_issue_534 270s tests/os_test.py::test_os_read_nonblocking 270s [gw1] [ 40%] PASSED tests/os_test.py::test_os_read_nonblocking 272s tests/os_test.py::test_os_write_nonblocking 272s [gw1] [ 40%] PASSED tests/os_test.py::test_os_write_nonblocking 272s tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 272s [gw1] [ 40%] SKIPPED tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 273s tests/patcher_test.py::ImportPatched::test_patch_a_module 273s [gw1] [ 41%] PASSED tests/patcher_test.py::ImportPatched::test_patch_a_module 273s tests/patcher_test.py::test_import_patched_handles_sub_modules 273s [gw1] [ 41%] PASSED tests/patcher_test.py::test_import_patched_handles_sub_modules 273s tests/patcher_test.py::MonkeyPatch::test_boolean 273s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean 274s tests/patcher_test.py::MonkeyPatch::test_boolean_all 274s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all 274s tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 274s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 275s tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 275s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 275s tests/patcher_test.py::MonkeyPatch::test_boolean_double 275s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_double 275s tests/patcher_test.py::MonkeyPatch::test_boolean_negative 275s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative 275s tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 275s [gw0] [ 42%] PASSED tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 275s tests/greenio_test.py::test_set_nonblocking 275s [gw0] [ 42%] PASSED tests/greenio_test.py::test_set_nonblocking 275s tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 275s [gw0] [ 42%] PASSED tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 276s tests/greenio_test.py::test_double_close_219 276s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 276s tests/patcher_test.py::MonkeyPatch::test_boolean_single 276s [gw0] [ 42%] PASSED tests/greenio_test.py::test_double_close_219 276s tests/greenio_test.py::test_partial_write_295 276s [gw0] [ 42%] PASSED tests/greenio_test.py::test_partial_write_295 276s tests/greenio_test.py::test_socket_file_read_non_int 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_socket_file_read_non_int 276s tests/greenio_test.py::test_pipe_context 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_pipe_context 276s tests/greenio_test.py::test_greenpipe_write 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_greenpipe_write 276s tests/greenio_test.py::test_greenpipe_append 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_greenpipe_append 276s tests/greenio_test.py::test_greenpipe_read_overwrite 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_greenpipe_read_overwrite 276s tests/greenio_test.py::test_greenpipe_write_plus 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_greenpipe_write_plus 276s tests/greenio_test.py::test_greenpipe_append_plus 276s [gw0] [ 43%] PASSED tests/greenio_test.py::test_greenpipe_append_plus 276s tests/greenpool_test.py::GreenPool::test_empty_imap 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_empty_imap 276s tests/greenpool_test.py::GreenPool::test_exceptions 276s [gw1] [ 44%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_single 276s tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_exceptions 276s tests/greenpool_test.py::GreenPool::test_imap 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_imap 276s tests/greenpool_test.py::GreenPool::test_imap_multi_args 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_imap_multi_args 276s tests/greenpool_test.py::GreenPool::test_imap_nonefunc 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_imap_nonefunc 276s tests/greenpool_test.py::GreenPool::test_imap_raises 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_imap_raises 276s tests/greenpool_test.py::GreenPool::test_multiple_coros 276s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_multiple_coros 276s tests/greenpool_test.py::GreenPool::test_pool_smash 276s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_pool_smash 276s tests/greenpool_test.py::GreenPool::test_recursive_waitall 276s [gw1] [ 45%] PASSED tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 276s tests/patcher_test.py::MonkeyPatch::test_early_patching 276s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_recursive_waitall 276s tests/greenpool_test.py::GreenPool::test_reentrant 276s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_reentrant 277s tests/greenpool_test.py::GreenPool::test_resize 277s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_resize 277s tests/greenpool_test.py::GreenPool::test_spawn 277s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_spawn 277s tests/greenpool_test.py::GreenPool::test_spawn_n 277s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n 277s tests/greenpool_test.py::GreenPool::test_spawn_n_2 277s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n_2 277s tests/greenpool_test.py::GreenPool::test_starmap 277s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_starmap 277s tests/greenpool_test.py::GreenPool::test_timer_cancel 277s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_timer_cancel 277s tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 277s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 277s tests/greenpool_test.py::GreenPool::test_waiting 277s [gw1] [ 46%] PASSED tests/patcher_test.py::MonkeyPatch::test_early_patching 277s tests/patcher_test.py::MonkeyPatch::test_late_patching 277s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_waiting 277s tests/greenpool_test.py::GreenPile::test_constructing_from_pool 277s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPile::test_constructing_from_pool 277s tests/greenpool_test.py::GreenPile::test_empty_pile 277s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_empty_pile 277s tests/greenpool_test.py::GreenPile::test_pile 277s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_pile 277s tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 277s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 277s tests/greenpool_test.py::test_greenpool_type_check 277s [gw0] [ 47%] PASSED tests/greenpool_test.py::test_greenpool_type_check 277s tests/greenpool_test.py::Stress::test_imap_50 277s [gw1] [ 47%] PASSED tests/patcher_test.py::MonkeyPatch::test_late_patching 278s tests/patcher_test.py::MonkeyPatch::test_patched_modules 278s [gw1] [ 47%] PASSED tests/patcher_test.py::MonkeyPatch::test_patched_modules 278s tests/patcher_test.py::MonkeyPatch::test_typeerror 278s [gw1] [ 47%] PASSED tests/patcher_test.py::MonkeyPatch::test_typeerror 279s tests/patcher_test.py::Tpool::test_patched_thread 279s [gw1] [ 48%] PASSED tests/patcher_test.py::Tpool::test_patched_thread 279s tests/patcher_test.py::Tpool::test_simple 279s [gw1] [ 48%] PASSED tests/patcher_test.py::Tpool::test_simple 281s tests/patcher_test.py::Tpool::test_unpatched_thread 281s [gw1] [ 48%] PASSED tests/patcher_test.py::Tpool::test_unpatched_thread 281s tests/patcher_test.py::test_subprocess_after_monkey_patch 281s [gw1] [ 48%] PASSED tests/patcher_test.py::test_subprocess_after_monkey_patch 281s tests/patcher_test.py::Threading::test_greenlet 281s [gw1] [ 48%] PASSED tests/patcher_test.py::Threading::test_greenlet 282s tests/patcher_test.py::Threading::test_greenthread 282s [gw1] [ 48%] PASSED tests/patcher_test.py::Threading::test_greenthread 282s tests/patcher_test.py::Threading::test_keyerror 282s [gw1] [ 48%] PASSED tests/patcher_test.py::Threading::test_keyerror 282s tests/patcher_test.py::Threading::test_tpool 282s [gw0] [ 49%] PASSED tests/greenpool_test.py::Stress::test_imap_50 282s tests/greenpool_test.py::Stress::test_imap_500 282s [gw1] [ 49%] PASSED tests/patcher_test.py::Threading::test_tpool 283s tests/patcher_test.py::Os::test_waitpid 283s [gw1] [ 49%] PASSED tests/patcher_test.py::Os::test_waitpid 283s tests/patcher_test.py::GreenThreadWrapper::test_ident 283s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_ident 284s tests/patcher_test.py::GreenThreadWrapper::test_is_alive 284s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_alive 284s tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 284s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 284s tests/patcher_test.py::GreenThreadWrapper::test_join 284s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_join 285s tests/patcher_test.py::GreenThreadWrapper::test_name 285s [gw1] [ 50%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_name 285s tests/patcher_test.py::test_patcher_existing_locks_early 285s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_early 286s tests/patcher_test.py::test_patcher_existing_locks_late 286s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_late 286s tests/patcher_test.py::test_patcher_existing_locks_unlocked 286s [gw1] [ 50%] SKIPPED tests/patcher_test.py::test_patcher_existing_locks_unlocked 286s tests/patcher_test.py::test_patcher_existing_logging_module_lock 286s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_logging_module_lock 286s tests/patcher_test.py::test_importlib_lock 286s [gw1] [ 50%] PASSED tests/patcher_test.py::test_importlib_lock 287s tests/patcher_test.py::test_threading_condition 287s [gw1] [ 50%] PASSED tests/patcher_test.py::test_threading_condition 287s tests/patcher_test.py::test_threading_join 287s [gw0] [ 50%] PASSED tests/greenpool_test.py::Stress::test_imap_500 288s tests/greenpool_test.py::Stress::test_ordering_5 288s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_ordering_5 288s tests/greenpool_test.py::Stress::test_ordering_50 288s [gw1] [ 51%] PASSED tests/patcher_test.py::test_threading_join 288s tests/patcher_test.py::test_socketserver_selectors 288s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_ordering_50 288s tests/greenpool_test.py::Stress::test_with_intpool 288s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_with_intpool 288s tests/greenthread_test.py::Spawn::test_kill 288s [gw0] [ 51%] PASSED tests/greenthread_test.py::Spawn::test_kill 288s tests/greenthread_test.py::Spawn::test_kill_meth 288s [gw0] [ 51%] PASSED tests/greenthread_test.py::Spawn::test_kill_meth 288s tests/greenthread_test.py::Spawn::test_kill_n 288s [gw0] [ 51%] PASSED tests/greenthread_test.py::Spawn::test_kill_n 289s tests/greenthread_test.py::Spawn::test_link 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link 289s tests/greenthread_test.py::Spawn::test_link_after_exited 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link_after_exited 289s tests/greenthread_test.py::Spawn::test_link_relinks 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link_relinks 289s tests/greenthread_test.py::Spawn::test_n 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_n 289s tests/greenthread_test.py::Spawn::test_simple 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_simple 289s tests/greenthread_test.py::SpawnAfter::test_basic 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::SpawnAfter::test_basic 289s tests/greenthread_test.py::SpawnAfter::test_cancel 289s [gw0] [ 52%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel 289s tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 289s [gw1] [ 53%] PASSED tests/patcher_test.py::test_socketserver_selectors 289s tests/patcher_test.py::test_blocking_select_methods_are_deleted 289s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 289s tests/greenthread_test.py::SpawnAfter::test_kill 289s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill 289s tests/greenthread_test.py::SpawnAfter::test_kill_already_started 289s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_already_started 289s tests/greenthread_test.py::SpawnAfter::test_kill_meth 289s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_meth 289s tests/greenthread_test.py::SpawnAfter::test_kill_n 289s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_n 289s tests/greenthread_test.py::SpawnAfter::test_link 289s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_link 289s tests/greenthread_test.py::SpawnAfter::test_link_after_exited 289s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_after_exited 289s tests/greenthread_test.py::SpawnAfter::test_link_relinks 289s [gw1] [ 54%] PASSED tests/patcher_test.py::test_blocking_select_methods_are_deleted 289s tests/patcher_test.py::test_regular_file_readall 289s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_relinks 289s tests/greenthread_test.py::SpawnAfter::test_n 289s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_n 289s tests/greenthread_test.py::SpawnAfter::test_simple 289s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_simple 290s tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 290s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 290s tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 290s [gw1] [ 54%] PASSED tests/patcher_test.py::test_regular_file_readall 290s tests/patcher_test.py::test_threading_current 290s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 290s tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 290s [gw1] [ 55%] PASSED tests/patcher_test.py::test_threading_current 290s tests/patcher_test.py::test_threadpoolexecutor 290s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 290s tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 290s [gw0] [ 55%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 290s tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 290s [gw0] [ 55%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 290s tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 290s [gw0] [ 55%] PASSED tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 290s tests/hub_test.py::TestScheduleCall::test_global 290s [gw0] [ 55%] PASSED tests/hub_test.py::TestScheduleCall::test_global 290s tests/hub_test.py::TestScheduleCall::test_local 290s [gw1] [ 55%] PASSED tests/patcher_test.py::test_threadpoolexecutor 290s tests/patcher_test.py::test_builtin 290s [gw0] [ 56%] PASSED tests/hub_test.py::TestScheduleCall::test_local 290s tests/hub_test.py::TestScheduleCall::test_ordering 290s [gw0] [ 56%] PASSED tests/hub_test.py::TestScheduleCall::test_ordering 291s tests/hub_test.py::TestDebug::test_debug_listeners 291s [gw0] [ 56%] PASSED tests/hub_test.py::TestDebug::test_debug_listeners 291s tests/hub_test.py::TestDebug::test_timer_exceptions 291s [gw0] [ 56%] PASSED tests/hub_test.py::TestDebug::test_timer_exceptions 291s tests/hub_test.py::TestExceptionInMainloop::test_sleep 291s [gw0] [ 56%] PASSED tests/hub_test.py::TestExceptionInMainloop::test_sleep 291s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 291s [gw0] [ 56%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 291s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 291s [gw0] [ 56%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 291s tests/hub_test.py::TestHubBlockingDetector::test_block_detect 291s [gw1] [ 57%] PASSED tests/patcher_test.py::test_builtin 291s tests/patcher_test.py::test_open_kwargs 291s [gw1] [ 57%] PASSED tests/patcher_test.py::test_open_kwargs 291s tests/patcher_test.py::test_patcher_existing_locks 291s [gw1] [ 57%] PASSED tests/patcher_test.py::test_patcher_existing_locks 292s tests/patcher_test.py::test_patcher_existing_locks_exception 292s [gw0] [ 57%] PASSED tests/hub_test.py::TestHubBlockingDetector::test_block_detect 292s tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 292s [gw1] [ 57%] PASSED tests/patcher_test.py::test_patcher_existing_locks_exception 292s tests/patcher_test.py::test_patcher_threading_subclass_done 292s [gw0] [ 57%] SKIPPED tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 292s tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 292s [gw1] [ 57%] PASSED tests/patcher_test.py::test_patcher_threading_subclass_done 292s tests/pools_test.py::TestIntPool::test_blocks_on_pool 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_blocks_on_pool 292s tests/pools_test.py::TestIntPool::test_create_contention 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_create_contention 292s tests/pools_test.py::TestIntPool::test_exhaustion 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_exhaustion 292s tests/pools_test.py::TestIntPool::test_free 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_free 292s tests/pools_test.py::TestIntPool::test_integers 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_integers 292s tests/pools_test.py::TestIntPool::test_ordering 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_ordering 292s tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 292s [gw1] [ 58%] PASSED tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 292s tests/pools_test.py::TestIntPool::test_putting_to_queue 292s [gw1] [ 59%] PASSED tests/pools_test.py::TestIntPool::test_putting_to_queue 292s tests/pools_test.py::TestIntPool::test_resize 292s [gw1] [ 59%] PASSED tests/pools_test.py::TestIntPool::test_resize 292s tests/pools_test.py::TestAbstract::test_abstract 292s [gw1] [ 59%] PASSED tests/pools_test.py::TestAbstract::test_abstract 292s tests/pools_test.py::TestIntPool2::test_something 292s [gw1] [ 59%] PASSED tests/pools_test.py::TestIntPool2::test_something 292s tests/pools_test.py::TestOrderAsStack::test_ordering 292s [gw1] [ 59%] PASSED tests/pools_test.py::TestOrderAsStack::test_ordering 292s tests/pools_test.py::TestCreateRaises::test_it 292s [gw1] [ 59%] PASSED tests/pools_test.py::TestCreateRaises::test_it 292s tests/queue_test.py::TestQueue::test_channel_send 292s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_channel_send 292s tests/queue_test.py::TestQueue::test_channel_sender_timing_out 292s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_channel_sender_timing_out 292s tests/queue_test.py::TestQueue::test_channel_wait 292s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_channel_wait 292s tests/queue_test.py::TestQueue::test_channel_waiters 292s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_channel_waiters 292s tests/queue_test.py::TestQueue::test_getting_before_sending 292s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_getting_before_sending 292s tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 292s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 293s tests/queue_test.py::TestQueue::test_max_size 293s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_max_size 293s tests/queue_test.py::TestQueue::test_multiple_waiters 293s [gw1] [ 60%] PASSED tests/queue_test.py::TestQueue::test_multiple_waiters 293s tests/queue_test.py::TestQueue::test_resize_down 293s [gw1] [ 61%] PASSED tests/queue_test.py::TestQueue::test_resize_down 293s tests/queue_test.py::TestQueue::test_resize_to_Unlimited 293s [gw0] [ 61%] PASSED tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 293s tests/hub_test.py::test_repeated_select_bad_fd 293s [gw0] [ 61%] PASSED tests/hub_test.py::test_repeated_select_bad_fd 293s tests/hub_test.py::test_fork 293s [gw1] [ 61%] PASSED tests/queue_test.py::TestQueue::test_resize_to_Unlimited 293s tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 293s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 293s tests/ssl_test.py::SSLTest::test_regression_gh_17 293s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_regression_gh_17 293s tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 293s [gw0] [ 61%] PASSED tests/hub_test.py::test_fork 293s tests/hub_test.py::test_fork_simple 293s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 293s tests/ssl_test.py::SSLTest::test_ssl_close 293s [gw1] [ 62%] PASSED tests/ssl_test.py::SSLTest::test_ssl_close 293s tests/ssl_test.py::SSLTest::test_ssl_connect 293s [gw1] [ 62%] PASSED tests/ssl_test.py::SSLTest::test_ssl_connect 293s tests/ssl_test.py::SSLTest::test_ssl_context 293s [gw1] [ 62%] PASSED tests/ssl_test.py::SSLTest::test_ssl_context 293s tests/ssl_test.py::SSLTest::test_ssl_unwrap 293s [gw1] [ 62%] PASSED tests/ssl_test.py::SSLTest::test_ssl_unwrap 293s tests/subprocess_test.py::test_subprocess_wait 293s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_subprocess_wait 293s tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 293s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 293s tests/subprocess_test.py::test_universal_lines 293s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_universal_lines 294s tests/subprocess_test.py::test_patched_communicate_290 294s [gw0] [ 63%] PASSED tests/hub_test.py::test_fork_simple 294s tests/hub_test.py::TestDeadRunLoop::test_kill 294s [gw1] [ 63%] PASSED tests/subprocess_test.py::test_patched_communicate_290 294s tests/subprocess_test.py::test_check_call_without_timeout_works 294s [gw1] [ 63%] PASSED tests/subprocess_test.py::test_check_call_without_timeout_works 294s tests/subprocess_test.py::test_exception_identity 294s [gw0] [ 63%] PASSED tests/hub_test.py::TestDeadRunLoop::test_kill 294s tests/hub_test.py::TestDeadRunLoop::test_parent 294s [gw1] [ 63%] PASSED tests/subprocess_test.py::test_exception_identity 294s tests/test__event.py::TestEvent::test_send 294s [gw1] [ 63%] PASSED tests/test__event.py::TestEvent::test_send 294s tests/test__event.py::TestEvent::test_send_exc 294s [gw1] [ 63%] PASSED tests/test__event.py::TestEvent::test_send_exc 294s tests/test__greenness.py::test_urllib 294s [gw1] [ 64%] PASSED tests/test__greenness.py::test_urllib 295s tests/test__refcount.py::test_clean_exit 295s [gw0] [ 64%] PASSED tests/hub_test.py::TestDeadRunLoop::test_parent 295s tests/queue_test.py::TestQueue::test_resize_up 295s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_resize_up 295s tests/queue_test.py::TestQueue::test_send_first 295s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_send_first 295s tests/queue_test.py::TestQueue::test_send_last 295s [gw1] [ 64%] PASSED tests/test__refcount.py::test_clean_exit 295s tests/test__refcount.py::test_timeout_exit 295s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_send_last 295s tests/queue_test.py::TestQueue::test_task_done 295s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_task_done 295s tests/queue_test.py::TestQueue::test_two_bogus_waiters 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_two_bogus_waiters 295s tests/queue_test.py::TestQueue::test_two_waiters_one_dies 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_two_waiters_one_dies 295s tests/queue_test.py::TestQueue::test_waiters_that_cancel 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_waiters_that_cancel 295s tests/queue_test.py::TestQueue::test_waiting 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_waiting 295s tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 295s tests/queue_test.py::TestQueue::test_zero_max_size 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_zero_max_size 295s tests/queue_test.py::TestNoWait::test_get_nowait_simple 295s [gw0] [ 65%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_simple 295s tests/queue_test.py::TestNoWait::test_get_nowait_unlock 295s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_unlock 295s tests/queue_test.py::TestNoWait::test_put_nowait_simple 295s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_simple 295s tests/queue_test.py::TestNoWait::test_put_nowait_unlock 295s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_unlock 295s [gw1] [ 66%] PASSED tests/test__refcount.py::test_timeout_exit 295s tests/queue_test.py::TestNoWait::test_wait_except 295s tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 295s [gw1] [ 66%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 295s tests/test__socket_errors.py::TestSocketErrors::test_timeout 295s [gw0] [ 66%] PASSED tests/queue_test.py::TestNoWait::test_wait_except 295s tests/semaphore_test.py::TestSemaphore::test_bounded 295s [gw0] [ 66%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded 295s tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 295s [gw0] [ 66%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 295s tests/semaphore_test.py::TestSemaphore::test_non_blocking 295s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_non_blocking 296s tests/semaphore_test.py::TestSemaphore::test_timeout 296s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout 296s tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 296s [gw0] [ 67%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 296s tests/semaphore_test.py::test_semaphore_contention 296s [gw0] [ 67%] PASSED tests/semaphore_test.py::test_semaphore_contention 296s tests/semaphore_test.py::test_semaphore_type_check 296s [gw0] [ 67%] PASSED tests/semaphore_test.py::test_semaphore_type_check 296s tests/socket_test.py::test_recv_type 296s [gw1] [ 67%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout 296s tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 296s [gw0] [ 67%] PASSED tests/socket_test.py::test_recv_type 297s tests/socket_test.py::test_recv_into_type 297s [gw0] [ 68%] PASSED tests/socket_test.py::test_recv_into_type 297s tests/socket_test.py::test_socket_api_family 297s [gw0] [ 68%] PASSED tests/socket_test.py::test_socket_api_family 297s tests/socket_test.py::test_getaddrinfo_ipv6_scope 297s [gw0] [ 68%] PASSED tests/socket_test.py::test_getaddrinfo_ipv6_scope 297s tests/socket_test.py::test_error_is_timeout 297s [gw0] [ 68%] PASSED tests/socket_test.py::test_error_is_timeout 297s tests/socket_test.py::test_connect_ex_success 297s [gw0] [ 68%] PASSED tests/socket_test.py::test_connect_ex_success 297s tests/ssl_test.py::SSLTest::test_client_check_hostname 297s [gw0] [ 68%] PASSED tests/ssl_test.py::SSLTest::test_client_check_hostname 297s tests/ssl_test.py::SSLTest::test_context_version_setters 297s [gw0] [ 68%] PASSED tests/ssl_test.py::SSLTest::test_context_version_setters 297s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 297s [gw0] [ 69%] PASSED tests/ssl_test.py::SSLTest::test_context_wrapped_accept 297s tests/ssl_test.py::SSLTest::test_duplex_response 297s [gw0] [ 69%] PASSED tests/ssl_test.py::SSLTest::test_duplex_response 297s tests/ssl_test.py::SSLTest::test_explicit_keys_accept 297s [gw0] [ 69%] PASSED tests/ssl_test.py::SSLTest::test_explicit_keys_accept 297s tests/ssl_test.py::SSLTest::test_greensslobject 297s [gw0] [ 69%] PASSED tests/ssl_test.py::SSLTest::test_greensslobject 297s tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 297s [gw1] [ 69%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 297s tests/test__socket_errors.py::test_create_connection_refused 297s [gw1] [ 69%] PASSED tests/test__socket_errors.py::test_create_connection_refused 297s tests/test_infrastructure_tests.py::test_run_python_timeout 297s [gw1] [ 69%] PASSED tests/test_infrastructure_tests.py::test_run_python_timeout 297s tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 297s [gw1] [ 70%] PASSED tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 297s tests/thread_test.py::Locals::test_assignment 297s [gw1] [ 70%] PASSED tests/thread_test.py::Locals::test_assignment 298s tests/thread_test.py::Locals::test_calling_methods 298s [gw1] [ 70%] PASSED tests/thread_test.py::Locals::test_calling_methods 298s tests/thread_test.py::Locals::test_calls_init 298s [gw1] [ 70%] PASSED tests/thread_test.py::Locals::test_calls_init 298s tests/thread_test.py::Locals::test_no_leaking 298s [gw0] [ 70%] PASSED tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 298s tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 298s [gw1] [ 70%] PASSED tests/thread_test.py::Locals::test_no_leaking 298s tests/thread_test.py::test_compat_lock_release 298s [gw1] [ 70%] PASSED tests/thread_test.py::test_compat_lock_release 298s tests/thread_test.py::test_reinit 298s [gw1] [ 71%] PASSED tests/thread_test.py::test_reinit 298s tests/thread_test.py::test_can_use_eventlet_in_os_threads 298s [gw0] [ 71%] PASSED tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 298s tests/tpool_test.py::TestTpool::test_wrap_dict 298s [gw0] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_dict 298s tests/tpool_test.py::TestTpool::test_wrap_eq 298s [gw0] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_eq 298s tests/tpool_test.py::TestTpool::test_wrap_getitem 298s [gw0] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_getitem 298s tests/tpool_test.py::TestTpool::test_wrap_hash 298s [gw0] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_hash 298s tests/tpool_test.py::TestTpool::test_wrap_ints 298s [gw0] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_wrap_ints 298s tests/tpool_test.py::TestTpool::test_wrap_iterator 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator 298s tests/tpool_test.py::TestTpool::test_wrap_iterator2 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator2 298s tests/tpool_test.py::TestTpool::test_wrap_module_class 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_module_class 298s tests/tpool_test.py::TestTpool::test_wrap_nonzero 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_nonzero 298s tests/tpool_test.py::TestTpool::test_wrap_setitem 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_setitem 298s tests/tpool_test.py::TestTpool::test_wrap_string 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_string 298s tests/tpool_test.py::TestTpool::test_wrap_tuple 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_tuple 298s tests/tpool_test.py::TestTpool::test_wrap_uniterable 298s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_wrap_uniterable 299s tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 299s [gw1] [ 73%] PASSED tests/thread_test.py::test_can_use_eventlet_in_os_threads 299s tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 299s [gw1] [ 73%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 299s tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 299s [gw1] [ 73%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 299s tests/timeout_test.py::TestDirectRaise::test_repr 299s [gw1] [ 73%] PASSED tests/timeout_test.py::TestDirectRaise::test_repr 299s tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 299s [gw1] [ 73%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 299s tests/timeout_test.py::TestWithTimeout::test_with_timeout 299s [gw1] [ 73%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_timeout 299s tests/timeout_test.py::test_is_timeout_attribute 299s [gw1] [ 73%] PASSED tests/timeout_test.py::test_is_timeout_attribute 299s tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 299s tests/timeout_with_statement_test.py::Test::test_cancellation 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_cancellation 299s tests/timeout_with_statement_test.py::Test::test_dummy_timer 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_dummy_timer 299s tests/timeout_with_statement_test.py::Test::test_nested_timeout 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_nested_timeout 299s tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 299s tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 299s tests/timeout_with_statement_test.py::Test::test_raising_exception_class 299s [gw1] [ 74%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exception_class 299s tests/timeout_with_statement_test.py::Test::test_raising_self 299s [gw1] [ 75%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self 299s tests/timeout_with_statement_test.py::Test::test_raising_self_true 299s [gw0] [ 75%] PASSED tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 299s tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 299s [gw1] [ 75%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self_true 300s tests/timeout_with_statement_test.py::Test::test_ref 300s [gw1] [ 75%] PASSED tests/timeout_with_statement_test.py::Test::test_ref 300s tests/timeout_with_statement_test.py::Test::test_silent_block 300s [gw0] [ 75%] PASSED tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 300s tests/tpool_test.py::test_isolate_from_socket_default_timeout 300s [gw1] [ 75%] PASSED tests/timeout_with_statement_test.py::Test::test_silent_block 300s tests/timer_test.py::TestTimer::test_copy 300s [gw1] [ 75%] PASSED tests/timer_test.py::TestTimer::test_copy 300s tests/timer_test.py::TestTimer::test_schedule 300s [gw1] [ 76%] PASSED tests/timer_test.py::TestTimer::test_schedule 300s tests/tpool_test.py::TestTpool::test_autowrap 300s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_autowrap 300s tests/tpool_test.py::TestTpool::test_autowrap_both 300s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_both 300s tests/tpool_test.py::TestTpool::test_autowrap_names 300s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_names 300s tests/tpool_test.py::TestTpool::test_callable 300s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_callable 300s tests/tpool_test.py::TestTpool::test_callable_iterator 300s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_callable_iterator 300s tests/tpool_test.py::TestTpool::test_contention 300s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_contention 300s tests/tpool_test.py::TestTpool::test_eventlet_timeout 300s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_eventlet_timeout 300s tests/tpool_test.py::TestTpool::test_killall 300s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_killall 300s tests/tpool_test.py::TestTpool::test_killall_remaining_results 300s [gw0] [ 77%] PASSED tests/tpool_test.py::test_isolate_from_socket_default_timeout 301s tests/tpool_test.py::test_exception_leak 301s [gw0] [ 77%] PASSED tests/tpool_test.py::test_exception_leak 301s tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 301s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_killall_remaining_results 301s tests/tpool_test.py::TestTpool::test_multiple_wraps 301s [gw0] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 301s tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 301s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_multiple_wraps 301s tests/tpool_test.py::TestTpool::test_raising_exceptions 301s [gw0] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 301s tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 301s [gw1] [ 78%] PASSED tests/tpool_test.py::TestTpool::test_raising_exceptions 301s tests/tpool_test.py::TestTpool::test_timeout 301s [gw0] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 301s tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 301s [gw0] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 301s tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 301s [gw0] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 301s tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 301s [gw0] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 301s [gw0] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 301s [gw0] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 301s [gw0] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 301s [gw1] [ 79%] PASSED tests/tpool_test.py::TestTpool::test_timeout 301s tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 301s [gw0] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 301s [gw1] [ 79%] PASSED tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 301s tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 301s [gw0] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 301s [gw1] [ 79%] PASSED tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 301s tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 301s [gw0] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 301s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 301s tests/websocket_test.py::TestWebSocket::test_close_idle 301s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 301s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_close_idle 301s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 301s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 301s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 301s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 301s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 301s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 301s tests/websocket_test.py::TestWebSocket::test_empty_query_string 301s [gw0] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 302s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 302s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_empty_query_string 302s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 302s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 302s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 302s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 302s tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 302s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 302s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 302s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 302s tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 302s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 302s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 302s [gw0] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 302s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 302s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 302s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 302s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 302s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 302s [gw0] [ 82%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 302s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 302s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 302s tests/websocket_test.py::TestWebSocket::test_incorrect_headers 302s [gw0] [ 82%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 302s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 302s [gw1] [ 82%] PASSED tests/websocket_test.py::TestWebSocket::test_incorrect_headers 302s tests/websocket_test.py::TestWebSocket::test_query_string 302s [gw0] [ 82%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 302s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 302s [gw1] [ 83%] PASSED tests/websocket_test.py::TestWebSocket::test_query_string 302s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 302s [gw0] [ 83%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 302s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 302s [gw0] [ 83%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 302s [gw1] [ 83%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 302s tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 302s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 302s [gw0] [ 83%] PASSED tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 302s tests/websocket_test.py::TestWebSocketObject::test_recieve 302s [gw0] [ 83%] PASSED tests/websocket_test.py::TestWebSocketObject::test_recieve 302s tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 302s [gw1] [ 83%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 302s tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 302s [gw0] [ 83%] PASSED tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 302s tests/wsgi_test.py::TestHttpd::test_001_server 302s [gw1] [ 84%] PASSED tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 302s tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 302s [gw0] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_001_server 302s tests/wsgi_test.py::TestHttpd::test_002_keepalive 302s [gw0] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_002_keepalive 302s tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 302s [gw0] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 302s tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 302s [gw1] [ 84%] PASSED tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 302s tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 302s [gw0] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 302s tests/wsgi_test.py::TestHttpd::test_007_get_arg 302s [gw0] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_007_get_arg 302s tests/wsgi_test.py::TestHttpd::test_008_correctresponse 302s [gw0] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_008_correctresponse 303s tests/wsgi_test.py::TestHttpd::test_009_chunked_response 303s [gw0] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_009_chunked_response 303s [gw1] [ 85%] PASSED tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 303s tests/websocket_test.py::TestWebSocketObject::test_close_ws 303s tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 303s [gw1] [ 85%] PASSED tests/websocket_test.py::TestWebSocketObject::test_close_ws 303s [gw0] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 303s tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 303s tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 303s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 303s [gw0] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 303s tests/wsgi_test.py::TestHttpd::test_012_ssl_server 303s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 303s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 303s [gw0] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_012_ssl_server 303s tests/wsgi_test.py::TestHttpd::test_013_empty_return 303s tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 303s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 303s tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 303s [gw0] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_013_empty_return 303s tests/wsgi_test.py::TestHttpd::test_014_chunked_post 303s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 303s tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 303s [gw1] [ 86%] SKIPPED tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 303s tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 303s [gw0] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_014_chunked_post 303s tests/wsgi_test.py::TestHttpd::test_015_write 303s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 303s tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 303s [gw0] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_015_write 303s tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 303s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 303s tests/wsgi_test.py::TestHttpd::test_022_custom_pool 303s [gw0] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 303s tests/wsgi_test.py::TestHttpd::test_026_log_format 303s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_022_custom_pool 303s tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 303s [gw0] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_026_log_format 303s tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 303s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 303s tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 303s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 303s tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 303s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 303s tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 303s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 303s tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 303s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 303s tests/wsgi_test.py::TestHttpd::test_029_posthooks 303s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 303s tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 303s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_029_posthooks 303s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 303s tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 303s tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 303s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 303s tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 303s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 303s tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 303s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 303s tests/wsgi_test.py::TestHttpd::test_025_accept_errors 303s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 303s tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 303s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_025_accept_errors 303s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 303s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 303s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 303s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 303s tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 303s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 303s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 303s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 303s tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 303s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 303s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 303s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 303s tests/wsgi_test.py::TestHttpd::test_client_disconnect 303s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 304s tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 304s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_client_disconnect 304s tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 304s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 304s tests/wsgi_test.py::TestHttpd::test_close_idle_connections 304s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections 304s tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 304s tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 304s tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 304s tests/wsgi_test.py::TestHttpd::test_debug 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_debug 304s tests/wsgi_test.py::TestHttpd::test_log_disable 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_disable 304s tests/wsgi_test.py::TestHttpd::test_log_unix_address 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_unix_address 304s tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 304s [gw1] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 304s tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 304s tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 304s tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 304s tests/wsgi_test.py::TestHttpd::test_path_info_decoding 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_decoding 304s tests/wsgi_test.py::TestHttpd::test_path_info_latin1 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_latin1 304s tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 304s tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 304s [gw1] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 305s tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 305s tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 305s tests/wsgi_test.py::TestHttpd::test_socket_remains_open 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_socket_remains_open 305s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 305s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 305s tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 305s tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 305s [gw1] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 305s tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 305s tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 305s tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 305s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 305s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 305s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 305s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 305s tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 305s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 306s tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 306s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 306s tests/wsgi_test.py::TestHttpd::test_env_header_stripping 306s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 306s tests/wsgi_test.py::TestChunkedInput::test_dirt 306s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_env_header_stripping 306s tests/wsgi_test.py::TestHttpd::test_env_headers 306s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_dirt 306s tests/wsgi_test.py::TestChunkedInput::test_short_read 306s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_env_headers 306s tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 306s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read 306s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 306s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 306s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 306s [gw0] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 306s tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 306s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 306s tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 306s [gw0] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 306s tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 306s [gw0] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 306s tests/wsgi_test.py::TestHttpd::test_headers_raw 306s [gw0] [ 96%] PASSED tests/wsgi_test.py::TestHttpd::test_headers_raw 306s tests/wsgi_test.py::TestHttpd::test_ipv6 306s [gw0] [ 96%] SKIPPED tests/wsgi_test.py::TestHttpd::test_ipv6 306s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 306s [gw1] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 306s tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 306s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 306s tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 306s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 306s tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 306s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 306s tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 306s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 306s tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 306s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 306s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 306s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 306s tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 306s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 306s tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 306s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 306s tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 306s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 306s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 306s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 306s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 306s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 307s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 307s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 307s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 307s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 307s tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 307s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 307s tests/zmq_test.py::TestQueueLock::test_errors 307s [gw1] [ 99%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 307s tests/zmq_test.py::TestQueueLock::test_count 307s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_errors 307s tests/zmq_test.py::TestQueueLock::test_nested_acquire 307s [gw1] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_count 307s tests/zmq_test.py::TestQueueLock::test_queue_lock_order 307s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_nested_acquire 307s tests/zmq_test.py::TestBlockedThread::test_block 307s [gw1] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_queue_lock_order 307s tests/zmq_test.py::test_recv_json_no_args 307s [gw1] [ 99%] PASSED tests/zmq_test.py::test_recv_json_no_args 307s [gw0] [ 99%] PASSED tests/zmq_test.py::TestBlockedThread::test_block 307s tests/zmq_test.py::test_recv_timeout 307s [gw0] [100%] PASSED tests/zmq_test.py::test_recv_timeout 307s 307s =============================== warnings summary =============================== 307s tests/api_test.py: 2 warnings 307s tests/convenience_test.py: 2 warnings 307s tests/greenio_test.py: 1 warning 307s tests/ssl_test.py: 26 warnings 307s tests/websocket_test.py: 2 warnings 307s tests/wsgi_test.py: 9 warnings 307s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 307s context = _original_sslcontext(protocol=ssl_version) 307s 307s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 307s tests/backdoor_test.py::BackdoorTest::test_server 307s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 307s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper mode='rw' encoding='UTF-8'> 307s 307s Traceback (most recent call last): 307s File "/usr/lib/python3.13/socket.py", line 737, in write 307s return self._sock.send(b) 307s ~~~~~~~~~~~~~~~^^^ 307s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 383, in send 307s return self._send_loop(self.fd.send, data, flags) 307s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 307s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 370, in _send_loop 307s return send_method(data, *args) 307s BrokenPipeError: [Errno 32] Broken pipe 307s 307s During handling of the above exception, another exception occurred: 307s 307s Traceback (most recent call last): 307s File "/usr/lib/python3.13/socket.py", line 737, in write 307s return self._sock.send(b) 307s ~~~~~~~~~~~~~~~^^^ 307s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 383, in send 307s return self._send_loop(self.fd.send, data, flags) 307s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 307s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 370, in _send_loop 307s return send_method(data, *args) 307s BrokenPipeError: [Errno 32] Broken pipe 307s 307s Enable tracemalloc to get traceback where the object was allocated. 307s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 307s warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) 307s 307s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 307s /tmp/autopkgtest.YEdMQf/build.l07/src/tests/not_asyncio_test.py:22: RuntimeWarning: coroutine 'test_spawn_from_coroutine_errors..go' was never awaited 307s with pytest.raises(RuntimeError): 307s Enable tracemalloc to get traceback where the object was allocated. 307s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 307s 307s tests/openssl_test.py::test_import 307s tests/openssl_test.py::test_import 307s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography. 307s from OpenSSL.crypto import * 307s 307s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 307s /tmp/autopkgtest.YEdMQf/build.l07/src/tests/ssl_test.py:333: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 307s context = ssl.SSLContext(ssl.PROTOCOL_TLS) 307s 307s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 307s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated 307s context = _original_sslcontext(protocol=ssl_version) 307s 307s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 307s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenthread.py:272: DeprecationWarning: capitalize_response_headers is disabled. 307s Please, make sure you know what you are doing. 307s HTTP headers names are case-insensitive per RFC standard. 307s Most likely, you need to fix HTTP parsing in your client software. 307s result = function(*args, **kwargs) 307s 307s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 307s ================ 630 passed, 89 skipped, 51 warnings in 47.37s ================= 308s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 308s !! 308s 308s ******************************************************************************** 308s 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). 308s 308s By 2026-Feb-18, you need to update your project and remove deprecated calls 308s or your builds will no longer be supported. 308s 308s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 308s ******************************************************************************** 308s 308s !! 308s corresp(dist, value, root_dir) 308s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 308s !! 308s 308s ******************************************************************************** 308s Please consider removing the following classifiers in favor of a SPDX license expression: 308s 308s License :: OSI Approved :: MIT License 308s 308s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 308s ******************************************************************************** 308s 308s !! 308s dist._finalize_license_expression() 308s /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 308s !! 308s 308s ******************************************************************************** 308s Please consider removing the following classifiers in favor of a SPDX license expression: 308s 308s License :: OSI Approved :: MIT License 308s 308s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 308s ******************************************************************************** 308s 308s !! 308s self._finalize_license_expression() 308s running install 308s /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 308s !! 308s 308s ******************************************************************************** 308s Please avoid running ``setup.py`` directly. 308s Instead, use pypa/build, pypa/installer or other 308s standards-based tools. 308s 308s See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 308s ******************************************************************************** 308s 308s !! 308s self.initialize_options() 308s running build 308s running build_py 308s running egg_info 308s writing eventlet.egg-info/PKG-INFO 308s writing dependency_links to eventlet.egg-info/dependency_links.txt 308s writing requirements to eventlet.egg-info/requires.txt 308s writing top-level names to eventlet.egg-info/top_level.txt 308s reading manifest file 'eventlet.egg-info/SOURCES.txt' 308s reading manifest template 'MANIFEST.in' 308s warning: no files found matching 'Makefile' under directory 'doc' 308s adding license file 'LICENSE' 308s adding license file 'AUTHORS' 308s writing manifest file 'eventlet.egg-info/SOURCES.txt' 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green' to be distributed and are 308s already explicitly excluding 'eventlet.green' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.OpenSSL' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.OpenSSL' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.OpenSSL' to be distributed and are 308s already explicitly excluding 'eventlet.green.OpenSSL' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.OpenSSL.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.OpenSSL.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.OpenSSL.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.green.OpenSSL.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.green.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.http' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.http' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.http' to be distributed and are 308s already explicitly excluding 'eventlet.green.http' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.http.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.http.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.http.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.green.http.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.urllib' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.urllib' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.urllib' to be distributed and are 308s already explicitly excluding 'eventlet.green.urllib' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.green.urllib.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.green.urllib.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.green.urllib.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.green.urllib.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.greenio' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.greenio' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.greenio' to be distributed and are 308s already explicitly excluding 'eventlet.greenio' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.greenio.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.greenio.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.greenio.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.greenio.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.hubs' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.hubs' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.hubs' to be distributed and are 308s already explicitly excluding 'eventlet.hubs' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.hubs.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.hubs.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.hubs.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.hubs.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.support' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.support' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.support' to be distributed and are 308s already explicitly excluding 'eventlet.support' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s creating build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/_version.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/asyncio.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/backdoor.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/convenience.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/corolocal.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/dagpool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/db_pool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/debug.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/event.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/greenpool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/greenthread.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/lock.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/patcher.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/pools.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/queue.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/semaphore.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/timeout.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/tpool.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/websocket.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s copying eventlet/__pycache__/wsgi.cpython-313.pyc -> build/lib/eventlet/__pycache__ 308s creating build/lib/eventlet/green/OpenSSL/__pycache__ 308s copying eventlet/green/OpenSSL/__pycache__/SSL.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 308s copying eventlet/green/OpenSSL/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 308s copying eventlet/green/OpenSSL/__pycache__/crypto.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 308s copying eventlet/green/OpenSSL/__pycache__/tsafe.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 308s copying eventlet/green/OpenSSL/__pycache__/version.cpython-313.pyc -> build/lib/eventlet/green/OpenSSL/__pycache__ 308s creating build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/BaseHTTPServer.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/MySQLdb.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/Queue.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/SocketServer.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/_socket_nodns.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/builtin.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/ftplib.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/httplib.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/os.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support.__pycache__' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.support.__pycache__' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.support.__pycache__' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.support.__pycache__' to be distributed and are 308s already explicitly excluding 'eventlet.support.__pycache__' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.zipkin' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.zipkin' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.zipkin' to be distributed and are 308s already explicitly excluding 'eventlet.zipkin' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.zipkin._thrift' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.zipkin._thrift' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.zipkin._thrift' to be distributed and are 308s already explicitly excluding 'eventlet.zipkin._thrift' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift.zipkinCore' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.zipkin._thrift.zipkinCore' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.zipkin._thrift.zipkinCore' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.zipkin._thrift.zipkinCore' to be distributed and are 308s already explicitly excluding 'eventlet.zipkin._thrift.zipkinCore' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin.example' is absent from the `packages` configuration. 308s !! 308s 308s ******************************************************************************** 308s ############################ 308s # Package would be ignored # 308s ############################ 308s Python recognizes 'eventlet.zipkin.example' as an importable package[^1], 308s but it is absent from setuptools' `packages` configuration. 308s 308s This leads to an ambiguous overall configuration. If you want to distribute this 308s package, please make sure that 'eventlet.zipkin.example' is explicitly added 308s to the `packages` configuration field. 308s 308s Alternatively, you can also rely on setuptools' discovery methods 308s (for example by using `find_namespace_packages(...)`/`find_namespace:` 308s instead of `find_packages(...)`/`find:`). 308s 308s You can read more about "package discovery" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 308s 308s If you don't want 'eventlet.zipkin.example' to be distributed and are 308s already explicitly excluding 'eventlet.zipkin.example' via 308s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 308s you can try to use `exclude_package_data`, or `include-package-data=False` in 308s combination with a more fine grained `package-data` configuration. 308s 308s You can read more about "package data files" on setuptools documentation page: 308s 308s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 308s 308s 308s [^1]: For Python, any directory (with suitable naming) can be imported, 308s even if it does not contain any `.py` files. 308s On the other hand, currently there is no concept of package data 308s directory, all directories are treated like packages. 308s ******************************************************************************** 308s 308s !! 308s check.warn(importable) 308s copying eventlet/green/__pycache__/profile.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/select.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/selectors.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/socket.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/ssl.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/subprocess.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/thread.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/threading.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/time.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s copying eventlet/green/__pycache__/zmq.cpython-313.pyc -> build/lib/eventlet/green/__pycache__ 308s creating build/lib/eventlet/green/http/__pycache__ 308s copying eventlet/green/http/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/http/__pycache__ 308s copying eventlet/green/http/__pycache__/client.cpython-313.pyc -> build/lib/eventlet/green/http/__pycache__ 308s creating build/lib/eventlet/green/urllib/__pycache__ 308s copying eventlet/green/urllib/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 308s copying eventlet/green/urllib/__pycache__/error.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 308s copying eventlet/green/urllib/__pycache__/parse.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 308s copying eventlet/green/urllib/__pycache__/request.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 308s copying eventlet/green/urllib/__pycache__/response.cpython-313.pyc -> build/lib/eventlet/green/urllib/__pycache__ 308s creating build/lib/eventlet/greenio/__pycache__ 308s copying eventlet/greenio/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/greenio/__pycache__ 308s copying eventlet/greenio/__pycache__/base.cpython-313.pyc -> build/lib/eventlet/greenio/__pycache__ 308s copying eventlet/greenio/__pycache__/py3.cpython-313.pyc -> build/lib/eventlet/greenio/__pycache__ 308s creating build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/asyncio.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/epolls.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/hub.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/kqueue.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/poll.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/selects.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s copying eventlet/hubs/__pycache__/timer.cpython-313.pyc -> build/lib/eventlet/hubs/__pycache__ 308s creating build/lib/eventlet/support/__pycache__ 308s copying eventlet/support/__pycache__/__init__.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 308s copying eventlet/support/__pycache__/greendns.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 308s copying eventlet/support/__pycache__/greenlets.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 308s copying eventlet/support/__pycache__/psycopg2_patcher.cpython-313.pyc -> build/lib/eventlet/support/__pycache__ 308s running install_lib 308s copying build/lib/eventlet/green/OpenSSL/__pycache__/crypto.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 308s copying build/lib/eventlet/green/OpenSSL/__pycache__/version.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 308s copying build/lib/eventlet/green/OpenSSL/__pycache__/tsafe.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 308s copying build/lib/eventlet/green/OpenSSL/__pycache__/SSL.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 308s copying build/lib/eventlet/green/OpenSSL/__pycache__/__init__.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__pycache__ 308s copying build/lib/eventlet/green/http/__pycache__/client.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__pycache__ 308s copying build/lib/eventlet/green/http/__pycache__/__init__.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__pycache__ 308s copying build/lib/eventlet/green/urllib/__pycache__/response.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 308s copying build/lib/eventlet/green/urllib/__pycache__/request.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 308s copying build/lib/eventlet/green/urllib/__pycache__/__init__.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 308s copying build/lib/eventlet/green/urllib/__pycache__/error.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 308s copying build/lib/eventlet/green/urllib/__pycache__/parse.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/builtin.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/selectors.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/os.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/subprocess.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/zmq.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/select.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/ssl.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/BaseHTTPServer.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/SocketServer.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/ftplib.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/MySQLdb.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/thread.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/httplib.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/Queue.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/threading.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/time.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/green/__pycache__/profile.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__pycache__ 308s copying build/lib/eventlet/hubs/__pycache__/asyncio.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/__pycache__ 308s copying build/lib/eventlet/support/__pycache__/greendns.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__pycache__ 308s copying build/lib/eventlet/support/__pycache__/psycopg2_patcher.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__pycache__ 308s copying build/lib/eventlet/greenio/__pycache__/py3.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/__pycache__ 308s copying build/lib/eventlet/__pycache__/dagpool.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/tpool.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/lock.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/corolocal.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/debug.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/backdoor.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/websocket.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 308s copying build/lib/eventlet/__pycache__/asyncio.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 309s copying build/lib/eventlet/__pycache__/semaphore.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 309s copying build/lib/eventlet/__pycache__/_version.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 309s copying build/lib/eventlet/__pycache__/db_pool.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 309s copying build/lib/eventlet/__pycache__/wsgi.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 309s copying build/lib/eventlet/__pycache__/pools.cpython-313.pyc -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/__pycache__ 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/client.py to client.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/log.py to log.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/constants.py to constants.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/ttypes.py to ttypes.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/wsgi.py to wsgi.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/api.py to api.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/http.py to http.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/patcher.py to patcher.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/greenthread.py to greenthread.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/thread.py to thread.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/subprocess.py to subprocess.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/BaseHTTPServer.py to BaseHTTPServer.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/Queue.py to Queue.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/time.py to time.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asynchat.py to asynchat.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SocketServer.py to SocketServer.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SimpleHTTPServer.py to SimpleHTTPServer.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/select.py to select.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ssl.py to ssl.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/_socket_nodns.py to _socket_nodns.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/builtin.py to builtin.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/version.py to version.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/SSL.py to SSL.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/crypto.py to crypto.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/tsafe.py to tsafe.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/profile.py to profile.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib2.py to urllib2.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/CGIHTTPServer.py to CGIHTTPServer.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/client.py to client.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookies.py to cookies.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookiejar.py to cookiejar.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/server.py to server.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/httplib.py to httplib.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/os.py to os.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/zmq.py to zmq.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/parse.py to parse.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/error.py to error.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/response.py to response.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/request.py to request.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ftplib.py to ftplib.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/socket.py to socket.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/MySQLdb.py to MySQLdb.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/selectors.py to selectors.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/threading.py to threading.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asyncore.py to asyncore.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/timeout.py to timeout.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/db_pool.py to db_pool.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/hub.py to hub.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/pyevent.py to pyevent.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/asyncio.py to asyncio.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/epolls.py to epolls.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/poll.py to poll.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/timer.py to timer.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/kqueue.py to kqueue.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/selects.py to selects.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/event.py to event.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/coros.py to coros.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/queue.py to queue.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenpool.py to greenpool.cpython-314.pyc 309s /usr/lib/python3/dist-packages/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 309s return 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/corolocal.py to corolocal.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/tpool.py to tpool.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/asyncio.py to asyncio.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/wsgi.py to wsgi.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/semaphore.py to semaphore.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/debug.py to debug.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/convenience.py to convenience.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greendns.py to greendns.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greenlets.py to greenlets.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesss.py to stacklesss.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/psycopg2_patcher.py to psycopg2_patcher.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesspypys.py to stacklesspypys.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/pylib.py to pylib.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/dagpool.py to dagpool.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/_version.py to _version.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/py3.py to py3.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/__init__.py to __init__.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/base.py to base.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/patcher.py to patcher.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/websocket.py to websocket.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/pools.py to pools.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/lock.py to lock.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/backdoor.py to backdoor.cpython-314.pyc 309s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenthread.py to greenthread.cpython-314.pyc 309s running install_egg_info 309s removing '/debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info' (and everything under it) 309s Copying eventlet.egg-info to /debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info 309s Skipping SOURCES.txt 309s running install_scripts 310s ============================= test session starts ============================== 310s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 310s cachedir: .pytest_cache 310s rootdir: /tmp/autopkgtest.YEdMQf/build.l07/src 310s configfile: pyproject.toml 310s plugins: typeguard-4.4.4, xdist-3.8.0 310s created: 2/2 workers 310s 2 workers [717 items] 310s 310s scheduling tests via LoadScheduling 310s 310s tests/api_test.py::TestApi::test_001_trampoline_timeout 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 310s [gw1] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 310s [gw1] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 310s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 310s [gw1] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 310s [gw1] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 310s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 310s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 310s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 310s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 310s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 310s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 310s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 311s [gw1] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 311s tests/debug_test.py::TestSpew::test_line 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line 311s tests/debug_test.py::TestSpew::test_line_global 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_global 311s tests/debug_test.py::TestSpew::test_line_nofile 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nofile 311s tests/debug_test.py::TestSpew::test_line_nooutput 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_nooutput 311s tests/debug_test.py::TestSpew::test_line_novalue 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_line_novalue 311s tests/debug_test.py::TestSpew::test_spew 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_spew 311s tests/debug_test.py::TestSpew::test_unspew 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestSpew::test_unspew 311s tests/debug_test.py::TestDebug::test_everything 311s [gw1] [ 5%] PASSED tests/debug_test.py::TestDebug::test_everything 311s tests/debug_test.py::TestDebug::test_hub_exceptions 311s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_001_trampoline_timeout 311s tests/api_test.py::TestApi::test_connect_ssl 311s [gw1] [ 6%] PASSED tests/debug_test.py::TestDebug::test_hub_exceptions 311s tests/env_test.py::test_hub_selects 311s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_ssl 311s tests/api_test.py::TestApi::test_connect_tcp 311s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_connect_tcp 311s tests/api_test.py::TestApi::test_killing_dormant 311s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_killing_dormant 311s tests/api_test.py::TestApi::test_nested_with_timeout 311s [gw1] [ 6%] PASSED tests/env_test.py::test_hub_selects 311s tests/env_test.py::test_tpool_dns 311s [gw0] [ 6%] PASSED tests/api_test.py::TestApi::test_nested_with_timeout 311s tests/api_test.py::TestApi::test_tcp_listener 311s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_tcp_listener 311s tests/api_test.py::TestApi::test_timeout_cancel 311s [gw0] [ 7%] PASSED tests/api_test.py::TestApi::test_timeout_cancel 311s tests/api_test.py::test_wrap_is_timeout 311s [gw0] [ 7%] PASSED tests/api_test.py::test_wrap_is_timeout 311s tests/api_test.py::test_timeouterror_deprecated 311s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_dns 311s tests/env_test.py::test_tpool_size 311s [gw0] [ 7%] PASSED tests/api_test.py::test_timeouterror_deprecated 312s tests/api_test.py::test_zero_second_sleep 312s [gw1] [ 7%] PASSED tests/env_test.py::test_tpool_size 312s tests/env_test.py::test_tpool_negative 312s [gw0] [ 7%] PASSED tests/api_test.py::test_zero_second_sleep 312s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 312s [gw1] [ 8%] PASSED tests/env_test.py::test_tpool_negative 312s tests/env_test.py::test_tpool_zero 312s [gw0] [ 8%] PASSED tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 312s tests/backdoor_test.py::BackdoorTest::test_server 312s [gw1] [ 8%] PASSED tests/env_test.py::test_tpool_zero 312s tests/event_test.py::TestEvent::test_double_exception 312s [gw0] [ 8%] PASSED tests/backdoor_test.py::BackdoorTest::test_server 312s tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 312s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_double_exception 312s tests/event_test.py::TestEvent::test_multiple_waiters 312s [gw0] [ 8%] SKIPPED tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 312s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 312s [gw1] [ 8%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters 312s tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 312s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 312s tests/event_test.py::TestEvent::test_reset 312s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_reset 312s tests/event_test.py::TestEvent::test_waiting_for_event 312s [gw0] [ 9%] PASSED tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 312s tests/convenience_test.py::TestServe::test_blocking 312s [gw1] [ 9%] PASSED tests/event_test.py::TestEvent::test_waiting_for_event 312s tests/event_test.py::test_wait_timeout_ok 312s [gw0] [ 9%] PASSED tests/convenience_test.py::TestServe::test_blocking 312s tests/convenience_test.py::TestServe::test_called_for_each_connection 313s [gw1] [ 9%] PASSED tests/event_test.py::test_wait_timeout_ok 313s tests/event_test.py::test_wait_timeout_exceed 313s [gw0] [ 9%] PASSED tests/convenience_test.py::TestServe::test_called_for_each_connection 313s tests/convenience_test.py::TestServe::test_concurrency 313s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_concurrency 313s tests/convenience_test.py::TestServe::test_excepting_server 313s [gw1] [ 10%] PASSED tests/event_test.py::test_wait_timeout_exceed 313s tests/green_http_test.py::test_green_http_doesnt_change_original_module 313s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server 313s tests/convenience_test.py::TestServe::test_excepting_server_already_closed 313s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_excepting_server_already_closed 313s tests/convenience_test.py::TestServe::test_exiting_server 313s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_exiting_server 313s tests/convenience_test.py::TestServe::test_raising_stopserve 313s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_raising_stopserve 313s tests/convenience_test.py::TestServe::test_wrap_ssl 313s [gw0] [ 10%] PASSED tests/convenience_test.py::TestServe::test_wrap_ssl 313s tests/convenience_test.py::test_socket_reuse 313s [gw0] [ 11%] PASSED tests/convenience_test.py::test_socket_reuse 313s tests/convenience_test.py::test_reuse_random_port_warning 313s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuse_random_port_warning 313s tests/convenience_test.py::test_reuseport_oserror 313s [gw0] [ 11%] PASSED tests/convenience_test.py::test_reuseport_oserror 313s tests/dagpool_test.py::test_check_no_suspend 313s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_check_no_suspend 313s tests/dagpool_test.py::test_init 313s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_init 313s tests/dagpool_test.py::test_wait_each_empty 313s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_empty 313s tests/dagpool_test.py::test_wait_each_preload 313s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_preload 313s tests/dagpool_test.py::test_wait_each_posted 313s [gw0] [ 11%] PASSED tests/dagpool_test.py::test_wait_each_posted 313s tests/dagpool_test.py::test_wait_posted 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_posted 313s tests/dagpool_test.py::test_spawn_collision_preload 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_preload 313s tests/dagpool_test.py::test_spawn_collision_post 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_post 313s tests/dagpool_test.py::test_spawn_collision_spawn 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_collision_spawn 313s tests/dagpool_test.py::test_spawn_multiple 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_multiple 313s tests/dagpool_test.py::test_spawn_many 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_spawn_many 313s tests/dagpool_test.py::test_wait_each_all 313s [gw0] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_all 313s tests/dagpool_test.py::test_kill 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_kill 313s tests/dagpool_test.py::test_post_collision_preload 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_preload 313s tests/dagpool_test.py::test_post_collision_post 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_post 313s tests/dagpool_test.py::test_post_collision_spawn 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_spawn 313s tests/dagpool_test.py::test_post_replace 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_post_replace 313s tests/dagpool_test.py::test_getitem 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_getitem 313s tests/dagpool_test.py::test_waitall_exc 313s [gw0] [ 13%] PASSED tests/dagpool_test.py::test_waitall_exc 313s tests/dagpool_test.py::test_propagate_exc 313s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_propagate_exc 313s tests/dagpool_test.py::test_wait_each_exc 313s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_wait_each_exc 313s tests/dagpool_test.py::test_post_get_exc 313s [gw0] [ 14%] PASSED tests/dagpool_test.py::test_post_get_exc 313s tests/db_pool_test.py::test_raw_pool_issue_125 313s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_issue_125 313s tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 313s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 313s tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 313s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 313s tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 313s [gw0] [ 14%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 313s tests/db_pool_test.py::test_raw_pool_clear_update_current_size 313s [gw0] [ 15%] PASSED tests/db_pool_test.py::test_raw_pool_clear_update_current_size 313s tests/db_pool_test.py::Test01MysqlTpool::test_bool 313s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_bool 313s tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 313s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 313s tests/db_pool_test.py::Test01MysqlTpool::test_connecting 313s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connecting 313s tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 313s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 313s tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 313s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 313s tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 313s [gw0] [ 15%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 313s tests/db_pool_test.py::Test01MysqlTpool::test_put_none 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_none 313s tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 313s tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 313s tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 313s tests/db_pool_test.py::Test01MysqlTpool::test_run_query 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_query 313s tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 313s tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 313s [gw0] [ 16%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 313s tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 313s tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 313s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 313s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 313s tests/db_pool_test.py::Test02MysqlRaw::test_bool 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_bool 313s tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 313s tests/db_pool_test.py::Test02MysqlRaw::test_connecting 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connecting 313s tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 313s [gw0] [ 17%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 313s tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 313s tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 313s tests/db_pool_test.py::Test02MysqlRaw::test_put_none 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_none 313s tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 313s tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 313s tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 313s tests/db_pool_test.py::Test02MysqlRaw::test_run_query 313s [gw0] [ 18%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_query 313s tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 313s tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 313s tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 313s tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 313s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 313s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 313s tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 313s [gw0] [ 19%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 313s [gw1] [ 20%] PASSED tests/green_http_test.py::test_green_http_doesnt_change_original_module 313s tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 313s tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 313s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 313s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 313s [gw0] [ 20%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 313s tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 313s [gw0] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 313s tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 313s [gw0] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 313s tests/greenio_test.py::TestGreenSocket::test_full_duplex 313s [gw1] [ 20%] PASSED tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 313s tests/green_http_test.py::test_http_request_encode_chunked_kwarg 313s [gw1] [ 20%] PASSED tests/green_http_test.py::test_http_request_encode_chunked_kwarg 313s tests/green_profile_test.py::test_green_profile_basic 313s [gw1] [ 21%] PASSED tests/green_profile_test.py::test_green_profile_basic 313s tests/green_select_test.py::test_select_mark_file_as_reopened 313s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_full_duplex 313s tests/greenio_test.py::TestGreenSocket::test_invalid_connection 313s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_invalid_connection 313s tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 313s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 314s tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 314s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 314s tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 314s [gw0] [ 21%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 314s tests/greenio_test.py::TestGreenSocket::test_recv_timeout 314s [gw1] [ 21%] PASSED tests/green_select_test.py::test_select_mark_file_as_reopened 314s tests/greendns_test.py::TestHostsResolver::test_default_fname 314s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_default_fname 314s tests/greendns_test.py::TestHostsResolver::test_getaliases 314s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases 314s tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 314s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 314s tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 314s [gw0] [ 22%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_timeout 314s tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 314s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 314s tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 314s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 314s tests/greendns_test.py::TestHostsResolver::test_load_no_contents 314s [gw1] [ 22%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_no_contents 314s tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 314s [gw0] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 314s tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 314s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 314s tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 314s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 314s tests/greendns_test.py::TestHostsResolver::test_query_A 314s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_A 314s tests/greendns_test.py::TestHostsResolver::test_query_AAAA 314s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_AAAA 314s tests/greendns_test.py::TestHostsResolver::test_query_CNAME 314s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_CNAME 314s tests/greendns_test.py::TestHostsResolver::test_query_ans_types 314s [gw0] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 314s tests/greenio_test.py::TestGreenSocket::test_send_timeout 314s [gw1] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_ans_types 314s tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 314s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_send_timeout 314s tests/greenio_test.py::TestGreenSocket::test_sendall 314s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 314s tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 314s [gw0] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall 314s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 314s tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 314s tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 314s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 315s tests/greendns_test.py::TestHostsResolver::test_readlines_lines 315s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_lines 315s tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 315s [gw1] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 315s tests/greendns_test.py::TestUdp::test_udp_ipv4 315s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 315s tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 315s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4 315s tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 315s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 315s tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 315s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 315s tests/greenio_test.py::TestGreenSocket::test_socketpair_select 315s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_socketpair_select 315s tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 315s [gw1] [ 25%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 315s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 315s [gw0] [ 25%] PASSED tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 315s tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 315s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 315s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 315s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 315s tests/greenio_test.py::TestGreenSocket::test_wrap_socket 315s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_wrap_socket 315s tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 315s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 315s tests/greendns_test.py::TestUdp::test_udp_ipv6 315s [gw1] [ 26%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6 315s tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 315s [gw0] [ 26%] PASSED tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 315s tests/greenio_test.py::test_get_fileno_of_a_socket_works 315s [gw0] [ 26%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_works 315s tests/greenio_test.py::test_get_fileno_of_an_int_works 315s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_an_int_works 315s tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 315s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 315s tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 315s [gw0] [ 27%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 315s tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 315s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 315s tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 315s [gw0] [ 27%] FAILED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 315s tests/greenio_test.py::TestGreenPipe::test_pipe 315s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 315s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 315s [gw1] [ 27%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 315s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 315s [gw0] [ 28%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe 315s tests/greenio_test.py::TestGreenPipe::test_pipe_read 315s [gw0] [ 28%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_read 315s tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 315s [gw1] [ 28%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 315s tests/greendns_test.py::TestProxyResolver::test_getaliases 315s [gw0] [ 28%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 316s tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 316s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases 316s tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 316s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 316s tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 316s [gw1] [ 28%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 316s tests/greendns_test.py::TestProxyResolver::test_hosts 316s [gw0] [ 29%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 316s tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 316s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts 316s tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 316s [gw0] [ 29%] PASSED tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 316s tests/greenio_test.py::TestGreenPipe::test_truncate 316s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 316s tests/greendns_test.py::TestProxyResolver::test_noanswer 316s [gw0] [ 29%] PASSED tests/greenio_test.py::TestGreenPipe::test_truncate 316s tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 316s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer 316s tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 316s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 316s tests/greendns_test.py::TestProxyResolver::test_nxdomain 316s [gw1] [ 29%] PASSED tests/greendns_test.py::TestProxyResolver::test_nxdomain 316s tests/greendns_test.py::TestProxyResolver::test_resolver 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestProxyResolver::test_resolver 316s tests/greendns_test.py::TestResolve::test_A 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_A 316s tests/greendns_test.py::TestResolve::test_AAAA 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_AAAA 316s tests/greendns_test.py::TestResolve::test_exc 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_exc 316s tests/greendns_test.py::TestResolve::test_noraise_noanswer 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_noraise_noanswer 316s tests/greendns_test.py::TestResolve::test_noraise_nxdomain 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_noraise_nxdomain 316s tests/greendns_test.py::TestResolve::test_timeout 316s [gw1] [ 30%] PASSED tests/greendns_test.py::TestResolve::test_timeout 316s tests/greendns_test.py::TestResolve::test_unknown_rdtype 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolve::test_unknown_rdtype 316s tests/greendns_test.py::TestResolveCname::test_no_answer 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_no_answer 316s tests/greendns_test.py::TestResolveCname::test_nodata 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_nodata 316s tests/greendns_test.py::TestResolveCname::test_success 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_success 316s tests/greendns_test.py::TestResolveCname::test_timeout 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestResolveCname::test_timeout 316s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 316s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 316s [gw1] [ 31%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 316s tests/greendns_test.py::TestGetaddrinfo::test_canonname 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_canonname 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 316s [gw1] [ 32%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 316s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 316s tests/greendns_test.py::TestGetaddrinfo::test_host_none 316s [gw1] [ 33%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none 316s tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 316s tests/greendns_test.py::TestGetaddrinfo::test_noport 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_noport 316s tests/greendns_test.py::TestGetaddrinfo::test_numerichost 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numerichost 316s tests/greendns_test.py::TestGetaddrinfo::test_numericserv 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numericserv 316s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 316s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 316s tests/greendns_test.py::TestIsIpAddr::test_isv4 316s [gw1] [ 34%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4 316s tests/greendns_test.py::TestIsIpAddr::test_isv4_false 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_false 316s tests/greendns_test.py::TestIsIpAddr::test_isv4_none 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_none 316s tests/greendns_test.py::TestIsIpAddr::test_isv6 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6 316s tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 316s tests/greendns_test.py::TestIsIpAddr::test_isv6_none 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_none 316s tests/greendns_test.py::TestIsIpAddr::test_none 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_none 316s tests/greendns_test.py::TestIsIpAddr::test_v4 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4 316s tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 316s [gw1] [ 35%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 316s tests/greendns_test.py::TestIsIpAddr::test_v6_addr 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v6_addr 316s tests/greendns_test.py::TestGethostbyname::test_ipaddr 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname::test_ipaddr 316s tests/greendns_test.py::TestGethostbyname::test_name 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname::test_name 316s tests/greendns_test.py::TestGetaliases::test_getaliases 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGetaliases::test_getaliases 316s tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 316s tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 316s tests/greendns_test.py::TestGethostbyname_ex::test_name 316s [gw1] [ 36%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_name 316s tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 316s [gw1] [ 37%] PASSED tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 317s tests/greendns_test.py::test_reverse_name 317s [gw1] [ 37%] PASSED tests/greendns_test.py::test_reverse_name 317s tests/greendns_test.py::test_proxy_resolve_unqualified 317s [gw1] [ 37%] PASSED tests/greendns_test.py::test_proxy_resolve_unqualified 317s tests/greendns_test.py::test_hosts_priority 317s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_priority 317s tests/greendns_test.py::test_hosts_no_network 317s [gw1] [ 37%] PASSED tests/greendns_test.py::test_hosts_no_network 317s tests/greendns_test.py::test_import_rdtypes_then_eventlet 317s [gw1] [ 37%] PASSED tests/greendns_test.py::test_import_rdtypes_then_eventlet 317s tests/greenio_test.py::TestGreenSocket::test_accept_timeout 317s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_accept_timeout 317s tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 317s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 317s tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 317s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 317s tests/greenio_test.py::TestGreenSocket::test_closure 317s [gw1] [ 38%] SKIPPED tests/greenio_test.py::TestGreenSocket::test_closure 317s tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 317s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 318s tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 318s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 318s tests/hub_test.py::test_use_hub_class 318s [gw1] [ 38%] PASSED tests/hub_test.py::test_use_hub_class 318s tests/hub_test.py::test_kqueue_unsupported 318s [gw1] [ 38%] PASSED tests/hub_test.py::test_kqueue_unsupported 318s tests/mysqldb_test.py::TestMySQLdb::test_connecting 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting 318s tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 318s tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 318s tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 318s tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 318s tests/mysqldb_test.py::TestMySQLdb::test_run_query 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_query 318s tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 318s [gw1] [ 39%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 318s tests/mysqldb_test.py::TestMySQLdb::test_yields 318s [gw1] [ 40%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_yields 318s tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 318s [gw1] [ 40%] SKIPPED tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 318s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 318s [gw1] [ 40%] PASSED tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 318s tests/openssl_test.py::test_import 318s [gw1] [ 40%] PASSED tests/openssl_test.py::test_import 318s tests/os_test.py::test_pathlib_open_issue_534 318s [gw1] [ 40%] PASSED tests/os_test.py::test_pathlib_open_issue_534 319s tests/os_test.py::test_os_read_nonblocking 319s [gw1] [ 40%] PASSED tests/os_test.py::test_os_read_nonblocking 322s tests/os_test.py::test_os_write_nonblocking 322s [gw1] [ 40%] PASSED tests/os_test.py::test_os_write_nonblocking 322s tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 322s [gw1] [ 41%] SKIPPED tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 322s tests/patcher_test.py::ImportPatched::test_patch_a_module 322s [gw1] [ 41%] PASSED tests/patcher_test.py::ImportPatched::test_patch_a_module 322s tests/patcher_test.py::test_import_patched_handles_sub_modules 322s [gw1] [ 41%] PASSED tests/patcher_test.py::test_import_patched_handles_sub_modules 322s tests/patcher_test.py::MonkeyPatch::test_boolean 322s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean 322s tests/patcher_test.py::MonkeyPatch::test_boolean_all 322s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all 323s tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 323s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 323s tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 323s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 323s tests/patcher_test.py::MonkeyPatch::test_boolean_double 323s [gw1] [ 41%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_double 324s tests/patcher_test.py::MonkeyPatch::test_boolean_negative 324s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative 324s tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 324s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 325s tests/patcher_test.py::MonkeyPatch::test_boolean_single 325s [gw0] [ 42%] PASSED tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 325s tests/greenio_test.py::test_set_nonblocking 325s [gw0] [ 42%] PASSED tests/greenio_test.py::test_set_nonblocking 325s tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 325s [gw0] [ 42%] PASSED tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 325s tests/greenio_test.py::test_double_close_219 325s [gw1] [ 42%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_single 325s tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 325s [gw0] [ 42%] PASSED tests/greenio_test.py::test_double_close_219 325s tests/greenio_test.py::test_partial_write_295 325s [gw0] [ 43%] PASSED tests/greenio_test.py::test_partial_write_295 325s tests/greenio_test.py::test_socket_file_read_non_int 325s [gw0] [ 43%] PASSED tests/greenio_test.py::test_socket_file_read_non_int 325s tests/greenio_test.py::test_pipe_context 325s [gw1] [ 43%] PASSED tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 325s tests/patcher_test.py::MonkeyPatch::test_early_patching 325s [gw0] [ 43%] FAILED tests/greenio_test.py::test_pipe_context 325s tests/greenio_test.py::test_greenpipe_write 325s [gw0] [ 43%] FAILED tests/greenio_test.py::test_greenpipe_write 325s tests/greenio_test.py::test_greenpipe_append 325s [gw0] [ 43%] FAILED tests/greenio_test.py::test_greenpipe_append 325s tests/greenio_test.py::test_greenpipe_read_overwrite 325s [gw0] [ 43%] FAILED tests/greenio_test.py::test_greenpipe_read_overwrite 325s tests/greenio_test.py::test_greenpipe_write_plus 325s [gw0] [ 44%] FAILED tests/greenio_test.py::test_greenpipe_write_plus 325s tests/greenio_test.py::test_greenpipe_append_plus 325s [gw0] [ 44%] FAILED tests/greenio_test.py::test_greenpipe_append_plus 325s tests/greenpool_test.py::GreenPool::test_empty_imap 325s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_empty_imap 326s tests/greenpool_test.py::GreenPool::test_exceptions 326s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_exceptions 326s tests/greenpool_test.py::GreenPool::test_imap 326s [gw1] [ 44%] PASSED tests/patcher_test.py::MonkeyPatch::test_early_patching 326s tests/patcher_test.py::MonkeyPatch::test_late_patching 326s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_imap 326s tests/greenpool_test.py::GreenPool::test_imap_multi_args 326s [gw0] [ 44%] PASSED tests/greenpool_test.py::GreenPool::test_imap_multi_args 326s tests/greenpool_test.py::GreenPool::test_imap_nonefunc 326s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_imap_nonefunc 326s tests/greenpool_test.py::GreenPool::test_imap_raises 326s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_imap_raises 326s tests/greenpool_test.py::GreenPool::test_multiple_coros 326s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_multiple_coros 326s tests/greenpool_test.py::GreenPool::test_pool_smash 326s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_pool_smash 326s tests/greenpool_test.py::GreenPool::test_recursive_waitall 326s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_recursive_waitall 326s tests/greenpool_test.py::GreenPool::test_reentrant 326s [gw0] [ 45%] PASSED tests/greenpool_test.py::GreenPool::test_reentrant 326s tests/greenpool_test.py::GreenPool::test_resize 326s [gw1] [ 45%] PASSED tests/patcher_test.py::MonkeyPatch::test_late_patching 326s tests/patcher_test.py::MonkeyPatch::test_patched_modules 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_resize 326s tests/greenpool_test.py::GreenPool::test_spawn 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_spawn 326s tests/greenpool_test.py::GreenPool::test_spawn_n 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n 326s tests/greenpool_test.py::GreenPool::test_spawn_n_2 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n_2 326s tests/greenpool_test.py::GreenPool::test_starmap 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_starmap 326s tests/greenpool_test.py::GreenPool::test_timer_cancel 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_timer_cancel 326s tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 326s [gw0] [ 46%] PASSED tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 326s tests/greenpool_test.py::GreenPool::test_waiting 326s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPool::test_waiting 326s tests/greenpool_test.py::GreenPile::test_constructing_from_pool 326s [gw1] [ 47%] PASSED tests/patcher_test.py::MonkeyPatch::test_patched_modules 327s tests/patcher_test.py::MonkeyPatch::test_typeerror 327s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_constructing_from_pool 327s tests/greenpool_test.py::GreenPile::test_empty_pile 327s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_empty_pile 327s tests/greenpool_test.py::GreenPile::test_pile 327s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_pile 327s tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 327s [gw0] [ 47%] PASSED tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 327s tests/greenpool_test.py::test_greenpool_type_check 327s [gw0] [ 47%] PASSED tests/greenpool_test.py::test_greenpool_type_check 327s tests/greenpool_test.py::Stress::test_imap_50 327s [gw1] [ 47%] PASSED tests/patcher_test.py::MonkeyPatch::test_typeerror 328s tests/patcher_test.py::Tpool::test_patched_thread 328s [gw1] [ 48%] PASSED tests/patcher_test.py::Tpool::test_patched_thread 328s tests/patcher_test.py::Tpool::test_simple 328s [gw1] [ 48%] PASSED tests/patcher_test.py::Tpool::test_simple 329s tests/patcher_test.py::Tpool::test_unpatched_thread 329s [gw1] [ 48%] PASSED tests/patcher_test.py::Tpool::test_unpatched_thread 330s tests/patcher_test.py::test_subprocess_after_monkey_patch 330s [gw1] [ 48%] PASSED tests/patcher_test.py::test_subprocess_after_monkey_patch 330s tests/patcher_test.py::Threading::test_greenlet 330s [gw1] [ 48%] PASSED tests/patcher_test.py::Threading::test_greenlet 331s tests/patcher_test.py::Threading::test_greenthread 331s [gw1] [ 48%] PASSED tests/patcher_test.py::Threading::test_greenthread 331s tests/patcher_test.py::Threading::test_keyerror 331s [gw1] [ 48%] PASSED tests/patcher_test.py::Threading::test_keyerror 331s tests/patcher_test.py::Threading::test_tpool 331s [gw1] [ 49%] PASSED tests/patcher_test.py::Threading::test_tpool 332s tests/patcher_test.py::Os::test_waitpid 332s [gw1] [ 49%] PASSED tests/patcher_test.py::Os::test_waitpid 332s tests/patcher_test.py::GreenThreadWrapper::test_ident 332s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_ident 333s tests/patcher_test.py::GreenThreadWrapper::test_is_alive 333s [gw0] [ 49%] PASSED tests/greenpool_test.py::Stress::test_imap_50 333s tests/greenpool_test.py::Stress::test_imap_500 333s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_alive 341s tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 341s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 341s tests/patcher_test.py::GreenThreadWrapper::test_join 341s [gw1] [ 49%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_join 341s tests/patcher_test.py::GreenThreadWrapper::test_name 341s [gw1] [ 50%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_name 341s tests/patcher_test.py::test_patcher_existing_locks_early 341s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_early 341s tests/patcher_test.py::test_patcher_existing_locks_late 341s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_locks_late 341s tests/patcher_test.py::test_patcher_existing_locks_unlocked 341s [gw1] [ 50%] SKIPPED tests/patcher_test.py::test_patcher_existing_locks_unlocked 341s tests/patcher_test.py::test_patcher_existing_logging_module_lock 341s [gw1] [ 50%] PASSED tests/patcher_test.py::test_patcher_existing_logging_module_lock 341s tests/patcher_test.py::test_importlib_lock 341s [gw1] [ 50%] PASSED tests/patcher_test.py::test_importlib_lock 341s tests/patcher_test.py::test_threading_condition 341s [gw1] [ 50%] PASSED tests/patcher_test.py::test_threading_condition 341s tests/patcher_test.py::test_threading_join 341s [gw1] [ 51%] PASSED tests/patcher_test.py::test_threading_join 341s tests/patcher_test.py::test_socketserver_selectors 341s [gw1] [ 51%] PASSED tests/patcher_test.py::test_socketserver_selectors 341s tests/patcher_test.py::test_blocking_select_methods_are_deleted 341s [gw1] [ 51%] PASSED tests/patcher_test.py::test_blocking_select_methods_are_deleted 341s tests/patcher_test.py::test_regular_file_readall 341s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_imap_500 341s tests/greenpool_test.py::Stress::test_ordering_5 341s [gw1] [ 51%] FAILED tests/patcher_test.py::test_regular_file_readall 341s tests/patcher_test.py::test_threading_current 341s [gw0] [ 51%] PASSED tests/greenpool_test.py::Stress::test_ordering_5 341s tests/greenpool_test.py::Stress::test_ordering_50 341s [gw1] [ 51%] PASSED tests/patcher_test.py::test_threading_current 341s tests/patcher_test.py::test_threadpoolexecutor 341s [gw0] [ 52%] PASSED tests/greenpool_test.py::Stress::test_ordering_50 341s tests/greenpool_test.py::Stress::test_with_intpool 341s [gw1] [ 52%] PASSED tests/patcher_test.py::test_threadpoolexecutor 341s tests/patcher_test.py::test_builtin 341s [gw0] [ 52%] PASSED tests/greenpool_test.py::Stress::test_with_intpool 341s tests/greenthread_test.py::Spawn::test_kill 341s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_kill 341s tests/greenthread_test.py::Spawn::test_kill_meth 341s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_kill_meth 341s tests/greenthread_test.py::Spawn::test_kill_n 341s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_kill_n 341s tests/greenthread_test.py::Spawn::test_link 341s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link 341s tests/greenthread_test.py::Spawn::test_link_after_exited 341s [gw0] [ 52%] PASSED tests/greenthread_test.py::Spawn::test_link_after_exited 341s tests/greenthread_test.py::Spawn::test_link_relinks 341s [gw1] [ 53%] PASSED tests/patcher_test.py::test_builtin 341s tests/patcher_test.py::test_open_kwargs 341s [gw0] [ 53%] PASSED tests/greenthread_test.py::Spawn::test_link_relinks 341s tests/greenthread_test.py::Spawn::test_n 341s [gw0] [ 53%] PASSED tests/greenthread_test.py::Spawn::test_n 341s tests/greenthread_test.py::Spawn::test_simple 341s [gw0] [ 53%] PASSED tests/greenthread_test.py::Spawn::test_simple 341s tests/greenthread_test.py::SpawnAfter::test_basic 341s [gw1] [ 53%] PASSED tests/patcher_test.py::test_open_kwargs 341s tests/patcher_test.py::test_patcher_existing_locks 341s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_basic 341s tests/greenthread_test.py::SpawnAfter::test_cancel 341s [gw0] [ 53%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel 341s tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 341s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 341s tests/greenthread_test.py::SpawnAfter::test_kill 341s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill 341s tests/greenthread_test.py::SpawnAfter::test_kill_already_started 341s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_already_started 341s tests/greenthread_test.py::SpawnAfter::test_kill_meth 341s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_meth 341s tests/greenthread_test.py::SpawnAfter::test_kill_n 341s [gw1] [ 54%] PASSED tests/patcher_test.py::test_patcher_existing_locks 341s tests/patcher_test.py::test_patcher_existing_locks_exception 341s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_n 342s tests/greenthread_test.py::SpawnAfter::test_link 342s [gw0] [ 54%] PASSED tests/greenthread_test.py::SpawnAfter::test_link 342s tests/greenthread_test.py::SpawnAfter::test_link_after_exited 342s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_after_exited 342s tests/greenthread_test.py::SpawnAfter::test_link_relinks 342s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_relinks 342s tests/greenthread_test.py::SpawnAfter::test_n 342s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfter::test_n 342s tests/greenthread_test.py::SpawnAfter::test_simple 342s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfter::test_simple 342s tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 342s [gw1] [ 55%] PASSED tests/patcher_test.py::test_patcher_existing_locks_exception 342s tests/patcher_test.py::test_patcher_threading_subclass_done 342s [gw0] [ 55%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 342s tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 342s [gw1] [ 55%] PASSED tests/patcher_test.py::test_patcher_threading_subclass_done 342s tests/pools_test.py::TestIntPool::test_blocks_on_pool 342s [gw1] [ 56%] PASSED tests/pools_test.py::TestIntPool::test_blocks_on_pool 342s tests/pools_test.py::TestIntPool::test_create_contention 342s [gw1] [ 56%] PASSED tests/pools_test.py::TestIntPool::test_create_contention 342s tests/pools_test.py::TestIntPool::test_exhaustion 342s [gw1] [ 56%] PASSED tests/pools_test.py::TestIntPool::test_exhaustion 342s tests/pools_test.py::TestIntPool::test_free 342s [gw1] [ 56%] PASSED tests/pools_test.py::TestIntPool::test_free 342s tests/pools_test.py::TestIntPool::test_integers 342s [gw1] [ 56%] PASSED tests/pools_test.py::TestIntPool::test_integers 342s tests/pools_test.py::TestIntPool::test_ordering 342s [gw1] [ 56%] PASSED tests/pools_test.py::TestIntPool::test_ordering 342s [gw0] [ 56%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 342s tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 342s tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 342s tests/pools_test.py::TestIntPool::test_putting_to_queue 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestIntPool::test_putting_to_queue 342s tests/pools_test.py::TestIntPool::test_resize 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestIntPool::test_resize 342s tests/pools_test.py::TestAbstract::test_abstract 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestAbstract::test_abstract 342s tests/pools_test.py::TestIntPool2::test_something 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestIntPool2::test_something 342s tests/pools_test.py::TestOrderAsStack::test_ordering 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestOrderAsStack::test_ordering 342s tests/pools_test.py::TestCreateRaises::test_it 342s [gw1] [ 57%] PASSED tests/pools_test.py::TestCreateRaises::test_it 342s tests/queue_test.py::TestQueue::test_channel_send 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_channel_send 342s tests/queue_test.py::TestQueue::test_channel_sender_timing_out 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_channel_sender_timing_out 342s tests/queue_test.py::TestQueue::test_channel_wait 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_channel_wait 342s tests/queue_test.py::TestQueue::test_channel_waiters 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_channel_waiters 342s tests/queue_test.py::TestQueue::test_getting_before_sending 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_getting_before_sending 342s tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 342s tests/queue_test.py::TestQueue::test_max_size 342s [gw1] [ 58%] PASSED tests/queue_test.py::TestQueue::test_max_size 343s tests/queue_test.py::TestQueue::test_multiple_waiters 343s [gw0] [ 58%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 343s tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 343s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_multiple_waiters 343s tests/queue_test.py::TestQueue::test_resize_down 343s [gw0] [ 59%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 343s tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 343s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_resize_down 343s tests/queue_test.py::TestQueue::test_resize_to_Unlimited 343s [gw1] [ 59%] PASSED tests/queue_test.py::TestQueue::test_resize_to_Unlimited 343s tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 343s [gw0] [ 59%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 343s tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 343s [gw0] [ 59%] PASSED tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 343s tests/hub_test.py::TestScheduleCall::test_global 343s [gw1] [ 59%] PASSED tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 343s tests/ssl_test.py::SSLTest::test_regression_gh_17 343s [gw1] [ 60%] PASSED tests/ssl_test.py::SSLTest::test_regression_gh_17 343s tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 343s [gw0] [ 60%] PASSED tests/hub_test.py::TestScheduleCall::test_global 343s tests/hub_test.py::TestScheduleCall::test_local 343s [gw0] [ 60%] PASSED tests/hub_test.py::TestScheduleCall::test_local 343s tests/hub_test.py::TestScheduleCall::test_ordering 343s [gw0] [ 60%] PASSED tests/hub_test.py::TestScheduleCall::test_ordering 343s tests/hub_test.py::TestDebug::test_debug_listeners 343s [gw0] [ 60%] PASSED tests/hub_test.py::TestDebug::test_debug_listeners 343s tests/hub_test.py::TestDebug::test_timer_exceptions 343s [gw0] [ 60%] PASSED tests/hub_test.py::TestDebug::test_timer_exceptions 343s tests/hub_test.py::TestExceptionInMainloop::test_sleep 343s [gw0] [ 60%] PASSED tests/hub_test.py::TestExceptionInMainloop::test_sleep 343s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 343s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 343s tests/ssl_test.py::SSLTest::test_ssl_close 343s [gw0] [ 61%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 343s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 343s [gw0] [ 61%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 343s tests/hub_test.py::TestHubBlockingDetector::test_block_detect 343s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_close 343s tests/ssl_test.py::SSLTest::test_ssl_connect 343s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_connect 343s tests/ssl_test.py::SSLTest::test_ssl_context 343s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_context 343s tests/ssl_test.py::SSLTest::test_ssl_unwrap 343s [gw1] [ 61%] PASSED tests/ssl_test.py::SSLTest::test_ssl_unwrap 344s tests/subprocess_test.py::test_subprocess_wait 344s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_subprocess_wait 344s tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 344s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 344s tests/subprocess_test.py::test_universal_lines 344s [gw1] [ 62%] FAILED tests/subprocess_test.py::test_universal_lines 344s tests/subprocess_test.py::test_patched_communicate_290 344s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_patched_communicate_290 344s tests/subprocess_test.py::test_check_call_without_timeout_works 344s [gw1] [ 62%] PASSED tests/subprocess_test.py::test_check_call_without_timeout_works 344s tests/subprocess_test.py::test_exception_identity 344s [gw0] [ 62%] PASSED tests/hub_test.py::TestHubBlockingDetector::test_block_detect 344s tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 344s [gw0] [ 62%] SKIPPED tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 344s tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 344s [gw1] [ 63%] PASSED tests/subprocess_test.py::test_exception_identity 344s tests/test__event.py::TestEvent::test_send 344s [gw1] [ 63%] PASSED tests/test__event.py::TestEvent::test_send 344s tests/test__event.py::TestEvent::test_send_exc 344s [gw1] [ 63%] PASSED tests/test__event.py::TestEvent::test_send_exc 345s tests/test__refcount.py::test_clean_exit 345s [gw1] [ 63%] PASSED tests/test__refcount.py::test_clean_exit 345s tests/test__refcount.py::test_timeout_exit 345s [gw0] [ 63%] PASSED tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 345s tests/hub_test.py::test_repeated_select_bad_fd 345s [gw0] [ 63%] PASSED tests/hub_test.py::test_repeated_select_bad_fd 345s tests/hub_test.py::test_fork 345s [gw1] [ 63%] PASSED tests/test__refcount.py::test_timeout_exit 345s tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 345s [gw1] [ 64%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 345s tests/test__socket_errors.py::TestSocketErrors::test_timeout 345s [gw0] [ 64%] PASSED tests/hub_test.py::test_fork 346s tests/hub_test.py::test_fork_simple 346s [gw0] [ 64%] PASSED tests/hub_test.py::test_fork_simple 346s tests/hub_test.py::TestDeadRunLoop::test_kill 346s [gw1] [ 64%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout 347s tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 347s [gw0] [ 64%] PASSED tests/hub_test.py::TestDeadRunLoop::test_kill 347s tests/hub_test.py::TestDeadRunLoop::test_parent 347s [gw0] [ 64%] PASSED tests/hub_test.py::TestDeadRunLoop::test_parent 347s tests/queue_test.py::TestQueue::test_resize_up 347s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_resize_up 347s tests/queue_test.py::TestQueue::test_send_first 347s [gw0] [ 64%] PASSED tests/queue_test.py::TestQueue::test_send_first 347s tests/queue_test.py::TestQueue::test_send_last 347s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_send_last 347s tests/queue_test.py::TestQueue::test_task_done 347s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_task_done 347s tests/queue_test.py::TestQueue::test_two_bogus_waiters 347s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_two_bogus_waiters 347s tests/queue_test.py::TestQueue::test_two_waiters_one_dies 347s [gw1] [ 65%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 347s tests/test__socket_errors.py::test_create_connection_refused 347s [gw1] [ 65%] PASSED tests/test__socket_errors.py::test_create_connection_refused 347s tests/test_infrastructure_tests.py::test_run_python_timeout 347s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_two_waiters_one_dies 347s tests/queue_test.py::TestQueue::test_waiters_that_cancel 347s [gw0] [ 65%] PASSED tests/queue_test.py::TestQueue::test_waiters_that_cancel 348s tests/queue_test.py::TestQueue::test_waiting 348s [gw1] [ 66%] PASSED tests/test_infrastructure_tests.py::test_run_python_timeout 348s tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 348s [gw0] [ 66%] PASSED tests/queue_test.py::TestQueue::test_waiting 348s tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 348s [gw1] [ 66%] PASSED tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 348s tests/thread_test.py::Locals::test_assignment 348s [gw0] [ 66%] PASSED tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 348s tests/queue_test.py::TestQueue::test_zero_max_size 348s [gw1] [ 66%] PASSED tests/thread_test.py::Locals::test_assignment 348s tests/thread_test.py::Locals::test_calling_methods 348s [gw0] [ 66%] PASSED tests/queue_test.py::TestQueue::test_zero_max_size 348s tests/queue_test.py::TestNoWait::test_get_nowait_simple 348s [gw1] [ 66%] PASSED tests/thread_test.py::Locals::test_calling_methods 348s tests/thread_test.py::Locals::test_calls_init 348s [gw0] [ 67%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_simple 348s tests/queue_test.py::TestNoWait::test_get_nowait_unlock 348s [gw1] [ 67%] PASSED tests/thread_test.py::Locals::test_calls_init 348s tests/thread_test.py::Locals::test_no_leaking 348s [gw0] [ 67%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_unlock 348s tests/queue_test.py::TestNoWait::test_put_nowait_simple 348s [gw0] [ 67%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_simple 348s tests/queue_test.py::TestNoWait::test_put_nowait_unlock 348s [gw0] [ 67%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_unlock 348s tests/queue_test.py::TestNoWait::test_wait_except 348s [gw1] [ 67%] PASSED tests/thread_test.py::Locals::test_no_leaking 348s tests/thread_test.py::test_compat_lock_release 348s [gw1] [ 67%] PASSED tests/thread_test.py::test_compat_lock_release 348s tests/thread_test.py::test_reinit 348s [gw1] [ 68%] PASSED tests/thread_test.py::test_reinit 348s tests/thread_test.py::test_can_use_eventlet_in_os_threads 348s [gw0] [ 68%] PASSED tests/queue_test.py::TestNoWait::test_wait_except 348s tests/semaphore_test.py::TestSemaphore::test_bounded 348s [gw0] [ 68%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded 348s tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 348s [gw0] [ 68%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 348s tests/semaphore_test.py::TestSemaphore::test_non_blocking 348s [gw0] [ 68%] PASSED tests/semaphore_test.py::TestSemaphore::test_non_blocking 348s tests/semaphore_test.py::TestSemaphore::test_timeout 348s [gw0] [ 68%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout 348s tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 348s [gw0] [ 68%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 349s tests/semaphore_test.py::test_semaphore_contention 349s [gw1] [ 69%] PASSED tests/thread_test.py::test_can_use_eventlet_in_os_threads 349s tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 349s [gw1] [ 69%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 349s tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 349s [gw0] [ 69%] PASSED tests/semaphore_test.py::test_semaphore_contention 349s tests/semaphore_test.py::test_semaphore_type_check 349s [gw0] [ 69%] PASSED tests/semaphore_test.py::test_semaphore_type_check 349s tests/socket_test.py::test_recv_type 349s [gw1] [ 69%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 349s tests/timeout_test.py::TestDirectRaise::test_repr 349s [gw1] [ 69%] PASSED tests/timeout_test.py::TestDirectRaise::test_repr 349s tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 349s [gw1] [ 69%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 349s tests/timeout_test.py::TestWithTimeout::test_with_timeout 349s [gw0] [ 70%] PASSED tests/socket_test.py::test_recv_type 349s tests/socket_test.py::test_recv_into_type 349s [gw1] [ 70%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_timeout 349s tests/timeout_test.py::test_is_timeout_attribute 349s [gw1] [ 70%] PASSED tests/timeout_test.py::test_is_timeout_attribute 349s tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 349s [gw1] [ 70%] PASSED tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 349s tests/timeout_with_statement_test.py::Test::test_cancellation 349s [gw1] [ 70%] PASSED tests/timeout_with_statement_test.py::Test::test_cancellation 349s tests/timeout_with_statement_test.py::Test::test_dummy_timer 349s [gw0] [ 70%] PASSED tests/socket_test.py::test_recv_into_type 349s tests/socket_test.py::test_socket_api_family 349s [gw0] [ 70%] PASSED tests/socket_test.py::test_socket_api_family 349s tests/socket_test.py::test_getaddrinfo_ipv6_scope 349s [gw0] [ 70%] PASSED tests/socket_test.py::test_getaddrinfo_ipv6_scope 349s tests/socket_test.py::test_error_is_timeout 349s [gw0] [ 71%] PASSED tests/socket_test.py::test_error_is_timeout 349s tests/socket_test.py::test_connect_ex_success 349s [gw0] [ 71%] PASSED tests/socket_test.py::test_connect_ex_success 349s tests/ssl_test.py::SSLTest::test_client_check_hostname 349s [gw1] [ 71%] PASSED tests/timeout_with_statement_test.py::Test::test_dummy_timer 349s tests/timeout_with_statement_test.py::Test::test_nested_timeout 349s [gw0] [ 71%] PASSED tests/ssl_test.py::SSLTest::test_client_check_hostname 349s tests/ssl_test.py::SSLTest::test_context_version_setters 349s [gw1] [ 71%] PASSED tests/timeout_with_statement_test.py::Test::test_nested_timeout 349s tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 349s [gw1] [ 71%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 349s tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 349s [gw1] [ 71%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 350s tests/timeout_with_statement_test.py::Test::test_raising_exception_class 350s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exception_class 350s tests/timeout_with_statement_test.py::Test::test_raising_self 350s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self 350s tests/timeout_with_statement_test.py::Test::test_raising_self_true 350s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self_true 350s tests/timeout_with_statement_test.py::Test::test_ref 350s [gw0] [ 72%] PASSED tests/ssl_test.py::SSLTest::test_context_version_setters 350s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 350s [gw0] [ 72%] PASSED tests/ssl_test.py::SSLTest::test_context_wrapped_accept 350s tests/ssl_test.py::SSLTest::test_duplex_response 350s [gw1] [ 72%] PASSED tests/timeout_with_statement_test.py::Test::test_ref 350s tests/timeout_with_statement_test.py::Test::test_silent_block 350s [gw0] [ 72%] PASSED tests/ssl_test.py::SSLTest::test_duplex_response 350s tests/ssl_test.py::SSLTest::test_explicit_keys_accept 350s [gw0] [ 73%] PASSED tests/ssl_test.py::SSLTest::test_explicit_keys_accept 350s tests/ssl_test.py::SSLTest::test_greensslobject 350s [gw1] [ 73%] PASSED tests/timeout_with_statement_test.py::Test::test_silent_block 350s tests/timer_test.py::TestTimer::test_copy 350s [gw1] [ 73%] PASSED tests/timer_test.py::TestTimer::test_copy 350s tests/timer_test.py::TestTimer::test_schedule 350s [gw1] [ 73%] PASSED tests/timer_test.py::TestTimer::test_schedule 350s tests/tpool_test.py::TestTpool::test_autowrap 350s [gw0] [ 73%] PASSED tests/ssl_test.py::SSLTest::test_greensslobject 350s tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 350s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_autowrap 350s tests/tpool_test.py::TestTpool::test_autowrap_both 350s [gw1] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_both 350s tests/tpool_test.py::TestTpool::test_autowrap_names 350s [gw1] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_names 350s tests/tpool_test.py::TestTpool::test_callable 350s [gw1] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_callable 350s tests/tpool_test.py::TestTpool::test_callable_iterator 350s [gw1] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_callable_iterator 350s tests/tpool_test.py::TestTpool::test_contention 350s [gw1] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_contention 350s tests/tpool_test.py::TestTpool::test_eventlet_timeout 350s [gw0] [ 74%] PASSED tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 350s tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 350s [gw1] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_eventlet_timeout 350s tests/tpool_test.py::TestTpool::test_killall 350s [gw1] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_killall 351s tests/tpool_test.py::TestTpool::test_killall_remaining_results 351s [gw0] [ 75%] PASSED tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 351s tests/tpool_test.py::TestTpool::test_wrap_dict 351s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_dict 351s tests/tpool_test.py::TestTpool::test_wrap_eq 351s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_eq 351s tests/tpool_test.py::TestTpool::test_wrap_getitem 351s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_getitem 351s tests/tpool_test.py::TestTpool::test_wrap_hash 351s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_hash 351s tests/tpool_test.py::TestTpool::test_wrap_ints 351s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_ints 351s tests/tpool_test.py::TestTpool::test_wrap_iterator 351s [gw0] [ 75%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator 351s tests/tpool_test.py::TestTpool::test_wrap_iterator2 351s [gw0] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator2 351s tests/tpool_test.py::TestTpool::test_wrap_module_class 351s [gw0] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_wrap_module_class 351s tests/tpool_test.py::TestTpool::test_wrap_nonzero 351s [gw0] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_wrap_nonzero 351s tests/tpool_test.py::TestTpool::test_wrap_setitem 351s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_killall_remaining_results 351s tests/tpool_test.py::TestTpool::test_multiple_wraps 351s [gw0] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_wrap_setitem 351s tests/tpool_test.py::TestTpool::test_wrap_string 351s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_multiple_wraps 351s tests/tpool_test.py::TestTpool::test_raising_exceptions 351s [gw0] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_wrap_string 351s tests/tpool_test.py::TestTpool::test_wrap_tuple 351s [gw1] [ 76%] PASSED tests/tpool_test.py::TestTpool::test_raising_exceptions 351s tests/tpool_test.py::TestTpool::test_timeout 351s [gw0] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_wrap_tuple 351s tests/tpool_test.py::TestTpool::test_wrap_uniterable 351s [gw0] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_wrap_uniterable 352s tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 352s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_timeout 352s tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 352s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 352s tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 352s [gw1] [ 77%] PASSED tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 352s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 352s [gw1] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 352s [gw1] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 352s [gw0] [ 79%] PASSED tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 352s tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 352s [gw1] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 352s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 352s [gw1] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 353s tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 353s [gw1] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 353s tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 353s [gw0] [ 79%] PASSED tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 353s tests/tpool_test.py::test_isolate_from_socket_default_timeout 353s [gw1] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 353s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 353s [gw1] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 353s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 353s [gw1] [ 80%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 353s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 353s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 353s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 353s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 353s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 353s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 353s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 353s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 353s tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 353s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 353s tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 353s [gw0] [ 80%] PASSED tests/tpool_test.py::test_isolate_from_socket_default_timeout 353s tests/tpool_test.py::test_exception_leak 353s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 353s tests/websocket_test.py::TestWebSocket::test_close_idle 353s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocket::test_close_idle 353s tests/wsgi_test.py::TestHttpd::test_001_server 353s [gw1] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_001_server 353s tests/wsgi_test.py::TestHttpd::test_002_keepalive 353s [gw1] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_002_keepalive 353s tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 353s [gw1] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 353s tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 353s [gw1] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 354s tests/wsgi_test.py::TestHttpd::test_007_get_arg 354s [gw1] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_007_get_arg 354s tests/wsgi_test.py::TestHttpd::test_008_correctresponse 354s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_008_correctresponse 354s tests/wsgi_test.py::TestHttpd::test_009_chunked_response 354s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_009_chunked_response 354s tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 354s [gw0] [ 82%] PASSED tests/tpool_test.py::test_exception_leak 354s tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 354s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 354s tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 354s [gw0] [ 82%] PASSED tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 354s tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 354s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 354s tests/wsgi_test.py::TestHttpd::test_012_ssl_server 354s [gw0] [ 82%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 354s tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 354s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_012_ssl_server 354s tests/wsgi_test.py::TestHttpd::test_013_empty_return 354s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 354s tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 354s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_013_empty_return 354s tests/wsgi_test.py::TestHttpd::test_014_chunked_post 354s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 354s tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 354s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_014_chunked_post 354s tests/wsgi_test.py::TestHttpd::test_015_write 354s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 354s tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 354s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_015_write 354s tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 354s [gw0] [ 83%] PASSED tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 354s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 354s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 354s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 354s [gw0] [ 84%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 354s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 354s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 354s tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 354s [gw0] [ 84%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 354s tests/websocket_test.py::TestWebSocket::test_empty_query_string 354s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 354s tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 354s [gw0] [ 84%] PASSED tests/websocket_test.py::TestWebSocket::test_empty_query_string 354s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 354s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 354s tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 354s [gw1] [ 85%] SKIPPED tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 354s tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 354s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 354s tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 354s [gw0] [ 85%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 354s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 354s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 354s tests/wsgi_test.py::TestHttpd::test_022_custom_pool 354s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_022_custom_pool 355s tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 355s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 355s tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 355s [gw0] [ 85%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 355s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 355s [gw0] [ 86%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 355s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 355s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 355s tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 355s [gw0] [ 86%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 355s tests/websocket_test.py::TestWebSocket::test_incorrect_headers 355s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 355s tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 355s [gw0] [ 86%] PASSED tests/websocket_test.py::TestWebSocket::test_incorrect_headers 355s tests/websocket_test.py::TestWebSocket::test_query_string 355s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 355s tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 355s [gw0] [ 86%] PASSED tests/websocket_test.py::TestWebSocket::test_query_string 355s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 355s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 355s tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 355s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 355s tests/wsgi_test.py::TestHttpd::test_025_accept_errors 355s [gw0] [ 87%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 355s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 355s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_025_accept_errors 355s tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 355s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 355s tests/wsgi_test.py::TestHttpd::test_026_log_format 355s [gw0] [ 87%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 355s tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 355s [gw1] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_026_log_format 355s tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 355s [gw0] [ 88%] PASSED tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 355s tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 355s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 355s tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 355s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 355s tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 355s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 355s tests/wsgi_test.py::TestHttpd::test_029_posthooks 355s [gw0] [ 88%] PASSED tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 355s tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 355s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_029_posthooks 355s tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 355s [gw1] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 355s tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 355s [gw0] [ 88%] PASSED tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 355s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 355s tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 355s tests/websocket_test.py::TestWebSocketObject::test_close_ws 355s [gw0] [ 89%] PASSED tests/websocket_test.py::TestWebSocketObject::test_close_ws 355s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 355s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 355s tests/websocket_test.py::TestWebSocketObject::test_recieve 356s [gw0] [ 89%] PASSED tests/websocket_test.py::TestWebSocketObject::test_recieve 356s tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 356s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 356s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 356s [gw0] [ 89%] PASSED tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 356s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 356s [gw1] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 356s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 356s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 356s tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 356s [gw1] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 356s tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 356s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 356s tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 356s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 356s tests/wsgi_test.py::TestHttpd::test_client_disconnect 356s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_client_disconnect 356s tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 356s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 356s tests/wsgi_test.py::TestHttpd::test_close_idle_connections 356s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections 356s tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 356s tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 356s tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 356s tests/wsgi_test.py::TestHttpd::test_debug 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_debug 356s tests/wsgi_test.py::TestHttpd::test_log_disable 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_disable 356s tests/wsgi_test.py::TestHttpd::test_log_unix_address 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_log_unix_address 356s tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 356s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 356s tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 356s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 356s tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 356s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 356s tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 356s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 357s tests/wsgi_test.py::TestHttpd::test_path_info_decoding 357s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_decoding 357s tests/wsgi_test.py::TestHttpd::test_path_info_latin1 357s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_latin1 357s tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 357s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 357s tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 357s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 357s tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 357s tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 357s tests/wsgi_test.py::TestHttpd::test_socket_remains_open 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_socket_remains_open 357s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 357s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 357s tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 357s tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 357s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 357s tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 357s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 357s tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 357s [gw0] [ 94%] PASSED tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 358s tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 358s [gw0] [ 94%] PASSED tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 358s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 358s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 358s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 358s [gw0] [ 94%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 358s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 358s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 358s tests/wsgi_test.py::TestHttpd::test_env_header_stripping 358s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_env_header_stripping 358s tests/wsgi_test.py::TestHttpd::test_env_headers 358s [gw1] [ 94%] PASSED tests/wsgi_test.py::TestHttpd::test_env_headers 358s tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 358s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 358s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 358s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 358s tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 358s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 358s tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 358s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 358s tests/wsgi_test.py::TestHttpd::test_headers_raw 358s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 358s tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 358s [gw1] [ 95%] PASSED tests/wsgi_test.py::TestHttpd::test_headers_raw 358s tests/wsgi_test.py::TestHttpd::test_ipv6 358s [gw0] [ 95%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 358s [gw1] [ 96%] SKIPPED tests/wsgi_test.py::TestHttpd::test_ipv6 358s tests/wsgi_test.py::TestChunkedInput::test_short_read 358s tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 358s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read 358s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 358s [gw0] [ 96%] PASSED tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 358s tests/wsgi_test.py::TestChunkedInput::test_dirt 358s [gw0] [ 96%] PASSED tests/wsgi_test.py::TestChunkedInput::test_dirt 358s tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 358s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 358s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 358s [gw0] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 358s [gw1] [ 96%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 358s tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 358s tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 358s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 358s tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 358s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 358s tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 358s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 358s tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 358s [gw1] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 358s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 358s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 359s tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 359s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 359s tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 359s [gw0] [ 97%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 359s tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 359s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 359s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 359s [gw1] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 359s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 359s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 359s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 359s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 359s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 359s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 359s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 359s [gw0] [ 98%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 359s tests/zmq_test.py::TestQueueLock::test_count 359s [gw0] [ 98%] PASSED tests/zmq_test.py::TestQueueLock::test_count 359s tests/zmq_test.py::TestQueueLock::test_errors 359s [gw1] [ 99%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 359s tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 359s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_errors 359s tests/zmq_test.py::TestQueueLock::test_nested_acquire 359s [gw1] [ 99%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 359s tests/zmq_test.py::TestQueueLock::test_queue_lock_order 359s [gw0] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_nested_acquire 359s tests/zmq_test.py::TestBlockedThread::test_block 359s [gw1] [ 99%] PASSED tests/zmq_test.py::TestQueueLock::test_queue_lock_order 359s tests/zmq_test.py::test_recv_json_no_args 359s [gw1] [ 99%] PASSED tests/zmq_test.py::test_recv_json_no_args 359s [gw0] [ 99%] PASSED tests/zmq_test.py::TestBlockedThread::test_block 359s tests/zmq_test.py::test_recv_timeout 360s [gw0] [100%] PASSED tests/zmq_test.py::test_recv_timeout 360s 360s ==================================== ERRORS ==================================== 360s __________________ ERROR collecting tests/test__greenness.py ___________________ 360s tests/test__greenness.py:8: in 360s from eventlet.green.urllib.request import urlopen 360s eventlet/green/urllib/request.py:40: in 360s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 360s ^^^^^^^^^ 360s E NameError: name 'URLopener' is not defined 360s __________________ ERROR collecting tests/test__greenness.py ___________________ 360s tests/test__greenness.py:8: in 360s from eventlet.green.urllib.request import urlopen 360s eventlet/green/urllib/request.py:40: in 360s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 360s ^^^^^^^^^ 360s E NameError: name 'URLopener' is not defined 360s =================================== FAILURES =================================== 360s ____________________ TestGreenPipe.test_pip_read_until_end _____________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s self = 360s 360s def test_pip_read_until_end(self): 360s # similar to test_pip_read above but reading until eof 360s r, w = os.pipe() 360s 360s > r = greenio.GreenPipe(r, 'rb') 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:757: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 360s newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s ___________________________ TestGreenPipe.test_pipe ____________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s self = 360s 360s def test_pipe(self): 360s r, w = os.pipe() 360s > rf = greenio.GreenPipe(r, 'rb') 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:706: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 360s newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s _________________________ TestGreenPipe.test_pipe_read _________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s self = 360s 360s def test_pipe_read(self): 360s # ensure that 'readline' works properly on GreenPipes when data is not 360s # immediately available (fd is nonblocking, was raising EAGAIN) 360s # also ensures that readline() terminates on '\n' and '\r\n' 360s r, w = os.pipe() 360s 360s > r = greenio.GreenPipe(r, 'rb') 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:729: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 360s newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s ________________ TestGreenPipe.test_pipe_writes_large_messages _________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s self = 360s 360s def test_pipe_writes_large_messages(self): 360s r, w = os.pipe() 360s 360s > r = greenio.GreenPipe(r, 'rb') 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:786: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = 15, mode = 'rb', buffering = -1, encoding = None, errors = None 360s newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s ______________________________ test_pipe_context _______________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_pipe_context(): 360s # ensure using a pipe as a context actually closes it. 360s r, w = os.pipe() 360s > r = greenio.GreenPipe(r) 360s ^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:997: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = 29, mode = 'r', buffering = -1, encoding = None, errors = None 360s newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s _____________________________ test_greenpipe_write _____________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_greenpipe_write(): 360s expected = b"initial" 360s with tempfile.NamedTemporaryFile() as f: 360s > with greenio.GreenPipe(f.name, "wb") as writer: 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:1012: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = '/tmp/tmpbt40cueg', mode = 'wb', buffering = -1, encoding = None 360s errors = None, newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s ____________________________ test_greenpipe_append _____________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_greenpipe_append(): 360s old_data = b"existing data..." 360s new_data = b"append with mode=a" 360s expected = old_data + new_data 360s with tempfile.NamedTemporaryFile() as f: 360s with open(f.name, "wb") as fw: 360s fw.write(old_data) 360s 360s > with greenio.GreenPipe(f.name, "ab") as writer: 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:1027: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = '/tmp/tmptkg_p6bv', mode = 'ab', buffering = -1, encoding = None 360s errors = None, newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s ________________________ test_greenpipe_read_overwrite _________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_greenpipe_read_overwrite(): 360s old_data = b"existing data..." 360s new_data = b"overwrite with mode=r+" 360s with tempfile.NamedTemporaryFile() as f: 360s > with greenio.GreenPipe(f.name, "wb") as writer: 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:1038: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = '/tmp/tmp__hguetg', mode = 'wb', buffering = -1, encoding = None 360s errors = None, newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s __________________________ test_greenpipe_write_plus ___________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_greenpipe_write_plus(): 360s expected = "write with mode=w+" 360s with tempfile.NamedTemporaryFile() as f: 360s > with greenio.GreenPipe(f.name, "w+") as writer: 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:1051: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = '/tmp/tmpzxjds4gv', mode = 'w+', buffering = -1, encoding = None 360s errors = None, newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s __________________________ test_greenpipe_append_plus __________________________ 360s [gw0] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_greenpipe_append_plus(): 360s expected = "append with mode=a+" 360s with tempfile.NamedTemporaryFile() as f: 360s > with greenio.GreenPipe(f.name, "a+") as writer: 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s 360s tests/greenio_test.py:1061: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = '/tmp/tmpkrz0rwf_', mode = 'a+', buffering = -1, encoding = None 360s errors = None, newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s __________________________ test_regular_file_readall ___________________________ 360s [gw1] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_regular_file_readall(): 360s > tests.run_isolated('regular_file_readall.py') 360s 360s tests/patcher_test.py:499: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s tests/__init__.py:365: in run_isolated 360s run_python(prefix + path, **kwargs) 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s path = '/tmp/autopkgtest.YEdMQf/build.l07/src/tests/isolated/regular_file_readall.py' 360s env = None, args = None, timeout = 10, pythonpath_extend = None 360s expect_pass = True 360s 360s def run_python(path, env=None, args=None, timeout=None, pythonpath_extend=None, expect_pass=False): 360s new_argv = [sys.executable] 360s new_env = os.environ.copy() 360s new_env.setdefault('eventlet_test_in_progress', 'yes') 360s src_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 360s if path: 360s path = os.path.abspath(path) 360s new_argv.append(path) 360s new_env['PYTHONPATH'] = os.pathsep.join(sys.path + [src_dir]) 360s if env: 360s new_env.update(env) 360s if pythonpath_extend: 360s new_path = [p for p in new_env.get('PYTHONPATH', '').split(os.pathsep) if p] 360s new_path.extend( 360s p if os.path.isabs(p) else os.path.join(src_dir, p) for p in pythonpath_extend 360s ) 360s new_env['PYTHONPATH'] = os.pathsep.join(new_path) 360s if args: 360s new_argv.extend(args) 360s p = subprocess.Popen( 360s new_argv, 360s env=new_env, 360s stderr=subprocess.STDOUT, 360s stdin=subprocess.PIPE, 360s stdout=subprocess.PIPE, 360s ) 360s if timeout is None: 360s timeout = 10 360s try: 360s output, _ = p.communicate(timeout=timeout) 360s except subprocess.TimeoutExpired: 360s p.kill() 360s output, _ = p.communicate(timeout=timeout) 360s if expect_pass: 360s sys.stderr.write('Program {} output:\n---\n{}\n---\n'.format(path, output.decode())) 360s assert False, 'timed out' 360s return '{}\nFAIL - timed out'.format(output).encode() 360s 360s if expect_pass: 360s if output.startswith(b'skip'): 360s parts = output.rstrip().split(b':', 1) 360s skip_args = [] 360s if len(parts) > 1: 360s skip_args.append(parts[1]) 360s raise SkipTest(*skip_args) 360s lines = output.splitlines() 360s ok = lines[-1].rstrip() == b'pass' 360s if not ok or len(lines) > 1: 360s sys.stderr.write('Program {} output:\n---\n{}\n---\n'.format(path, output.decode(errors="backslashreplace"))) 360s > assert ok, 'Expected single line "pass" in stdout' 360s ^^ 360s E AssertionError: Expected single line "pass" in stdout 360s 360s tests/__init__.py:358: AssertionError 360s ----------------------------- Captured stderr call ----------------------------- 360s Program /tmp/autopkgtest.YEdMQf/build.l07/src/tests/isolated/regular_file_readall.py output: 360s --- 360s Traceback (most recent call last): 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/tests/isolated/regular_file_readall.py", line 17, in 360s fp = os.fdopen(fd, "rb") 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/os.py", line 29, in fdopen 360s return greenio.GreenPipe(fd, *args, **kw) 360s ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/py3.py", line 216, in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s File "/usr/lib/python3.14/_pyio.py", line 242, in open 360s if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s --- 360s _____________________________ test_universal_lines _____________________________ 360s [gw1] linux -- Python 3.14.2 /usr/bin/python3.14 360s 360s def test_universal_lines(): 360s > p = subprocess.Popen( 360s [sys.executable, '--version'], 360s shell=False, 360s stdout=subprocess.PIPE, 360s universal_newlines=True) 360s 360s tests/subprocess_test.py:52: 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s eventlet/green/subprocess.py:73: in __init__ 360s wrapped_pipe = greenio.GreenPipe(pipe, mode, bufsize) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s eventlet/greenio/py3.py:216: in GreenPipe 360s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 360s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 360s 360s file = 15, mode = 'r', buffering = -1, encoding = None, errors = None 360s newline = None, closefd = True, opener = None 360s 360s @staticmethod 360s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 360s newline=None, closefd=True, opener=None): 360s 360s r"""Open file and return a stream. Raise OSError upon failure. 360s 360s file is either a text or byte string giving the name (and the path 360s if the file isn't in the current working directory) of the file to 360s be opened or an integer file descriptor of the file to be 360s wrapped. (If a file descriptor is given, it is closed when the 360s returned I/O object is closed, unless closefd is set to False.) 360s 360s mode is an optional string that specifies the mode in which the file is 360s opened. It defaults to 'r' which means open for reading in text mode. Other 360s common values are 'w' for writing (truncating the file if it already 360s exists), 'x' for exclusive creation of a new file, and 'a' for appending 360s (which on some Unix systems, means that all writes append to the end of the 360s file regardless of the current seek position). In text mode, if encoding is 360s not specified the encoding used is platform dependent. (For reading and 360s writing raw bytes use binary mode and leave encoding unspecified.) The 360s available modes are: 360s 360s ========= =============================================================== 360s Character Meaning 360s --------- --------------------------------------------------------------- 360s 'r' open for reading (default) 360s 'w' open for writing, truncating the file first 360s 'x' create a new file and open it for writing 360s 'a' open for writing, appending to the end of the file if it exists 360s 'b' binary mode 360s 't' text mode (default) 360s '+' open a disk file for updating (reading and writing) 360s ========= =============================================================== 360s 360s The default mode is 'rt' (open for reading text). For binary random 360s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 360s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 360s raises an `FileExistsError` if the file already exists. 360s 360s Python distinguishes between files opened in binary and text modes, 360s even when the underlying operating system doesn't. Files opened in 360s binary mode (appending 'b' to the mode argument) return contents as 360s bytes objects without any decoding. In text mode (the default, or when 360s 't' is appended to the mode argument), the contents of the file are 360s returned as strings, the bytes having been first decoded using a 360s platform-dependent encoding or using the specified encoding if given. 360s 360s buffering is an optional integer used to set the buffering policy. 360s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 360s line buffering (only usable in text mode), and an integer > 1 to indicate 360s the size of a fixed-size chunk buffer. When no buffering argument is 360s given, the default buffering policy works as follows: 360s 360s * Binary files are buffered in fixed-size chunks; the size of the buffer 360s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 360s when the device block size is available. 360s On most systems, the buffer will typically be 128 kilobytes long. 360s 360s * "Interactive" text files (files for which isatty() returns True) 360s use line buffering. Other text files use the policy described above 360s for binary files. 360s 360s encoding is the str name of the encoding used to decode or encode the 360s file. This should only be used in text mode. The default encoding is 360s platform dependent, but any encoding supported by Python can be 360s passed. See the codecs module for the list of supported encodings. 360s 360s errors is an optional string that specifies how encoding errors are to 360s be handled---this argument should not be used in binary mode. Pass 360s 'strict' to raise a ValueError exception if there is an encoding error 360s (the default of None has the same effect), or pass 'ignore' to ignore 360s errors. (Note that ignoring encoding errors can lead to data loss.) 360s See the documentation for codecs.register for a list of the permitted 360s encoding error strings. 360s 360s newline is a string controlling how universal newlines works (it only 360s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 360s as follows: 360s 360s * On input, if newline is None, universal newlines mode is 360s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 360s these are translated into '\n' before being returned to the 360s caller. If it is '', universal newline mode is enabled, but line 360s endings are returned to the caller untranslated. If it has any of 360s the other legal values, input lines are only terminated by the given 360s string, and the line ending is returned to the caller untranslated. 360s 360s * On output, if newline is None, any '\n' characters written are 360s translated to the system default line separator, os.linesep. If 360s newline is '', no translation takes place. If newline is any of the 360s other legal values, any '\n' characters written are translated to 360s the given string. 360s 360s closedfd is a bool. If closefd is False, the underlying file descriptor will 360s be kept open when the file is closed. This does not work when a file name is 360s given and must be True in that case. 360s 360s The newly created file is non-inheritable. 360s 360s A custom opener can be used by passing a callable as *opener*. The 360s underlying file descriptor for the file object is then obtained by calling 360s *opener* with (*file*, *flags*). *opener* must return an open file 360s descriptor (passing os.open as *opener* results in functionality similar to 360s passing None). 360s 360s open() returns a file object whose type depends on the mode, and 360s through which the standard file operations such as reading and writing 360s are performed. When open() is used to open a file in a text mode ('w', 360s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 360s a file in a binary mode, the returned class varies: in read binary 360s mode, it returns a BufferedReader; in write binary and append binary 360s modes, it returns a BufferedWriter, and in read/write mode, it returns 360s a BufferedRandom. 360s 360s It is also possible to use a string or bytearray as a file for both 360s reading and writing. For strings StringIO can be used like a file 360s opened in a text mode, and for bytes a BytesIO can be used like a file 360s opened in a binary mode. 360s """ 360s if not isinstance(file, int): 360s file = os.fspath(file) 360s if not isinstance(file, (str, bytes, int)): 360s raise TypeError("invalid file: %r" % file) 360s if not isinstance(mode, str): 360s raise TypeError("invalid mode: %r" % mode) 360s if not isinstance(buffering, int): 360s raise TypeError("invalid buffering: %r" % buffering) 360s if encoding is not None and not isinstance(encoding, str): 360s raise TypeError("invalid encoding: %r" % encoding) 360s if errors is not None and not isinstance(errors, str): 360s raise TypeError("invalid errors: %r" % errors) 360s modes = set(mode) 360s if modes - set("axrwb+t") or len(mode) > len(modes): 360s raise ValueError("invalid mode: %r" % mode) 360s creating = "x" in modes 360s reading = "r" in modes 360s writing = "w" in modes 360s appending = "a" in modes 360s updating = "+" in modes 360s text = "t" in modes 360s binary = "b" in modes 360s if text and binary: 360s raise ValueError("can't have text and binary mode at once") 360s if creating + reading + writing + appending > 1: 360s raise ValueError("can't have read/write/append mode at once") 360s if not (creating or reading or writing or appending): 360s raise ValueError("must have exactly one of read/write/append mode") 360s if binary and encoding is not None: 360s raise ValueError("binary mode doesn't take an encoding argument") 360s if binary and errors is not None: 360s raise ValueError("binary mode doesn't take an errors argument") 360s if binary and newline is not None: 360s raise ValueError("binary mode doesn't take a newline argument") 360s if binary and buffering == 1: 360s import warnings 360s warnings.warn("line buffering (buffering=1) isn't supported in binary " 360s "mode, the default buffer size will be used", 360s RuntimeWarning, 2) 360s raw = FileIO(file, 360s (creating and "x" or "") + 360s (reading and "r" or "") + 360s (writing and "w" or "") + 360s (appending and "a" or "") + 360s (updating and "+" or ""), 360s closefd, opener=opener) 360s result = raw 360s try: 360s line_buffering = False 360s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 360s ^^^^^^^^^^^^^^^^^^^^^ 360s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 360s 360s /usr/lib/python3.14/_pyio.py:242: AttributeError 360s =============================== warnings summary =============================== 360s eventlet/greenpool.py:95 360s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 360s return 360s 360s tests/api_test.py: 2 warnings 360s tests/convenience_test.py: 2 warnings 360s tests/greenio_test.py: 1 warning 360s tests/ssl_test.py: 26 warnings 360s tests/wsgi_test.py: 9 warnings 360s tests/websocket_test.py: 2 warnings 360s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 360s context = _original_sslcontext(protocol=ssl_version) 360s 360s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 360s tests/backdoor_test.py::BackdoorTest::test_server 360s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 360s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored while finalizing file <_io.TextIOWrapper mode='rw' encoding='UTF-8'>: None 360s 360s Traceback (most recent call last): 360s File "/usr/lib/python3.14/socket.py", line 743, in write 360s return self._sock.send(b) 360s ~~~~~~~~~~~~~~~^^^ 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 383, in send 360s return self._send_loop(self.fd.send, data, flags) 360s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 370, in _send_loop 360s return send_method(data, *args) 360s BrokenPipeError: [Errno 32] Broken pipe 360s 360s During handling of the above exception, another exception occurred: 360s 360s Traceback (most recent call last): 360s File "/usr/lib/python3.14/socket.py", line 743, in write 360s return self._sock.send(b) 360s ~~~~~~~~~~~~~~~^^^ 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 383, in send 360s return self._send_loop(self.fd.send, data, flags) 360s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 360s File "/tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenio/base.py", line 370, in _send_loop 360s return send_method(data, *args) 360s BrokenPipeError: [Errno 32] Broken pipe 360s 360s 360s warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) 360s 360s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 360s /tmp/autopkgtest.YEdMQf/build.l07/src/tests/not_asyncio_test.py:22: RuntimeWarning: coroutine 'test_spawn_from_coroutine_errors..go' was never awaited 360s with pytest.raises(RuntimeError): 360s Enable tracemalloc to get traceback where the object was allocated. 360s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 360s 360s tests/openssl_test.py::test_import 360s tests/openssl_test.py::test_import 360s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography. 360s from OpenSSL.crypto import * 360s 360s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 360s /tmp/autopkgtest.YEdMQf/build.l07/src/tests/ssl_test.py:333: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 360s context = ssl.SSLContext(ssl.PROTOCOL_TLS) 360s 360s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 360s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated 360s context = _original_sslcontext(protocol=ssl_version) 360s 360s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 360s /tmp/autopkgtest.YEdMQf/build.l07/src/eventlet/greenthread.py:272: DeprecationWarning: capitalize_response_headers is disabled. 360s Please, make sure you know what you are doing. 360s HTTP headers names are case-insensitive per RFC standard. 360s Most likely, you need to fix HTTP parsing in your client software. 360s result = function(*args, **kwargs) 360s 360s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 360s =========================== short test summary info ============================ 360s FAILED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end - Attrib... 360s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe - AttributeError: 'Gre... 360s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_read - AttributeError:... 360s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 360s FAILED tests/greenio_test.py::test_pipe_context - AttributeError: 'GreenFileI... 360s FAILED tests/greenio_test.py::test_greenpipe_write - AttributeError: 'GreenFi... 360s FAILED tests/greenio_test.py::test_greenpipe_append - AttributeError: 'GreenF... 360s FAILED tests/greenio_test.py::test_greenpipe_read_overwrite - AttributeError:... 360s FAILED tests/greenio_test.py::test_greenpipe_write_plus - AttributeError: 'Gr... 360s FAILED tests/greenio_test.py::test_greenpipe_append_plus - AttributeError: 'G... 360s FAILED tests/patcher_test.py::test_regular_file_readall - AssertionError: Exp... 360s FAILED tests/subprocess_test.py::test_universal_lines - AttributeError: 'Gree... 360s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 360s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 360s ====== 12 failed, 617 passed, 89 skipped, 52 warnings, 2 errors in 50.93s ====== 361s autopkgtest [01:52:58]: test unittests: -----------------------] 361s autopkgtest [01:52:58]: test unittests: - - - - - - - - - - results - - - - - - - - - - 361s unittests FAIL non-zero exit status 1 361s autopkgtest [01:52:58]: @@@@@@@@@@@@@@@@@@@@ summary 361s listen3 PASS 361s unittests FAIL non-zero exit status 1