0s autopkgtest [04:32:01]: starting date and time: 2026-02-06 04:32:01+0000 0s autopkgtest [04:32:01]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [04:32:01]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.6_lea_8f/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:netbase --apt-upgrade python-eventlet --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=netbase/6.5build1 -- lxd -r lxd-armhf-10.145.243.207 lxd-armhf-10.145.243.207:autopkgtest/ubuntu/resolute/armhf 23s autopkgtest [04:32:24]: testbed dpkg architecture: armhf 25s autopkgtest [04:32:26]: testbed apt version: 3.1.14 29s autopkgtest [04:32:30]: @@@@@@@@@@@@@@@@@@@@ test bed setup 31s autopkgtest [04:32:32]: testbed release detected to be: None 39s autopkgtest [04:32:40]: updating testbed package index (apt update) 41s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 41s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 41s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 41s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 41s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1593 kB] 43s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [32.6 kB] 43s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5260 B] 43s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [220 kB] 43s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [254 kB] 43s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1304 kB] 43s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [8048 B] 43s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1410 kB] 44s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 46s Get:14 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [310 kB] 46s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1374 kB] 46s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [14.9 MB] 47s Get:17 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [176 kB] 50s Fetched 43.2 MB in 9s (4745 kB/s) 51s Reading package lists... 57s autopkgtest [04:32:58]: upgrading testbed (apt dist-upgrade and autopurge) 59s Reading package lists... 59s Building dependency tree... 59s Reading state information... 60s Calculating upgrade... 60s The following packages will be upgraded: 60s netbase 60s 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 60s Need to get 13.0 kB of archives. 60s After this operation, 0 B of additional disk space will be used. 60s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf netbase all 6.5build1 [13.0 kB] 61s Fetched 13.0 kB in 0s (44.7 kB/s) 61s (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 ... 68395 files and directories currently installed.) 61s Preparing to unpack .../netbase_6.5build1_all.deb ... 61s Unpacking netbase (6.5build1) over (6.5) ... 61s Setting up netbase (6.5build1) ... 63s Reading package lists... 64s Building dependency tree... 64s Reading state information... 64s Solving dependencies... 65s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 66s autopkgtest [04:33:07]: rebooting testbed after setup commands that affected boot 110s autopkgtest [04:33:51]: testbed running kernel: Linux 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:00:09 UTC 2 136s autopkgtest [04:34:17]: @@@@@@@@@@@@@@@@@@@@ apt-source python-eventlet 150s Get:1 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (dsc) [2605 B] 150s Get:2 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (tar) [562 kB] 150s Get:3 http://ftpmaster.internal/ubuntu resolute/main python-eventlet 0.39.0-0ubuntu2 (diff) [24.3 kB] 151s gpgv: Signature made Mon Sep 15 17:48:29 2025 UTC 151s gpgv: using RSA key 50C4A0DDCF31E452CEB19B516569D855A744BE93 151s gpgv: Can't check signature: No public key 151s dpkg-source: warning: cannot verify inline signature for ./python-eventlet_0.39.0-0ubuntu2.dsc: no acceptable signature found 151s autopkgtest [04:34:32]: testing package python-eventlet version 0.39.0-0ubuntu2 153s autopkgtest [04:34:34]: build not needed 155s autopkgtest [04:34:36]: test listen3: preparing testbed 157s Reading package lists... 157s Building dependency tree... 157s Reading state information... 157s Solving dependencies... 158s The following NEW packages will be installed: 158s python3-dnspython python3-eventlet python3-greenlet 158s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 158s Need to get 628 kB of archives. 158s After this operation, 3255 kB of additional disk space will be used. 158s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 158s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf python3-greenlet armhf 3.2.4-3 [184 kB] 159s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf python3-eventlet all 0.39.0-0ubuntu2 [277 kB] 159s Fetched 628 kB in 1s (1134 kB/s) 159s Selecting previously unselected package python3-dnspython. 159s (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 ... 68395 files and directories currently installed.) 159s Preparing to unpack .../python3-dnspython_2.7.0-1ubuntu2_all.deb ... 159s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 159s Selecting previously unselected package python3-greenlet. 159s Preparing to unpack .../python3-greenlet_3.2.4-3_armhf.deb ... 159s Unpacking python3-greenlet (3.2.4-3) ... 159s Selecting previously unselected package python3-eventlet. 159s Preparing to unpack .../python3-eventlet_0.39.0-0ubuntu2_all.deb ... 159s Unpacking python3-eventlet (0.39.0-0ubuntu2) ... 159s Setting up python3-greenlet (3.2.4-3) ... 159s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 160s Setting up python3-eventlet (0.39.0-0ubuntu2) ... 168s autopkgtest [04:34:49]: test listen3: [----------------------- 171s autopkgtest [04:34:52]: test listen3: -----------------------] 175s autopkgtest [04:34:56]: test listen3: - - - - - - - - - - results - - - - - - - - - - 175s listen3 PASS 180s autopkgtest [04:35:01]: test unittests: preparing testbed 182s Reading package lists... 182s Building dependency tree... 182s Reading state information... 182s Solving dependencies... 183s The following NEW packages will be installed: 183s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 183s cpp-15-arm-linux-gnueabihf cpp-arm-linux-gnueabihf debhelper debugedit 183s dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz g++ 183s g++-15 g++-15-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc gcc-15 183s gcc-15-arm-linux-gnueabihf gcc-arm-linux-gnueabihf gettext intltool-debian 183s libarchive-zip-perl libasan8 libc-dev-bin libc6-dev libcc1-0 libcrypt-dev 183s libdebhelper-perl libdw1t64 libfile-stripnondeterminism-perl libgcc-15-dev 183s libgomp1 libisl23 libjson-perl libmpc3 libnorm1t64 libpgm-5.3-0t64 183s libpython3.14-minimal libpython3.14-stdlib libsodium23 libstdc++-15-dev 183s libtool libubsan1 libzmq5 linux-libc-dev m4 openstack-pkg-tools po-debconf 183s pybuild-plugin-pyproject python-eventlet-doc python3-alabaster python3-all 183s python3-build python3-defusedxml python3-docutils python3-execnet 183s python3-hatchling python3-imagesize python3-iniconfig python3-installer 183s python3-monotonic python3-pathspec python3-pbr python3-pip python3-pluggy 183s python3-pyproject-hooks python3-pytest python3-pytest-xdist 183s python3-roman-numerals python3-setuptools-scm python3-snowballstemmer 183s python3-sphinx python3-sphinxcontrib.apidoc python3-trove-classifiers 183s python3-wheel python3-zmq python3.14 python3.14-minimal rpcsvc-proto 183s sgml-base sphinx-common xml-core 183s 0 upgraded, 87 newly installed, 0 to remove and 0 not upgraded. 183s Need to get 70.0 MB of archives. 183s After this operation, 222 MB of additional disk space will be used. 183s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-minimal armhf 3.14.2-1 [905 kB] 183s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-minimal armhf 3.14.2-1 [2155 kB] 184s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf m4 armhf 1.4.20-2 [212 kB] 184s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf autoconf all 2.72-3.1ubuntu1 [384 kB] 184s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf autotools-dev all 20240727.1 [43.4 kB] 184s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf automake all 1:1.18.1-3build1 [582 kB] 184s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf autopoint all 0.23.2-1 [620 kB] 184s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libc-dev-bin armhf 2.42-2ubuntu4 [21.8 kB] 184s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf linux-libc-dev armhf 6.18.0-9.9 [1819 kB] 184s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libcrypt-dev armhf 1:4.5.1-1 [128 kB] 184s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf rpcsvc-proto armhf 1.4.3-1build1 [62.6 kB] 184s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libc6-dev armhf 2.42-2ubuntu4 [1416 kB] 184s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libisl23 armhf 0.27-1build1 [553 kB] 184s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libmpc3 armhf 1.3.1-2 [47.0 kB] 184s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-15-arm-linux-gnueabihf armhf 15.2.0-12ubuntu1 [10.1 MB] 184s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-15 armhf 15.2.0-12ubuntu1 [1032 B] 184s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [5756 B] 184s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf cpp armhf 4:15.2.0-4ubuntu1 [22.4 kB] 184s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf libcc1-0 armhf 15.2.0-12ubuntu1 [43.5 kB] 184s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libgomp1 armhf 15.2.0-12ubuntu1 [129 kB] 184s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libasan8 armhf 15.2.0-12ubuntu1 [2949 kB] 184s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libubsan1 armhf 15.2.0-12ubuntu1 [1187 kB] 184s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-15-dev armhf 15.2.0-12ubuntu1 [898 kB] 184s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-arm-linux-gnueabihf armhf 15.2.0-12ubuntu1 [19.5 MB] 185s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15 armhf 15.2.0-12ubuntu1 [499 kB] 185s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [1220 B] 185s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf gcc armhf 4:15.2.0-4ubuntu1 [5022 B] 185s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++-15-dev armhf 15.2.0-12ubuntu1 [2638 kB] 185s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf g++-15-arm-linux-gnueabihf armhf 15.2.0-12ubuntu1 [11.4 MB] 186s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf g++-15 armhf 15.2.0-12ubuntu1 [25.3 kB] 186s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf g++-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [968 B] 186s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf g++ armhf 4:15.2.0-4ubuntu1 [1086 B] 186s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf build-essential armhf 12.12ubuntu2 [5256 B] 186s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 186s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libtool all 2.5.4-9 [169 kB] 186s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf dh-autoreconf all 21 [12.5 kB] 186s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libarchive-zip-perl all 1.68-1 [90.2 kB] 186s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 186s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 186s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf libdw1t64 armhf 0.194-1 [254 kB] 186s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf debugedit armhf 1:5.2-3build1 [49.0 kB] 186s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf dwz armhf 0.16-2 [114 kB] 186s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.2-1 [1059 kB] 186s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 186s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf po-debconf all 1.0.22 [215 kB] 186s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf debhelper all 13.28ubuntu1 [916 kB] 186s Get:47 http://ftpmaster.internal/ubuntu resolute/universe armhf dh-python all 7.20260125 [122 kB] 186s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf sgml-base all 1.31+nmu1 [11.0 kB] 186s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf xml-core all 0.19build1 [20.3 kB] 186s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf docutils-common all 0.22.4+dfsg-1 [130 kB] 186s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-perl all 4.10000-1 [81.9 kB] 186s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf libnorm1t64 armhf 1.5.9+dfsg-4 [210 kB] 186s Get:53 http://ftpmaster.internal/ubuntu resolute/universe armhf libpgm-5.3-0t64 armhf 5.3.128~dfsg-2.1build2 [173 kB] 186s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-stdlib armhf 3.14.2-1 [2270 kB] 186s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf libsodium23 armhf 1.0.18-2 [141 kB] 186s Get:56 http://ftpmaster.internal/ubuntu resolute/universe armhf libzmq5 armhf 4.3.5-1build3 [271 kB] 186s Get:57 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 186s Get:58 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-wheel all 0.46.1-2 [22.1 kB] 186s Get:59 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-build all 1.2.2-5 [30.9 kB] 186s Get:60 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 186s Get:61 http://ftpmaster.internal/ubuntu resolute/universe armhf pybuild-plugin-pyproject all 7.20260125 [1712 B] 186s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf python-eventlet-doc all 0.39.0-0ubuntu2 [353 kB] 186s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14 armhf 3.14.2-1 [816 kB] 186s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf python3-all armhf 3.13.9-3 [890 B] 186s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf python3-defusedxml all 0.7.1-3build1 [42.4 kB] 186s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf python3-roman-numerals all 4.1.0-1 [8660 B] 186s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf python3-docutils all 0.22.4+dfsg-1 [439 kB] 186s Get:68 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-execnet all 2.1.1-1build1 [33.5 kB] 186s Get:69 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pathspec all 0.12.1-1build1 [24.6 kB] 186s Get:70 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pluggy all 1.6.0-2 [21.1 kB] 186s Get:71 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-trove-classifiers all 2025.11.14.15-1 [11.1 kB] 186s Get:72 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-hatchling all 1.28.0-1 [47.3 kB] 186s Get:73 http://ftpmaster.internal/ubuntu resolute/main armhf python3-imagesize all 1.4.1-1build1 [6900 B] 186s Get:74 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniconfig all 2.1.0-2 [6962 B] 186s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf python3-monotonic all 1.6-3build1 [5518 B] 186s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf python3-pbr all 6.1.1-0ubuntu2 [58.3 kB] 186s Get:77 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pip all 25.1.1+dfsg-1ubuntu2 [1416 kB] 186s Get:78 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest all 9.0.2-2 [277 kB] 186s Get:79 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest-xdist all 3.8.0-4 [34.7 kB] 186s Get:80 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-setuptools-scm all 8.2.1-4 [32.8 kB] 186s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf python3-snowballstemmer all 3.0.1-1 [65.9 kB] 186s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf sphinx-common all 8.2.3-12 [657 kB] 186s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf python3-alabaster all 0.7.16-0.1build1 [18.6 kB] 186s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf python3-sphinx all 8.2.3-12 [483 kB] 186s Get:85 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-sphinxcontrib.apidoc all 0.3.0-2ubuntu1 [8032 B] 186s Get:86 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-zmq armhf 27.1.0-1 [223 kB] 186s Get:87 http://ftpmaster.internal/ubuntu resolute/universe armhf openstack-pkg-tools all 140 [103 kB] 187s Fetched 70.0 MB in 4s (19.5 MB/s) 187s Selecting previously unselected package libpython3.14-minimal:armhf. 187s (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 ... 68799 files and directories currently installed.) 187s Preparing to unpack .../00-libpython3.14-minimal_3.14.2-1_armhf.deb ... 187s Unpacking libpython3.14-minimal:armhf (3.14.2-1) ... 187s Selecting previously unselected package python3.14-minimal. 187s Preparing to unpack .../01-python3.14-minimal_3.14.2-1_armhf.deb ... 187s Unpacking python3.14-minimal (3.14.2-1) ... 187s Selecting previously unselected package m4. 187s Preparing to unpack .../02-m4_1.4.20-2_armhf.deb ... 187s Unpacking m4 (1.4.20-2) ... 187s Selecting previously unselected package autoconf. 187s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 187s Unpacking autoconf (2.72-3.1ubuntu1) ... 187s Selecting previously unselected package autotools-dev. 187s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 187s Unpacking autotools-dev (20240727.1) ... 187s Selecting previously unselected package automake. 187s Preparing to unpack .../05-automake_1%3a1.18.1-3build1_all.deb ... 187s Unpacking automake (1:1.18.1-3build1) ... 188s Selecting previously unselected package autopoint. 188s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 188s Unpacking autopoint (0.23.2-1) ... 188s Selecting previously unselected package libc-dev-bin. 188s Preparing to unpack .../07-libc-dev-bin_2.42-2ubuntu4_armhf.deb ... 188s Unpacking libc-dev-bin (2.42-2ubuntu4) ... 188s Selecting previously unselected package linux-libc-dev:armhf. 188s Preparing to unpack .../08-linux-libc-dev_6.18.0-9.9_armhf.deb ... 188s Unpacking linux-libc-dev:armhf (6.18.0-9.9) ... 188s Selecting previously unselected package libcrypt-dev:armhf. 188s Preparing to unpack .../09-libcrypt-dev_1%3a4.5.1-1_armhf.deb ... 188s Unpacking libcrypt-dev:armhf (1:4.5.1-1) ... 188s Selecting previously unselected package rpcsvc-proto. 188s Preparing to unpack .../10-rpcsvc-proto_1.4.3-1build1_armhf.deb ... 188s Unpacking rpcsvc-proto (1.4.3-1build1) ... 188s Selecting previously unselected package libc6-dev:armhf. 188s Preparing to unpack .../11-libc6-dev_2.42-2ubuntu4_armhf.deb ... 188s Unpacking libc6-dev:armhf (2.42-2ubuntu4) ... 188s Selecting previously unselected package libisl23:armhf. 188s Preparing to unpack .../12-libisl23_0.27-1build1_armhf.deb ... 188s Unpacking libisl23:armhf (0.27-1build1) ... 188s Selecting previously unselected package libmpc3:armhf. 188s Preparing to unpack .../13-libmpc3_1.3.1-2_armhf.deb ... 188s Unpacking libmpc3:armhf (1.3.1-2) ... 188s Selecting previously unselected package cpp-15-arm-linux-gnueabihf. 188s Preparing to unpack .../14-cpp-15-arm-linux-gnueabihf_15.2.0-12ubuntu1_armhf.deb ... 188s Unpacking cpp-15-arm-linux-gnueabihf (15.2.0-12ubuntu1) ... 188s Selecting previously unselected package cpp-15. 188s Preparing to unpack .../15-cpp-15_15.2.0-12ubuntu1_armhf.deb ... 188s Unpacking cpp-15 (15.2.0-12ubuntu1) ... 188s Selecting previously unselected package cpp-arm-linux-gnueabihf. 188s Preparing to unpack .../16-cpp-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 188s Unpacking cpp-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 189s Selecting previously unselected package cpp. 189s Preparing to unpack .../17-cpp_4%3a15.2.0-4ubuntu1_armhf.deb ... 189s Unpacking cpp (4:15.2.0-4ubuntu1) ... 189s Selecting previously unselected package libcc1-0:armhf. 189s Preparing to unpack .../18-libcc1-0_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking libcc1-0:armhf (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package libgomp1:armhf. 189s Preparing to unpack .../19-libgomp1_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking libgomp1:armhf (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package libasan8:armhf. 189s Preparing to unpack .../20-libasan8_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking libasan8:armhf (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package libubsan1:armhf. 189s Preparing to unpack .../21-libubsan1_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking libubsan1:armhf (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package libgcc-15-dev:armhf. 189s Preparing to unpack .../22-libgcc-15-dev_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking libgcc-15-dev:armhf (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package gcc-15-arm-linux-gnueabihf. 189s Preparing to unpack .../23-gcc-15-arm-linux-gnueabihf_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking gcc-15-arm-linux-gnueabihf (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package gcc-15. 189s Preparing to unpack .../24-gcc-15_15.2.0-12ubuntu1_armhf.deb ... 189s Unpacking gcc-15 (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package gcc-arm-linux-gnueabihf. 190s Preparing to unpack .../25-gcc-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 190s Unpacking gcc-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 190s Selecting previously unselected package gcc. 190s Preparing to unpack .../26-gcc_4%3a15.2.0-4ubuntu1_armhf.deb ... 190s Unpacking gcc (4:15.2.0-4ubuntu1) ... 190s Selecting previously unselected package libstdc++-15-dev:armhf. 190s Preparing to unpack .../27-libstdc++-15-dev_15.2.0-12ubuntu1_armhf.deb ... 190s Unpacking libstdc++-15-dev:armhf (15.2.0-12ubuntu1) ... 190s Selecting previously unselected package g++-15-arm-linux-gnueabihf. 190s Preparing to unpack .../28-g++-15-arm-linux-gnueabihf_15.2.0-12ubuntu1_armhf.deb ... 190s Unpacking g++-15-arm-linux-gnueabihf (15.2.0-12ubuntu1) ... 190s Selecting previously unselected package g++-15. 190s Preparing to unpack .../29-g++-15_15.2.0-12ubuntu1_armhf.deb ... 190s Unpacking g++-15 (15.2.0-12ubuntu1) ... 190s Selecting previously unselected package g++-arm-linux-gnueabihf. 190s Preparing to unpack .../30-g++-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 190s Unpacking g++-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 190s Selecting previously unselected package g++. 190s Preparing to unpack .../31-g++_4%3a15.2.0-4ubuntu1_armhf.deb ... 190s Unpacking g++ (4:15.2.0-4ubuntu1) ... 190s Selecting previously unselected package build-essential. 190s Preparing to unpack .../32-build-essential_12.12ubuntu2_armhf.deb ... 190s Unpacking build-essential (12.12ubuntu2) ... 190s Selecting previously unselected package libdebhelper-perl. 190s Preparing to unpack .../33-libdebhelper-perl_13.28ubuntu1_all.deb ... 190s Unpacking libdebhelper-perl (13.28ubuntu1) ... 190s Selecting previously unselected package libtool. 190s Preparing to unpack .../34-libtool_2.5.4-9_all.deb ... 191s Unpacking libtool (2.5.4-9) ... 191s Selecting previously unselected package dh-autoreconf. 191s Preparing to unpack .../35-dh-autoreconf_21_all.deb ... 191s Unpacking dh-autoreconf (21) ... 191s Selecting previously unselected package libarchive-zip-perl. 191s Preparing to unpack .../36-libarchive-zip-perl_1.68-1_all.deb ... 191s Unpacking libarchive-zip-perl (1.68-1) ... 191s Selecting previously unselected package libfile-stripnondeterminism-perl. 191s Preparing to unpack .../37-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 191s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 191s Selecting previously unselected package dh-strip-nondeterminism. 191s Preparing to unpack .../38-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 191s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 191s Selecting previously unselected package libdw1t64:armhf. 191s Preparing to unpack .../39-libdw1t64_0.194-1_armhf.deb ... 191s Unpacking libdw1t64:armhf (0.194-1) ... 191s Selecting previously unselected package debugedit. 191s Preparing to unpack .../40-debugedit_1%3a5.2-3build1_armhf.deb ... 191s Unpacking debugedit (1:5.2-3build1) ... 191s Selecting previously unselected package dwz. 191s Preparing to unpack .../41-dwz_0.16-2_armhf.deb ... 191s Unpacking dwz (0.16-2) ... 191s Selecting previously unselected package gettext. 191s Preparing to unpack .../42-gettext_0.23.2-1_armhf.deb ... 191s Unpacking gettext (0.23.2-1) ... 191s Selecting previously unselected package intltool-debian. 191s Preparing to unpack .../43-intltool-debian_0.35.0+20060710.6build1_all.deb ... 191s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 191s Selecting previously unselected package po-debconf. 191s Preparing to unpack .../44-po-debconf_1.0.22_all.deb ... 191s Unpacking po-debconf (1.0.22) ... 191s Selecting previously unselected package debhelper. 191s Preparing to unpack .../45-debhelper_13.28ubuntu1_all.deb ... 191s Unpacking debhelper (13.28ubuntu1) ... 191s Selecting previously unselected package dh-python. 191s Preparing to unpack .../46-dh-python_7.20260125_all.deb ... 191s Unpacking dh-python (7.20260125) ... 191s Selecting previously unselected package sgml-base. 191s Preparing to unpack .../47-sgml-base_1.31+nmu1_all.deb ... 191s Unpacking sgml-base (1.31+nmu1) ... 191s Selecting previously unselected package xml-core. 191s Preparing to unpack .../48-xml-core_0.19build1_all.deb ... 191s Unpacking xml-core (0.19build1) ... 191s Selecting previously unselected package docutils-common. 191s Preparing to unpack .../49-docutils-common_0.22.4+dfsg-1_all.deb ... 191s Unpacking docutils-common (0.22.4+dfsg-1) ... 191s Selecting previously unselected package libjson-perl. 191s Preparing to unpack .../50-libjson-perl_4.10000-1_all.deb ... 191s Unpacking libjson-perl (4.10000-1) ... 191s Selecting previously unselected package libnorm1t64:armhf. 191s Preparing to unpack .../51-libnorm1t64_1.5.9+dfsg-4_armhf.deb ... 191s Unpacking libnorm1t64:armhf (1.5.9+dfsg-4) ... 191s Selecting previously unselected package libpgm-5.3-0t64:armhf. 191s Preparing to unpack .../52-libpgm-5.3-0t64_5.3.128~dfsg-2.1build2_armhf.deb ... 191s Unpacking libpgm-5.3-0t64:armhf (5.3.128~dfsg-2.1build2) ... 192s Selecting previously unselected package libpython3.14-stdlib:armhf. 192s Preparing to unpack .../53-libpython3.14-stdlib_3.14.2-1_armhf.deb ... 192s Unpacking libpython3.14-stdlib:armhf (3.14.2-1) ... 192s Selecting previously unselected package libsodium23:armhf. 192s Preparing to unpack .../54-libsodium23_1.0.18-2_armhf.deb ... 192s Unpacking libsodium23:armhf (1.0.18-2) ... 192s Selecting previously unselected package libzmq5:armhf. 192s Preparing to unpack .../55-libzmq5_4.3.5-1build3_armhf.deb ... 192s Unpacking libzmq5:armhf (4.3.5-1build3) ... 192s Selecting previously unselected package python3-pyproject-hooks. 192s Preparing to unpack .../56-python3-pyproject-hooks_1.2.0-1_all.deb ... 192s Unpacking python3-pyproject-hooks (1.2.0-1) ... 192s Selecting previously unselected package python3-wheel. 192s Preparing to unpack .../57-python3-wheel_0.46.1-2_all.deb ... 192s Unpacking python3-wheel (0.46.1-2) ... 192s Selecting previously unselected package python3-build. 192s Preparing to unpack .../58-python3-build_1.2.2-5_all.deb ... 192s Unpacking python3-build (1.2.2-5) ... 192s Selecting previously unselected package python3-installer. 192s Preparing to unpack .../59-python3-installer_0.7.0+dfsg1-3_all.deb ... 192s Unpacking python3-installer (0.7.0+dfsg1-3) ... 192s Selecting previously unselected package pybuild-plugin-pyproject. 192s Preparing to unpack .../60-pybuild-plugin-pyproject_7.20260125_all.deb ... 192s Unpacking pybuild-plugin-pyproject (7.20260125) ... 192s Selecting previously unselected package python-eventlet-doc. 192s Preparing to unpack .../61-python-eventlet-doc_0.39.0-0ubuntu2_all.deb ... 192s Unpacking python-eventlet-doc (0.39.0-0ubuntu2) ... 192s Selecting previously unselected package python3.14. 192s Preparing to unpack .../62-python3.14_3.14.2-1_armhf.deb ... 192s Unpacking python3.14 (3.14.2-1) ... 192s Selecting previously unselected package python3-all. 192s Preparing to unpack .../63-python3-all_3.13.9-3_armhf.deb ... 192s Unpacking python3-all (3.13.9-3) ... 192s Selecting previously unselected package python3-defusedxml. 192s Preparing to unpack .../64-python3-defusedxml_0.7.1-3build1_all.deb ... 192s Unpacking python3-defusedxml (0.7.1-3build1) ... 192s Selecting previously unselected package python3-roman-numerals. 192s Preparing to unpack .../65-python3-roman-numerals_4.1.0-1_all.deb ... 192s Unpacking python3-roman-numerals (4.1.0-1) ... 192s Selecting previously unselected package python3-docutils. 192s Preparing to unpack .../66-python3-docutils_0.22.4+dfsg-1_all.deb ... 192s Unpacking python3-docutils (0.22.4+dfsg-1) ... 192s Selecting previously unselected package python3-execnet. 192s Preparing to unpack .../67-python3-execnet_2.1.1-1build1_all.deb ... 192s Unpacking python3-execnet (2.1.1-1build1) ... 192s Selecting previously unselected package python3-pathspec. 192s Preparing to unpack .../68-python3-pathspec_0.12.1-1build1_all.deb ... 192s Unpacking python3-pathspec (0.12.1-1build1) ... 192s Selecting previously unselected package python3-pluggy. 192s Preparing to unpack .../69-python3-pluggy_1.6.0-2_all.deb ... 192s Unpacking python3-pluggy (1.6.0-2) ... 192s Selecting previously unselected package python3-trove-classifiers. 192s Preparing to unpack .../70-python3-trove-classifiers_2025.11.14.15-1_all.deb ... 192s Unpacking python3-trove-classifiers (2025.11.14.15-1) ... 193s Selecting previously unselected package python3-hatchling. 193s Preparing to unpack .../71-python3-hatchling_1.28.0-1_all.deb ... 193s Unpacking python3-hatchling (1.28.0-1) ... 193s Selecting previously unselected package python3-imagesize. 193s Preparing to unpack .../72-python3-imagesize_1.4.1-1build1_all.deb ... 193s Unpacking python3-imagesize (1.4.1-1build1) ... 193s Selecting previously unselected package python3-iniconfig. 193s Preparing to unpack .../73-python3-iniconfig_2.1.0-2_all.deb ... 193s Unpacking python3-iniconfig (2.1.0-2) ... 193s Selecting previously unselected package python3-monotonic. 193s Preparing to unpack .../74-python3-monotonic_1.6-3build1_all.deb ... 193s Unpacking python3-monotonic (1.6-3build1) ... 193s Selecting previously unselected package python3-pbr. 193s Preparing to unpack .../75-python3-pbr_6.1.1-0ubuntu2_all.deb ... 193s Unpacking python3-pbr (6.1.1-0ubuntu2) ... 193s Selecting previously unselected package python3-pip. 193s Preparing to unpack .../76-python3-pip_25.1.1+dfsg-1ubuntu2_all.deb ... 193s Unpacking python3-pip (25.1.1+dfsg-1ubuntu2) ... 193s Selecting previously unselected package python3-pytest. 193s Preparing to unpack .../77-python3-pytest_9.0.2-2_all.deb ... 193s Unpacking python3-pytest (9.0.2-2) ... 193s Selecting previously unselected package python3-pytest-xdist. 193s Preparing to unpack .../78-python3-pytest-xdist_3.8.0-4_all.deb ... 193s Unpacking python3-pytest-xdist (3.8.0-4) ... 193s Selecting previously unselected package python3-setuptools-scm. 193s Preparing to unpack .../79-python3-setuptools-scm_8.2.1-4_all.deb ... 193s Unpacking python3-setuptools-scm (8.2.1-4) ... 193s Selecting previously unselected package python3-snowballstemmer. 193s Preparing to unpack .../80-python3-snowballstemmer_3.0.1-1_all.deb ... 193s Unpacking python3-snowballstemmer (3.0.1-1) ... 193s Selecting previously unselected package sphinx-common. 193s Preparing to unpack .../81-sphinx-common_8.2.3-12_all.deb ... 193s Unpacking sphinx-common (8.2.3-12) ... 193s Selecting previously unselected package python3-alabaster. 193s Preparing to unpack .../82-python3-alabaster_0.7.16-0.1build1_all.deb ... 193s Unpacking python3-alabaster (0.7.16-0.1build1) ... 193s Selecting previously unselected package python3-sphinx. 193s Preparing to unpack .../83-python3-sphinx_8.2.3-12_all.deb ... 193s Unpacking python3-sphinx (8.2.3-12) ... 194s Selecting previously unselected package python3-sphinxcontrib.apidoc. 194s Preparing to unpack .../84-python3-sphinxcontrib.apidoc_0.3.0-2ubuntu1_all.deb ... 194s Unpacking python3-sphinxcontrib.apidoc (0.3.0-2ubuntu1) ... 194s Selecting previously unselected package python3-zmq. 194s Preparing to unpack .../85-python3-zmq_27.1.0-1_armhf.deb ... 194s Unpacking python3-zmq (27.1.0-1) ... 194s Selecting previously unselected package openstack-pkg-tools. 194s Preparing to unpack .../86-openstack-pkg-tools_140_all.deb ... 194s Unpacking openstack-pkg-tools (140) ... 194s Setting up dh-python (7.20260125) ... 194s Setting up python3-iniconfig (2.1.0-2) ... 194s Setting up libnorm1t64:armhf (1.5.9+dfsg-4) ... 194s Setting up libsodium23:armhf (1.0.18-2) ... 194s Setting up python3-defusedxml (0.7.1-3build1) ... 195s Setting up python3-pbr (6.1.1-0ubuntu2) ... 195s Setting up libarchive-zip-perl (1.68-1) ... 195s Setting up python3-alabaster (0.7.16-0.1build1) ... 195s Setting up libdebhelper-perl (13.28ubuntu1) ... 195s Setting up libpython3.14-minimal:armhf (3.14.2-1) ... 195s Setting up linux-libc-dev:armhf (6.18.0-9.9) ... 195s Setting up m4 (1.4.20-2) ... 195s Setting up python-eventlet-doc (0.39.0-0ubuntu2) ... 195s Setting up libgomp1:armhf (15.2.0-12ubuntu1) ... 195s Setting up python3-wheel (0.46.1-2) ... 195s Setting up python3-setuptools-scm (8.2.1-4) ... 196s Setting up libdw1t64:armhf (0.194-1) ... 196s Setting up python3-monotonic (1.6-3build1) ... 196s Setting up libpgm-5.3-0t64:armhf (5.3.128~dfsg-2.1build2) ... 196s Setting up autotools-dev (20240727.1) ... 196s Setting up rpcsvc-proto (1.4.3-1build1) ... 196s Setting up python3-pyproject-hooks (1.2.0-1) ... 196s Setting up python3-snowballstemmer (3.0.1-1) ... 197s Setting up libmpc3:armhf (1.3.1-2) ... 197s Setting up autopoint (0.23.2-1) ... 197s Setting up python3-pip (25.1.1+dfsg-1ubuntu2) ... 199s Setting up python3-installer (0.7.0+dfsg1-3) ... 199s Setting up autoconf (2.72-3.1ubuntu1) ... 199s Setting up python3-pluggy (1.6.0-2) ... 200s Setting up libubsan1:armhf (15.2.0-12ubuntu1) ... 200s Setting up dwz (0.16-2) ... 200s Setting up python3-trove-classifiers (2025.11.14.15-1) ... 200s Setting up libcrypt-dev:armhf (1:4.5.1-1) ... 200s Setting up libasan8:armhf (15.2.0-12ubuntu1) ... 200s Setting up libjson-perl (4.10000-1) ... 200s Setting up debugedit (1:5.2-3build1) ... 200s Setting up python3-roman-numerals (4.1.0-1) ... 200s Setting up sgml-base (1.31+nmu1) ... 200s Setting up libisl23:armhf (0.27-1build1) ... 200s Setting up python3-build (1.2.2-5) ... 200s Setting up libc-dev-bin (2.42-2ubuntu4) ... 200s Setting up python3-execnet (2.1.1-1build1) ... 201s Setting up python3-pathspec (0.12.1-1build1) ... 201s Setting up cpp-15-arm-linux-gnueabihf (15.2.0-12ubuntu1) ... 201s Setting up python3.14-minimal (3.14.2-1) ... 202s Setting up libcc1-0:armhf (15.2.0-12ubuntu1) ... 202s Setting up cpp-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 202s Setting up python3-imagesize (1.4.1-1build1) ... 202s Setting up automake (1:1.18.1-3build1) ... 202s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 202s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 202s Setting up gettext (0.23.2-1) ... 202s Setting up libgcc-15-dev:armhf (15.2.0-12ubuntu1) ... 202s Setting up libzmq5:armhf (4.3.5-1build3) ... 202s Setting up gcc-15-arm-linux-gnueabihf (15.2.0-12ubuntu1) ... 202s Setting up libpython3.14-stdlib:armhf (3.14.2-1) ... 202s Setting up pybuild-plugin-pyproject (7.20260125) ... 202s Setting up python3-pytest (9.0.2-2) ... 203s Setting up intltool-debian (0.35.0+20060710.6build1) ... 203s Setting up python3-zmq (27.1.0-1) ... 203s Setting up sphinx-common (8.2.3-12) ... 203s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 203s Setting up cpp-15 (15.2.0-12ubuntu1) ... 203s Setting up cpp (4:15.2.0-4ubuntu1) ... 203s Setting up xml-core (0.19build1) ... 204s Setting up libc6-dev:armhf (2.42-2ubuntu4) ... 204s Setting up python3-hatchling (1.28.0-1) ... 204s Setting up python3.14 (3.14.2-1) ... 205s Setting up gcc-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 205s Setting up python3-pytest-xdist (3.8.0-4) ... 206s Setting up po-debconf (1.0.22) ... 206s Setting up python3-all (3.13.9-3) ... 206s Setting up openstack-pkg-tools (140) ... 206s Setting up gcc-15 (15.2.0-12ubuntu1) ... 206s Setting up libstdc++-15-dev:armhf (15.2.0-12ubuntu1) ... 206s Setting up libtool (2.5.4-9) ... 206s Setting up g++-15-arm-linux-gnueabihf (15.2.0-12ubuntu1) ... 206s Setting up gcc (4:15.2.0-4ubuntu1) ... 206s Setting up dh-autoreconf (21) ... 206s Setting up g++-15 (15.2.0-12ubuntu1) ... 206s Setting up g++-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 206s Setting up debhelper (13.28ubuntu1) ... 206s Setting up g++ (4:15.2.0-4ubuntu1) ... 206s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 206s Setting up build-essential (12.12ubuntu2) ... 206s Processing triggers for install-info (7.2-5) ... 206s Processing triggers for libc-bin (2.42-2ubuntu4) ... 206s Processing triggers for systemd (259-1ubuntu3) ... 206s Processing triggers for man-db (2.13.1-1) ... 208s Processing triggers for sgml-base (1.31+nmu1) ... 208s Setting up docutils-common (0.22.4+dfsg-1) ... 208s Processing triggers for sgml-base (1.31+nmu1) ... 208s Setting up python3-docutils (0.22.4+dfsg-1) ... 209s Setting up python3-sphinx (8.2.3-12) ... 211s Setting up python3-sphinxcontrib.apidoc (0.3.0-2ubuntu1) ... 222s autopkgtest [04:35:43]: test unittests: [----------------------- 225s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated 225s !! 225s 225s ******************************************************************************** 225s 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). 225s 225s By 2026-Feb-18, you need to update your project and remove deprecated calls 225s or your builds will no longer be supported. 225s 225s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 225s ******************************************************************************** 225s 225s !! 225s corresp(dist, value, root_dir) 225s /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. 225s !! 225s 225s ******************************************************************************** 225s Please consider removing the following classifiers in favor of a SPDX license expression: 225s 225s License :: OSI Approved :: MIT License 225s 225s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 225s ******************************************************************************** 225s 225s !! 225s dist._finalize_license_expression() 225s /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. 225s !! 225s 225s ******************************************************************************** 225s Please consider removing the following classifiers in favor of a SPDX license expression: 225s 225s License :: OSI Approved :: MIT License 225s 225s See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 225s ******************************************************************************** 225s 225s !! 225s self._finalize_license_expression() 225s /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 225s !! 225s 225s ******************************************************************************** 225s Please avoid running ``setup.py`` directly. 225s Instead, use pypa/build, pypa/installer or other 225s standards-based tools. 225s 225s See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 225s ******************************************************************************** 225s 225s !! 225s self.initialize_options() 225s running install 225s running build 225s running build_py 225s creating build/lib/eventlet 225s copying eventlet/__init__.py -> build/lib/eventlet 225s copying eventlet/_version.py -> build/lib/eventlet 225s copying eventlet/asyncio.py -> build/lib/eventlet 225s copying eventlet/backdoor.py -> build/lib/eventlet 225s copying eventlet/convenience.py -> build/lib/eventlet 225s copying eventlet/corolocal.py -> build/lib/eventlet 225s copying eventlet/coros.py -> build/lib/eventlet 225s copying eventlet/dagpool.py -> build/lib/eventlet 225s copying eventlet/db_pool.py -> build/lib/eventlet 225s copying eventlet/debug.py -> build/lib/eventlet 225s copying eventlet/event.py -> build/lib/eventlet 225s copying eventlet/greenpool.py -> build/lib/eventlet 225s copying eventlet/greenthread.py -> build/lib/eventlet 225s copying eventlet/lock.py -> build/lib/eventlet 225s copying eventlet/patcher.py -> build/lib/eventlet 225s copying eventlet/pools.py -> build/lib/eventlet 225s copying eventlet/queue.py -> build/lib/eventlet 225s copying eventlet/semaphore.py -> build/lib/eventlet 225s copying eventlet/timeout.py -> build/lib/eventlet 225s copying eventlet/tpool.py -> build/lib/eventlet 225s copying eventlet/websocket.py -> build/lib/eventlet 225s copying eventlet/wsgi.py -> build/lib/eventlet 225s running egg_info 225s creating eventlet.egg-info 225s writing eventlet.egg-info/PKG-INFO 225s writing dependency_links to eventlet.egg-info/dependency_links.txt 225s writing requirements to eventlet.egg-info/requires.txt 225s writing top-level names to eventlet.egg-info/top_level.txt 225s writing manifest file 'eventlet.egg-info/SOURCES.txt' 225s reading manifest file 'eventlet.egg-info/SOURCES.txt' 225s reading manifest template 'MANIFEST.in' 225s warning: no files found matching 'Makefile' under directory 'doc' 225s adding license file 'LICENSE' 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.green' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.green' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.green' to be distributed and are 225s already explicitly excluding 'eventlet.green' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.OpenSSL' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.green.OpenSSL' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.green.OpenSSL' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.green.OpenSSL' to be distributed and are 225s already explicitly excluding 'eventlet.green.OpenSSL' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.http' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.green.http' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.green.http' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.green.http' to be distributed and are 225s already explicitly excluding 'eventlet.green.http' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.green.urllib' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.green.urllib' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.green.urllib' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.green.urllib' to be distributed and are 225s already explicitly excluding 'eventlet.green.urllib' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s adding license file 'AUTHORS' 225s writing manifest file 'eventlet.egg-info/SOURCES.txt' 225s creating build/lib/eventlet/green 225s copying eventlet/green/BaseHTTPServer.py -> build/lib/eventlet/green 225s copying eventlet/green/CGIHTTPServer.py -> build/lib/eventlet/green 225s copying eventlet/green/MySQLdb.py -> build/lib/eventlet/green 225s copying eventlet/green/Queue.py -> build/lib/eventlet/green 225s copying eventlet/green/SimpleHTTPServer.py -> build/lib/eventlet/green 225s copying eventlet/green/SocketServer.py -> build/lib/eventlet/green 225s copying eventlet/green/__init__.py -> build/lib/eventlet/green 225s copying eventlet/green/_socket_nodns.py -> build/lib/eventlet/green 225s copying eventlet/green/asynchat.py -> build/lib/eventlet/green 225s copying eventlet/green/asyncore.py -> build/lib/eventlet/green 225s copying eventlet/green/builtin.py -> build/lib/eventlet/green 225s copying eventlet/green/ftplib.py -> build/lib/eventlet/green 225s copying eventlet/green/httplib.py -> build/lib/eventlet/green 225s copying eventlet/green/os.py -> build/lib/eventlet/green 225s copying eventlet/green/profile.py -> build/lib/eventlet/green 225s copying eventlet/green/select.py -> build/lib/eventlet/green 225s copying eventlet/green/selectors.py -> build/lib/eventlet/green 225s copying eventlet/green/socket.py -> build/lib/eventlet/green 225s copying eventlet/green/ssl.py -> build/lib/eventlet/green 225s copying eventlet/green/subprocess.py -> build/lib/eventlet/green 225s copying eventlet/green/thread.py -> build/lib/eventlet/green 225s copying eventlet/green/threading.py -> build/lib/eventlet/green 225s copying eventlet/green/time.py -> build/lib/eventlet/green 225s copying eventlet/green/urllib2.py -> build/lib/eventlet/green 225s copying eventlet/green/zmq.py -> build/lib/eventlet/green 225s creating build/lib/eventlet/green/OpenSSL 225s copying eventlet/green/OpenSSL/SSL.py -> build/lib/eventlet/green/OpenSSL 225s copying eventlet/green/OpenSSL/__init__.py -> build/lib/eventlet/green/OpenSSL 225s copying eventlet/green/OpenSSL/crypto.py -> build/lib/eventlet/green/OpenSSL 225s copying eventlet/green/OpenSSL/tsafe.py -> build/lib/eventlet/green/OpenSSL 225s copying eventlet/green/OpenSSL/version.py -> build/lib/eventlet/green/OpenSSL 225s creating build/lib/eventlet/green/http 225s copying eventlet/green/http/__init__.py -> build/lib/eventlet/green/http 225s copying eventlet/green/http/client.py -> build/lib/eventlet/green/http 225s copying eventlet/green/http/cookiejar.py -> build/lib/eventlet/green/http 225s copying eventlet/green/http/cookies.py -> build/lib/eventlet/green/http 225s copying eventlet/green/http/server.py -> build/lib/eventlet/green/http 225s creating build/lib/eventlet/green/urllib 225s copying eventlet/green/urllib/__init__.py -> build/lib/eventlet/green/urllib 225s copying eventlet/green/urllib/error.py -> build/lib/eventlet/green/urllib 225s copying eventlet/green/urllib/parse.py -> build/lib/eventlet/green/urllib 225s copying eventlet/green/urllib/request.py -> build/lib/eventlet/green/urllib 225s copying eventlet/green/urllib/response.py -> build/lib/eventlet/green/urllib 225s creating build/lib/eventlet/greenio 225s copying eventlet/greenio/__init__.py -> build/lib/eventlet/greenio 225s copying eventlet/greenio/base.py -> build/lib/eventlet/greenio 225s copying eventlet/greenio/py3.py -> build/lib/eventlet/greenio 225s creating build/lib/eventlet/hubs 225s copying eventlet/hubs/__init__.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/asyncio.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/epolls.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/hub.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/kqueue.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/poll.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/pyevent.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/selects.py -> build/lib/eventlet/hubs 225s copying eventlet/hubs/timer.py -> build/lib/eventlet/hubs 225s creating build/lib/eventlet/support 225s copying eventlet/support/__init__.py -> build/lib/eventlet/support 225s copying eventlet/support/greendns.py -> build/lib/eventlet/support 225s copying eventlet/support/greenlets.py -> build/lib/eventlet/support 225s copying eventlet/support/psycopg2_patcher.py -> build/lib/eventlet/support 225s copying eventlet/support/pylib.py -> build/lib/eventlet/support 225s copying eventlet/support/stacklesspypys.py -> build/lib/eventlet/support 225s copying eventlet/support/stacklesss.py -> build/lib/eventlet/support 225s creating build/lib/eventlet/zipkin 225s copying eventlet/zipkin/README.rst -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/__init__.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/api.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/client.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/greenthread.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/http.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/log.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/patcher.py -> build/lib/eventlet/zipkin 225s copying eventlet/zipkin/wsgi.py -> build/lib/eventlet/zipkin 225s creating build/lib/eventlet/zipkin/_thrift 225s copying eventlet/zipkin/_thrift/README.rst -> build/lib/eventlet/zipkin/_thrift 225s copying eventlet/zipkin/_thrift/__init__.py -> build/lib/eventlet/zipkin/_thrift 225s copying eventlet/zipkin/_thrift/zipkinCore.thrift -> build/lib/eventlet/zipkin/_thrift 225s creating build/lib/eventlet/zipkin/_thrift/zipkinCore 225s copying eventlet/zipkin/_thrift/zipkinCore/__init__.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 225s copying eventlet/zipkin/_thrift/zipkinCore/constants.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 225s copying eventlet/zipkin/_thrift/zipkinCore/ttypes.py -> build/lib/eventlet/zipkin/_thrift/zipkinCore 225s creating build/lib/eventlet/zipkin/example 225s copying eventlet/zipkin/example/ex1.png -> build/lib/eventlet/zipkin/example 225s copying eventlet/zipkin/example/ex2.png -> build/lib/eventlet/zipkin/example 225s copying eventlet/zipkin/example/ex3.png -> build/lib/eventlet/zipkin/example 225s running install_lib 225s creating /debian/tmp/usr/lib/python3/dist-packages 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/_version.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/asyncio.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/backdoor.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/convenience.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/corolocal.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/coros.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/dagpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/db_pool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/debug.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/event.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/greenpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/greenthread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.greenio' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.greenio' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.greenio' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.greenio' to be distributed and are 225s already explicitly excluding 'eventlet.greenio' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.hubs' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.hubs' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.hubs' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.hubs' to be distributed and are 225s already explicitly excluding 'eventlet.hubs' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s copying build/lib/eventlet/lock.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/pools.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/queue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/semaphore.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/timeout.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/tpool.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/websocket.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s copying build/lib/eventlet/wsgi.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/BaseHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/CGIHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/MySQLdb.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/Queue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/SimpleHTTPServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/SocketServer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/_socket_nodns.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/asynchat.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/asyncore.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/builtin.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/ftplib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.support' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.support' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.support' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.support' to be distributed and are 225s already explicitly excluding 'eventlet.support' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.zipkin' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.zipkin' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.zipkin' to be distributed and are 225s already explicitly excluding 'eventlet.zipkin' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.zipkin._thrift' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.zipkin._thrift' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.zipkin._thrift' to be distributed and are 225s already explicitly excluding 'eventlet.zipkin._thrift' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin._thrift.zipkinCore' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.zipkin._thrift.zipkinCore' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.zipkin._thrift.zipkinCore' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.zipkin._thrift.zipkinCore' to be distributed and are 225s already explicitly excluding 'eventlet.zipkin._thrift.zipkinCore' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'eventlet.zipkin.example' is absent from the `packages` configuration. 225s !! 225s 225s ******************************************************************************** 225s ############################ 225s # Package would be ignored # 225s ############################ 225s Python recognizes 'eventlet.zipkin.example' as an importable package[^1], 225s but it is absent from setuptools' `packages` configuration. 225s 225s This leads to an ambiguous overall configuration. If you want to distribute this 225s package, please make sure that 'eventlet.zipkin.example' is explicitly added 225s to the `packages` configuration field. 225s 225s Alternatively, you can also rely on setuptools' discovery methods 225s (for example by using `find_namespace_packages(...)`/`find_namespace:` 225s instead of `find_packages(...)`/`find:`). 225s 225s You can read more about "package discovery" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 225s 225s If you don't want 'eventlet.zipkin.example' to be distributed and are 225s already explicitly excluding 'eventlet.zipkin.example' via 225s `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 225s you can try to use `exclude_package_data`, or `include-package-data=False` in 225s combination with a more fine grained `package-data` configuration. 225s 225s You can read more about "package data files" on setuptools documentation page: 225s 225s - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 225s 225s 225s [^1]: For Python, any directory (with suitable naming) can be imported, 225s even if it does not contain any `.py` files. 225s On the other hand, currently there is no concept of package data 225s directory, all directories are treated like packages. 225s ******************************************************************************** 225s 225s !! 225s check.warn(importable) 225s copying build/lib/eventlet/green/httplib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/os.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/profile.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/select.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/selectors.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/socket.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/ssl.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/subprocess.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/thread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/threading.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/time.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/urllib2.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s copying build/lib/eventlet/green/zmq.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 225s copying build/lib/eventlet/green/OpenSSL/SSL.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 225s copying build/lib/eventlet/green/OpenSSL/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 225s copying build/lib/eventlet/green/OpenSSL/crypto.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 225s copying build/lib/eventlet/green/OpenSSL/tsafe.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 225s copying build/lib/eventlet/green/OpenSSL/version.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 225s copying build/lib/eventlet/green/http/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 225s copying build/lib/eventlet/green/http/client.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 225s copying build/lib/eventlet/green/http/cookiejar.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 225s copying build/lib/eventlet/green/http/cookies.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 225s copying build/lib/eventlet/green/http/server.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 225s copying build/lib/eventlet/green/urllib/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 225s copying build/lib/eventlet/green/urllib/error.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 225s copying build/lib/eventlet/green/urllib/parse.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 225s copying build/lib/eventlet/green/urllib/request.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 225s copying build/lib/eventlet/green/urllib/response.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 225s copying build/lib/eventlet/greenio/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 225s copying build/lib/eventlet/greenio/base.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 225s copying build/lib/eventlet/greenio/py3.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/asyncio.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/epolls.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/hub.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/kqueue.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/poll.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/pyevent.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/selects.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s copying build/lib/eventlet/hubs/timer.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/greendns.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/greenlets.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/psycopg2_patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/pylib.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/stacklesspypys.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s copying build/lib/eventlet/support/stacklesss.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/support 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/README.rst -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/api.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/client.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/greenthread.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/http.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/log.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/patcher.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s copying build/lib/eventlet/zipkin/wsgi.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 225s copying build/lib/eventlet/zipkin/_thrift/README.rst -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 225s copying build/lib/eventlet/zipkin/_thrift/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 225s copying build/lib/eventlet/zipkin/_thrift/zipkinCore.thrift -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 225s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/__init__.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 225s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/constants.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 225s copying build/lib/eventlet/zipkin/_thrift/zipkinCore/ttypes.py -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore 225s creating /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 225s copying build/lib/eventlet/zipkin/example/ex1.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 225s copying build/lib/eventlet/zipkin/example/ex2.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 225s copying build/lib/eventlet/zipkin/example/ex3.png -> /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/example 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/__init__.py to __init__.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/_version.py to _version.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/asyncio.py to asyncio.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/backdoor.py to backdoor.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/convenience.py to convenience.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/corolocal.py to corolocal.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/coros.py to coros.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/dagpool.py to dagpool.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/db_pool.py to db_pool.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/debug.py to debug.cpython-314.pyc 225s /usr/lib/python3/dist-packages/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 225s return 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/event.py to event.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenpool.py to greenpool.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenthread.py to greenthread.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/lock.py to lock.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/patcher.py to patcher.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/pools.py to pools.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/queue.py to queue.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/semaphore.py to semaphore.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/timeout.py to timeout.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/tpool.py to tpool.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/websocket.py to websocket.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/wsgi.py to wsgi.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/BaseHTTPServer.py to BaseHTTPServer.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/CGIHTTPServer.py to CGIHTTPServer.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/MySQLdb.py to MySQLdb.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/Queue.py to Queue.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SimpleHTTPServer.py to SimpleHTTPServer.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/SocketServer.py to SocketServer.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/__init__.py to __init__.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/_socket_nodns.py to _socket_nodns.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asynchat.py to asynchat.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/asyncore.py to asyncore.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/builtin.py to builtin.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ftplib.py to ftplib.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/httplib.py to httplib.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/os.py to os.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/profile.py to profile.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/select.py to select.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/selectors.py to selectors.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/socket.py to socket.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/ssl.py to ssl.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/subprocess.py to subprocess.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/thread.py to thread.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/threading.py to threading.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/time.py to time.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib2.py to urllib2.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/zmq.py to zmq.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/SSL.py to SSL.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/__init__.py to __init__.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/crypto.py to crypto.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/tsafe.py to tsafe.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/OpenSSL/version.py to version.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/__init__.py to __init__.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/client.py to client.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookiejar.py to cookiejar.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/cookies.py to cookies.cpython-314.pyc 225s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/http/server.py to server.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/error.py to error.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/parse.py to parse.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/request.py to request.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/green/urllib/response.py to response.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/base.py to base.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/greenio/py3.py to py3.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/asyncio.py to asyncio.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/epolls.py to epolls.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/hub.py to hub.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/kqueue.py to kqueue.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/poll.py to poll.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/pyevent.py to pyevent.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/selects.py to selects.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/hubs/timer.py to timer.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greendns.py to greendns.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/greenlets.py to greenlets.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/psycopg2_patcher.py to psycopg2_patcher.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/pylib.py to pylib.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesspypys.py to stacklesspypys.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/support/stacklesss.py to stacklesss.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/api.py to api.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/client.py to client.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/greenthread.py to greenthread.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/http.py to http.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/log.py to log.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/patcher.py to patcher.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/wsgi.py to wsgi.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/__init__.py to __init__.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/constants.py to constants.cpython-314.pyc 226s byte-compiling /debian/tmp/usr/lib/python3/dist-packages/eventlet/zipkin/_thrift/zipkinCore/ttypes.py to ttypes.cpython-314.pyc 226s running install_egg_info 226s Copying eventlet.egg-info to /debian/tmp/usr/lib/python3/dist-packages/eventlet-0.0.0.egg-info 226s Skipping SOURCES.txt 226s running install_scripts 228s ============================= test session starts ============================== 228s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 228s cachedir: .pytest_cache 228s rootdir: /tmp/autopkgtest.1lWnzA/build.deJ/src 228s configfile: pyproject.toml 228s plugins: typeguard-4.4.4, xdist-3.8.0 228s created: 8/8 workers 228s 8 workers [717 items] 228s 228s scheduling tests via LoadScheduling 228s 228s tests/convenience_test.py::test_socket_reuse 228s [gw1] [ 0%] PASSED tests/convenience_test.py::test_socket_reuse 228s tests/convenience_test.py::test_reuse_random_port_warning 228s tests/dagpool_test.py::test_propagate_exc 228s [gw2] [ 0%] PASSED tests/dagpool_test.py::test_propagate_exc 228s tests/dagpool_test.py::test_wait_each_exc 228s tests/debug_test.py::TestDebug::test_hub_exceptions 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 228s [gw5] [ 0%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_cursor_works_as_context_manager 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 228s [gw2] [ 0%] PASSED tests/dagpool_test.py::test_wait_each_exc 228s tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 228s tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 228s [gw3] [ 0%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_waiters_get_woken 228s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 228s tests/dagpool_test.py::test_post_get_exc 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 228s [gw4] [ 0%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connecting 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 228s [gw5] [ 0%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_doesnt_double_wrap 228s [gw2] [ 1%] PASSED tests/dagpool_test.py::test_post_get_exc 228s [gw4] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_connection_is_clean_after_put 228s [gw1] [ 1%] PASSED tests/convenience_test.py::test_reuse_random_port_warning 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 228s [gw3] [ 1%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_age 228s tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 228s tests/db_pool_test.py::test_raw_pool_issue_125 228s tests/api_test.py::TestApi::test_001_trampoline_timeout 228s [gw5] [ 1%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_put_none 228s [gw2] [ 1%] PASSED tests/db_pool_test.py::test_raw_pool_issue_125 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 228s [gw4] [ 1%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_create_cursor 228s [gw3] [ 2%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_zero_max_idle 228s tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 228s tests/db_pool_test.py::Test02MysqlRaw::test_bool 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 228s [gw5] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_raising_create 228s [gw2] [ 2%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_ok 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 228s tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 228s [gw4] [ 2%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_cursor_works_as_context_manager 228s [gw3] [ 2%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_bool 228s tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 228s tests/convenience_test.py::test_reuseport_oserror 228s [gw1] [ 2%] PASSED tests/convenience_test.py::test_reuseport_oserror 228s [gw5] [ 2%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_returns_immediately 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 228s tests/dagpool_test.py::test_check_no_suspend 228s [gw1] [ 3%] PASSED tests/dagpool_test.py::test_check_no_suspend 228s tests/dagpool_test.py::test_init 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 228s [gw3] [ 3%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_close_does_a_put 228s [gw4] [ 3%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_doesnt_double_wrap 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 228s tests/db_pool_test.py::Test02MysqlRaw::test_connecting 228s [gw1] [ 3%] PASSED tests/dagpool_test.py::test_init 228s [gw2] [ 3%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_arg_error 228s [gw5] [ 3%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_bad_query 228s [gw3] [ 3%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connecting 228s [gw4] [ 4%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_put_none 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 228s tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 228s [gw2] [ 4%] PASSED tests/db_pool_test.py::test_raw_pool_custom_cleanup_fatal 228s tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 228s tests/dagpool_test.py::test_wait_each_empty 228s tests/db_pool_test.py::test_raw_pool_clear_update_current_size 228s [gw4] [ 4%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_raising_create 228s [gw3] [ 4%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_connection_is_clean_after_put 228s [gw2] [ 4%] PASSED tests/db_pool_test.py::test_raw_pool_clear_update_current_size 228s tests/db_pool_test.py::Test01MysqlTpool::test_bool 228s [gw2] [ 4%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_bool 228s [gw5] [ 4%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_run_query 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 228s [gw5] [ 5%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_safe_close 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 228s tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 228s tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 228s [gw1] [ 5%] PASSED tests/dagpool_test.py::test_wait_each_empty 228s tests/dagpool_test.py::test_wait_each_preload 228s [gw1] [ 5%] PASSED tests/dagpool_test.py::test_wait_each_preload 228s tests/dagpool_test.py::test_wait_each_posted 228s [gw4] [ 5%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_returns_immediately 228s [gw2] [ 5%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_close_does_a_put 228s [gw3] [ 5%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_create_cursor 228s tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 228s tests/db_pool_test.py::Test01MysqlTpool::test_connecting 228s [gw1] [ 5%] PASSED tests/dagpool_test.py::test_wait_each_posted 228s [gw3] [ 5%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_doesnt_double_wrap 228s [gw4] [ 6%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_bad_query 228s [gw5] [ 6%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_set_isolation_level 228s [gw2] [ 6%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connecting 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 228s tests/db_pool_test.py::Test02MysqlRaw::test_put_none 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 228s tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 228s tests/dagpool_test.py::test_wait_posted 228s [gw3] [ 6%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_put_none 228s [gw4] [ 6%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_run_query 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 228s tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 228s [gw2] [ 6%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_connection_is_clean_after_put 228s tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 228s [gw5] [ 6%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_unwrap_connection 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 228s [gw3] [ 7%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_raising_create 228s [gw1] [ 7%] PASSED tests/dagpool_test.py::test_wait_posted 228s tests/dagpool_test.py::test_spawn_collision_preload 228s [gw1] [ 7%] PASSED tests/dagpool_test.py::test_spawn_collision_preload 228s [gw2] [ 7%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_create_cursor 228s tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 228s tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 228s [gw4] [ 7%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_safe_close 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 228s [gw5] [ 7%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_visibility_from_other_connections 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 228s [gw3] [ 7%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_returns_immediately 228s [gw2] [ 8%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_doesnt_double_wrap 228s [gw4] [ 8%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_set_isolation_level 228s tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 228s tests/db_pool_test.py::Test01MysqlTpool::test_put_none 228s [gw5] [ 8%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_waiters_get_woken 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 228s tests/dagpool_test.py::test_spawn_collision_post 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 228s [gw2] [ 8%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_put_none 228s [gw3] [ 8%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_bad_query 228s [gw1] [ 8%] PASSED tests/dagpool_test.py::test_spawn_collision_post 228s tests/dagpool_test.py::test_spawn_collision_spawn 228s [gw1] [ 8%] PASSED tests/dagpool_test.py::test_spawn_collision_spawn 228s tests/dagpool_test.py::test_spawn_multiple 228s tests/db_pool_test.py::Test02MysqlRaw::test_run_query 228s tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 228s [gw4] [ 9%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_unwrap_connection 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 228s [gw5] [ 9%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_age 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 228s [gw3] [ 9%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_run_query 228s [gw2] [ 9%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_raising_create 228s tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 228s [gw4] [ 9%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_visibility_from_other_connections 228s tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 228s [gw5] [ 9%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_zero_max_idle 228s [gw2] [ 9%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_returns_immediately 228s [gw3] [ 10%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_safe_close 228s tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 228s [gw1] [ 10%] PASSED tests/dagpool_test.py::test_spawn_multiple 228s tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 228s tests/debug_test.py::TestSpew::test_line 228s [gw4] [ 10%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_waiters_get_woken 228s [gw2] [ 10%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_bad_query 228s [gw5] [ 10%] PASSED tests/debug_test.py::TestSpew::test_line 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 228s [gw3] [ 10%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_unwrap_connection 228s tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 228s tests/db_pool_test.py::Test01MysqlTpool::test_run_query 228s tests/debug_test.py::TestSpew::test_line_global 228s [gw4] [ 10%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_age 228s tests/dagpool_test.py::test_spawn_many 228s [gw3] [ 11%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_visibility_from_other_connections 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 228s [gw2] [ 11%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_run_query 228s [gw5] [ 11%] PASSED tests/debug_test.py::TestSpew::test_line_global 228s tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 228s tests/debug_test.py::TestSpew::test_line_nofile 228s tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 228s [gw1] [ 11%] PASSED tests/dagpool_test.py::test_spawn_many 228s tests/dagpool_test.py::test_wait_each_all 228s [gw4] [ 11%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_zero_max_idle 228s [gw3] [ 11%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_waiters_get_woken 228s [gw2] [ 11%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_safe_close 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 228s tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 228s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 228s [gw3] [ 11%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_age 228s [gw2] [ 12%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_unwrap_connection 228s [gw4] [ 12%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_bool 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 228s tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 228s [gw5] [ 12%] PASSED tests/debug_test.py::TestSpew::test_line_nofile 228s [gw3] [ 12%] SKIPPED tests/db_pool_test.py::Test02MysqlRaw::test_zero_max_idle 228s [gw4] [ 12%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_close_does_a_put 228s tests/debug_test.py::TestSpew::test_line_nooutput 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 228s [gw1] [ 12%] PASSED tests/dagpool_test.py::test_wait_each_all 228s tests/dagpool_test.py::test_kill 228s [gw1] [ 12%] PASSED tests/dagpool_test.py::test_kill 228s [gw5] [ 13%] PASSED tests/debug_test.py::TestSpew::test_line_nooutput 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 228s [gw4] [ 13%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connecting 228s tests/debug_test.py::TestSpew::test_line_novalue 228s [gw3] [ 13%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_bool 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 228s tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 228s tests/dagpool_test.py::test_post_collision_preload 228s [gw5] [ 13%] PASSED tests/debug_test.py::TestSpew::test_line_novalue 228s [gw1] [ 13%] PASSED tests/dagpool_test.py::test_post_collision_preload 228s [gw2] [ 13%] SKIPPED tests/db_pool_test.py::Test01MysqlTpool::test_visibility_from_other_connections 228s tests/debug_test.py::TestSpew::test_spew 228s [gw4] [ 13%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_connection_is_clean_after_put 228s tests/greendns_test.py::TestProxyResolver::test_getaliases 228s [gw5] [ 14%] PASSED tests/debug_test.py::TestSpew::test_spew 228s tests/dagpool_test.py::test_post_collision_post 228s [gw1] [ 14%] PASSED tests/dagpool_test.py::test_post_collision_post 228s tests/debug_test.py::TestSpew::test_unspew 228s tests/dagpool_test.py::test_post_collision_spawn 228s [gw5] [ 14%] PASSED tests/debug_test.py::TestSpew::test_unspew 228s [gw1] [ 14%] PASSED tests/dagpool_test.py::test_post_collision_spawn 228s tests/dagpool_test.py::test_post_replace 228s tests/debug_test.py::TestDebug::test_everything 228s tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 228s [gw4] [ 14%] SKIPPED tests/db_pool_test.py::Test02Psycopg2Raw::test_create_cursor 228s [gw1] [ 14%] PASSED tests/dagpool_test.py::test_post_replace 228s tests/dagpool_test.py::test_getitem 228s tests/greendns_test.py::TestGetaddrinfo::test_host_none 228s tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 228s [gw4] [ 14%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none 228s [gw3] [ 15%] SKIPPED tests/db_pool_test.py::Test01Psycopg2Tpool::test_close_does_a_put 228s tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 228s tests/greendns_test.py::TestGethostbyname::test_ipaddr 228s [gw1] [ 15%] PASSED tests/dagpool_test.py::test_getitem 228s tests/dagpool_test.py::test_waitall_exc 228s [gw4] [ 15%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_host_none_passive 228s tests/greendns_test.py::TestGetaddrinfo::test_noport 228s [gw3] [ 15%] PASSED tests/greendns_test.py::TestGethostbyname::test_ipaddr 228s tests/greendns_test.py::TestGethostbyname::test_name 228s [gw4] [ 15%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_noport 228s tests/greendns_test.py::TestGetaddrinfo::test_numerichost 228s [gw1] [ 15%] PASSED tests/dagpool_test.py::test_waitall_exc 228s [gw3] [ 15%] PASSED tests/greendns_test.py::TestGethostbyname::test_name 228s tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 228s [gw4] [ 16%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numerichost 228s tests/greendns_test.py::TestGetaddrinfo::test_numericserv 228s tests/greendns_test.py::TestGetaliases::test_getaliases 228s [gw4] [ 16%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_numericserv 228s [gw3] [ 16%] PASSED tests/greendns_test.py::TestGetaliases::test_getaliases 228s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 228s tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 228s [gw4] [ 16%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped 228s tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 228s [gw3] [ 16%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_ipaddr 228s tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 228s [gw4] [ 16%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_v4mapped_all 228s [gw3] [ 16%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_multiple_addrs 228s tests/greendns_test.py::TestGethostbyname_ex::test_name 228s tests/greendns_test.py::TestIsIpAddr::test_isv4 228s [gw3] [ 17%] PASSED tests/greendns_test.py::TestGethostbyname_ex::test_name 228s tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 228s [gw7] [ 17%] PASSED tests/debug_test.py::TestDebug::test_hub_exceptions 228s tests/env_test.py::test_hub_selects 228s [gw2] [ 17%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases 228s tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 228s [gw5] [ 17%] PASSED tests/debug_test.py::TestDebug::test_everything 228s tests/greendns_test.py::TestResolveCname::test_success 228s [gw5] [ 17%] PASSED tests/greendns_test.py::TestResolveCname::test_success 228s tests/greendns_test.py::TestResolveCname::test_timeout 228s [gw5] [ 17%] PASSED tests/greendns_test.py::TestResolveCname::test_timeout 228s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 228s [gw5] [ 17%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG 228s tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 228s [gw5] [ 17%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_AI_ADDRCONFIG_noaddr 228s tests/greendns_test.py::TestGetaddrinfo::test_canonname 228s [gw5] [ 18%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_canonname 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 228s [gw1] [ 18%] PASSED tests/greenio_test.py::TestGreenSocket::test_datagram_socket_operations_work 228s tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 228s [gw3] [ 18%] PASSED tests/greendns_test.py::TestRaiseErrors::test_raise_new_error 228s [gw4] [ 18%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4 228s tests/greendns_test.py::TestIsIpAddr::test_isv4_false 228s [gw5] [ 18%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo 228s tests/greendns_test.py::test_reverse_name 228s [gw6] [ 18%] PASSED tests/greendns_test.py::TestHostsResolver::test_hosts_case_insensitive 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 228s [gw5] [ 18%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_bytes 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_error 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 228s tests/greendns_test.py::TestHostsResolver::test_load_no_contents 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_ans_with_timeout 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_dns_error 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_hosts_only_timeout 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_idn 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 228s [gw5] [ 19%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_inet6 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 228s [gw5] [ 20%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_a_ans 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 228s [gw5] [ 20%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_only_aaaa_ans 228s tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 228s [gw5] [ 20%] PASSED tests/greendns_test.py::TestGetaddrinfo::test_getaddrinfo_type_parameter 228s tests/greenpool_test.py::GreenPool::test_exceptions 228s [gw0] [ 20%] PASSED tests/api_test.py::TestApi::test_001_trampoline_timeout 228s tests/api_test.py::TestApi::test_connect_ssl 228s [gw2] [ 20%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_fqdn 228s tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 228s [gw1] [ 20%] PASSED tests/greenio_test.py::TestGreenSocket::test_default_nonblocking 228s tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 228s [gw4] [ 20%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_false 228s tests/greendns_test.py::TestIsIpAddr::test_isv4_none 228s [gw5] [ 21%] PASSED tests/greenpool_test.py::GreenPool::test_exceptions 228s tests/greenpool_test.py::GreenPool::test_imap 228s [gw2] [ 21%] PASSED tests/greendns_test.py::TestProxyResolver::test_getaliases_nxdomain 228s tests/greendns_test.py::TestProxyResolver::test_hosts 228s [gw0] [ 21%] PASSED tests/api_test.py::TestApi::test_connect_ssl 228s tests/api_test.py::TestApi::test_connect_tcp 228s [gw4] [ 21%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv4_none 228s tests/greendns_test.py::TestIsIpAddr::test_isv6 228s [gw2] [ 21%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts 228s [gw5] [ 21%] PASSED tests/greenpool_test.py::GreenPool::test_imap 228s tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 228s tests/greenpool_test.py::GreenPool::test_imap_multi_args 228s [gw6] [ 21%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_no_contents 228s tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 228s [gw0] [ 22%] PASSED tests/api_test.py::TestApi::test_connect_tcp 228s tests/api_test.py::TestApi::test_killing_dormant 228s [gw1] [ 22%] PASSED tests/greenio_test.py::TestGreenSocket::test_del_closes_socket 228s tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 228s [gw4] [ 22%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6 228s tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 228s [gw2] [ 22%] PASSED tests/greendns_test.py::TestProxyResolver::test_hosts_noanswer 229s tests/greendns_test.py::TestProxyResolver::test_noanswer 229s [gw1] [ 22%] PASSED tests/greenio_test.py::TestGreenSocket::test_dup_nonblocking 229s tests/greenio_test.py::TestGreenSocket::test_full_duplex 229s [gw4] [ 22%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_invalid 229s tests/greendns_test.py::TestIsIpAddr::test_isv6_none 229s [gw5] [ 22%] PASSED tests/greenpool_test.py::GreenPool::test_imap_multi_args 229s tests/greenpool_test.py::GreenPool::test_imap_nonefunc 229s [gw2] [ 23%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer 229s tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 229s [gw4] [ 23%] PASSED tests/greendns_test.py::TestIsIpAddr::test_isv6_none 229s tests/greendns_test.py::TestIsIpAddr::test_none 229s [gw1] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_full_duplex 229s tests/greenio_test.py::TestGreenSocket::test_invalid_connection 229s [gw6] [ 23%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v4_v6_cname_aliases 229s tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 229s [gw5] [ 23%] PASSED tests/greenpool_test.py::GreenPool::test_imap_nonefunc 229s tests/greenpool_test.py::GreenPool::test_imap_raises 229s [gw2] [ 23%] PASSED tests/greendns_test.py::TestProxyResolver::test_noanswer_hosts 229s tests/greendns_test.py::TestProxyResolver::test_nxdomain 229s [gw1] [ 23%] PASSED tests/greenio_test.py::TestGreenSocket::test_invalid_connection 229s [gw4] [ 23%] PASSED tests/greendns_test.py::TestIsIpAddr::test_none 229s tests/greendns_test.py::TestIsIpAddr::test_v4 229s tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 229s [gw5] [ 24%] PASSED tests/greenpool_test.py::GreenPool::test_imap_raises 229s tests/greenpool_test.py::GreenPool::test_multiple_coros 229s [gw0] [ 24%] PASSED tests/api_test.py::TestApi::test_killing_dormant 229s tests/api_test.py::TestApi::test_nested_with_timeout 229s [gw2] [ 24%] PASSED tests/greendns_test.py::TestProxyResolver::test_nxdomain 229s tests/greendns_test.py::TestProxyResolver::test_resolver 229s [gw4] [ 24%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4 229s tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 229s [gw1] [ 24%] PASSED tests/greenio_test.py::TestGreenSocket::test_nonblocking_accept_mark_as_reopened 229s tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 229s [gw6] [ 24%] PASSED tests/greendns_test.py::TestHostsResolver::test_load_v6_link_local 229s [gw5] [ 24%] PASSED tests/greenpool_test.py::GreenPool::test_multiple_coros 229s tests/greendns_test.py::TestHostsResolver::test_query_A 229s tests/greenpool_test.py::GreenPool::test_pool_smash 229s [gw2] [ 25%] PASSED tests/greendns_test.py::TestProxyResolver::test_resolver 229s tests/greendns_test.py::TestResolve::test_A 229s [gw2] [ 25%] PASSED tests/greendns_test.py::TestResolve::test_A 229s tests/greendns_test.py::TestResolve::test_AAAA 229s [gw2] [ 25%] PASSED tests/greendns_test.py::TestResolve::test_AAAA 229s tests/greendns_test.py::TestResolve::test_exc 229s [gw2] [ 25%] PASSED tests/greendns_test.py::TestResolve::test_exc 229s tests/greendns_test.py::TestResolve::test_noraise_noanswer 229s [gw3] [ 25%] PASSED tests/greendns_test.py::test_reverse_name 229s tests/greendns_test.py::test_proxy_resolve_unqualified 229s [gw3] [ 25%] PASSED tests/greendns_test.py::test_proxy_resolve_unqualified 229s [gw2] [ 25%] PASSED tests/greendns_test.py::TestResolve::test_noraise_noanswer 229s tests/greendns_test.py::TestResolve::test_noraise_nxdomain 229s tests/greendns_test.py::test_hosts_priority 229s [gw3] [ 26%] PASSED tests/greendns_test.py::test_hosts_priority 229s tests/greendns_test.py::test_hosts_no_network 229s [gw2] [ 26%] PASSED tests/greendns_test.py::TestResolve::test_noraise_nxdomain 229s tests/greendns_test.py::TestResolve::test_timeout 229s [gw2] [ 26%] PASSED tests/greendns_test.py::TestResolve::test_timeout 229s tests/greendns_test.py::TestResolve::test_unknown_rdtype 229s [gw2] [ 26%] PASSED tests/greendns_test.py::TestResolve::test_unknown_rdtype 229s tests/greendns_test.py::TestResolveCname::test_no_answer 229s [gw2] [ 26%] PASSED tests/greendns_test.py::TestResolveCname::test_no_answer 229s tests/greendns_test.py::TestResolveCname::test_nodata 229s [gw2] [ 26%] PASSED tests/greendns_test.py::TestResolveCname::test_nodata 229s tests/greenthread_test.py::SpawnAfter::test_kill_n 229s [gw4] [ 26%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v4_illegal 229s [gw3] [ 27%] PASSED tests/greendns_test.py::test_hosts_no_network 229s tests/greendns_test.py::TestIsIpAddr::test_v6_addr 229s tests/greendns_test.py::test_import_rdtypes_then_eventlet 229s [gw1] [ 27%] PASSED tests/greenio_test.py::TestGreenSocket::test_raised_multiple_readers 229s tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 229s [gw6] [ 27%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_A 229s tests/greendns_test.py::TestHostsResolver::test_query_AAAA 229s [gw5] [ 27%] PASSED tests/greenpool_test.py::GreenPool::test_pool_smash 229s tests/greenpool_test.py::GreenPool::test_recursive_waitall 229s [gw4] [ 27%] PASSED tests/greendns_test.py::TestIsIpAddr::test_v6_addr 229s tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 229s [gw2] [ 27%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_n 229s tests/greenthread_test.py::SpawnAfter::test_link 229s [gw7] [ 27%] PASSED tests/env_test.py::test_hub_selects 229s tests/env_test.py::test_tpool_dns 229s [gw5] [ 28%] PASSED tests/greenpool_test.py::GreenPool::test_recursive_waitall 229s tests/greenpool_test.py::GreenPool::test_reentrant 229s [gw6] [ 28%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_AAAA 229s tests/greendns_test.py::TestHostsResolver::test_query_CNAME 229s [gw4] [ 28%] PASSED tests/greenio_test.py::TestGreenSocket::test_skip_nonblocking 229s tests/greenio_test.py::TestGreenSocket::test_socketpair_select 229s [gw6] [ 28%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_CNAME 229s tests/greendns_test.py::TestHostsResolver::test_query_ans_types 229s [gw0] [ 28%] PASSED tests/api_test.py::TestApi::test_nested_with_timeout 229s [gw5] [ 28%] PASSED tests/greenpool_test.py::GreenPool::test_reentrant 229s tests/greenpool_test.py::GreenPool::test_resize 229s tests/api_test.py::TestApi::test_tcp_listener 229s [gw2] [ 28%] PASSED tests/greenthread_test.py::SpawnAfter::test_link 229s tests/greenthread_test.py::SpawnAfter::test_link_after_exited 229s [gw1] [ 29%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_into_timeout 229s tests/greenio_test.py::TestGreenSocket::test_recv_timeout 229s [gw4] [ 29%] PASSED tests/greenio_test.py::TestGreenSocket::test_socketpair_select 229s tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 229s [gw6] [ 29%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_ans_types 229s tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 229s [gw5] [ 29%] PASSED tests/greenpool_test.py::GreenPool::test_resize 229s tests/greenpool_test.py::GreenPool::test_spawn 229s [gw2] [ 29%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_after_exited 229s tests/greenthread_test.py::SpawnAfter::test_link_relinks 229s [gw4] [ 29%] PASSED tests/greenio_test.py::TestGreenSocket::test_sockopt_interface 229s tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 229s [gw6] [ 29%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_no_raise 229s tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 229s [gw5] [ 29%] PASSED tests/greenpool_test.py::GreenPool::test_spawn 229s tests/greenpool_test.py::GreenPool::test_spawn_n 229s [gw2] [ 30%] PASSED tests/greenthread_test.py::SpawnAfter::test_link_relinks 229s tests/greenthread_test.py::SpawnAfter::test_n 229s [gw6] [ 30%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_raises 229s tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 229s [gw0] [ 30%] PASSED tests/api_test.py::TestApi::test_tcp_listener 229s tests/api_test.py::TestApi::test_timeout_cancel 229s [gw4] [ 30%] PASSED tests/greenio_test.py::TestGreenSocket::test_timeout_and_final_write 229s tests/greenio_test.py::TestGreenSocket::test_wrap_socket 229s [gw2] [ 30%] PASSED tests/greenthread_test.py::SpawnAfter::test_n 229s tests/greenthread_test.py::SpawnAfter::test_simple 229s [gw6] [ 30%] PASSED tests/greendns_test.py::TestHostsResolver::test_query_unknown_type 229s tests/greendns_test.py::TestHostsResolver::test_readlines_lines 229s [gw5] [ 30%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n 229s tests/greenpool_test.py::GreenPool::test_spawn_n_2 229s [gw4] [ 31%] PASSED tests/greenio_test.py::TestGreenSocket::test_wrap_socket 229s tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 229s [gw2] [ 31%] PASSED tests/greenthread_test.py::SpawnAfter::test_simple 229s tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 229s [gw6] [ 31%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_lines 229s tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 229s [gw5] [ 31%] PASSED tests/greenpool_test.py::GreenPool::test_spawn_n_2 229s tests/greenpool_test.py::GreenPool::test_starmap 229s [gw1] [ 31%] PASSED tests/greenio_test.py::TestGreenSocket::test_recv_timeout 229s tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 229s [gw6] [ 31%] PASSED tests/greendns_test.py::TestHostsResolver::test_readlines_missing_file 229s tests/greendns_test.py::TestUdp::test_udp_ipv4 229s [gw3] [ 31%] PASSED tests/greendns_test.py::test_import_rdtypes_then_eventlet 229s tests/greenio_test.py::TestGreenSocket::test_accept_timeout 229s [gw5] [ 32%] PASSED tests/greenpool_test.py::GreenPool::test_starmap 229s tests/greenpool_test.py::GreenPool::test_timer_cancel 229s [gw0] [ 32%] PASSED tests/api_test.py::TestApi::test_timeout_cancel 229s tests/api_test.py::test_wrap_is_timeout 229s [gw0] [ 32%] PASSED tests/api_test.py::test_wrap_is_timeout 229s tests/api_test.py::test_timeouterror_deprecated 229s [gw7] [ 32%] PASSED tests/env_test.py::test_tpool_dns 229s tests/env_test.py::test_tpool_size 229s [gw6] [ 32%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4 229s tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 229s [gw5] [ 32%] PASSED tests/greenpool_test.py::GreenPool::test_timer_cancel 229s tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 229s [gw4] [ 32%] PASSED tests/greenio_test.py::TestGreenSocket::test_zero_timeout_and_back 229s tests/greenio_test.py::test_get_fileno_of_a_socket_works 229s [gw4] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_works 229s tests/greenio_test.py::test_get_fileno_of_an_int_works 229s [gw4] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_an_int_works 229s tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 229s [gw4] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_wrong_type_fails 229s tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 229s [gw4] [ 33%] PASSED tests/greenio_test.py::test_get_fileno_of_a_socket_with_fileno_returning_wrong_type_fails 229s tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 229s [gw2] [ 33%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_spawn_is_not_cancelled 229s tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 229s [gw5] [ 33%] PASSED tests/greenpool_test.py::GreenPool::test_waitall_on_nothing 229s tests/greenpool_test.py::GreenPool::test_waiting 229s [gw1] [ 33%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_into_timeout 229s tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 229s [gw3] [ 34%] PASSED tests/greenio_test.py::TestGreenSocket::test_accept_timeout 229s tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 229s [gw5] [ 34%] PASSED tests/greenpool_test.py::GreenPool::test_waiting 229s tests/greenpool_test.py::GreenPile::test_constructing_from_pool 229s [gw6] [ 34%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_timeout 229s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 229s [gw3] [ 34%] PASSED tests/greenio_test.py::TestGreenSocket::test_blocking_accept_mark_as_reopened 230s tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 230s [gw4] [ 34%] FAILED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end 230s tests/greenio_test.py::TestGreenPipe::test_pipe 230s [gw5] [ 34%] PASSED tests/greenpool_test.py::GreenPile::test_constructing_from_pool 230s tests/greenpool_test.py::GreenPile::test_empty_pile 230s [gw6] [ 34%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr 230s tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 230s [gw3] [ 35%] PASSED tests/greenio_test.py::TestGreenSocket::test_close_with_makefile 230s tests/greenio_test.py::TestGreenSocket::test_closure 230s [gw5] [ 35%] PASSED tests/greenpool_test.py::GreenPile::test_empty_pile 230s tests/greenpool_test.py::GreenPile::test_pile 230s [gw3] [ 35%] SKIPPED tests/greenio_test.py::TestGreenSocket::test_closure 230s tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 230s [gw2] [ 35%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_cancelled_upon_greenlet_exit 230s tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 230s [gw5] [ 35%] PASSED tests/greenpool_test.py::GreenPile::test_pile 230s tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 230s [gw4] [ 35%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe 230s tests/greenio_test.py::TestGreenPipe::test_pipe_read 230s [gw3] [ 35%] PASSED tests/greenio_test.py::TestGreenPipe::test_seek_on_buffered_pipe 230s tests/greenio_test.py::TestGreenPipe::test_truncate 230s [gw0] [ 35%] PASSED tests/api_test.py::test_timeouterror_deprecated 230s tests/api_test.py::test_zero_second_sleep 230s [gw1] [ 36%] PASSED tests/greenio_test.py::TestGreenSocket::test_recvfrom_timeout 230s tests/greenio_test.py::TestGreenSocket::test_send_timeout 230s [gw5] [ 36%] PASSED tests/greenpool_test.py::GreenPile::test_pile_spawn_times_out 230s tests/greenpool_test.py::test_greenpool_type_check 230s [gw5] [ 36%] PASSED tests/greenpool_test.py::test_greenpool_type_check 230s tests/greenpool_test.py::Stress::test_imap_50 230s [gw6] [ 36%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv4_wrong_addr_ignore 230s tests/greendns_test.py::TestUdp::test_udp_ipv6 230s [gw7] [ 36%] PASSED tests/env_test.py::test_tpool_size 230s [gw3] [ 36%] PASSED tests/greenio_test.py::TestGreenPipe::test_truncate 230s tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 230s tests/env_test.py::test_tpool_negative 230s [gw1] [ 36%] PASSED tests/greenio_test.py::TestGreenSocket::test_send_timeout 230s tests/greenio_test.py::TestGreenSocket::test_sendall 230s [gw6] [ 37%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6 230s tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 230s [gw4] [ 37%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_read 230s tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 230s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall 230s tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 230s [gw6] [ 37%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_addr_zeroes 230s tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 230s [gw4] [ 37%] PASSED tests/greenio_test.py::TestGreenPipe::test_pipe_read_unbuffered 230s tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 230s [gw1] [ 37%] PASSED tests/greenio_test.py::TestGreenSocket::test_sendall_timeout 230s tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 230s [gw4] [ 37%] FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 230s tests/hub_test.py::TestDeadRunLoop::test_kill 230s [gw6] [ 38%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_timeout 230s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 230s [gw2] [ 38%] PASSED tests/greenthread_test.py::SpawnAfterLocal::test_timer_fired 230s tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 230s [gw1] [ 38%] PASSED tests/greenio_test.py::TestGreenSocket::test_shutdown_safe 230s tests/greenthread_test.py::Spawn::test_kill_meth 230s [gw6] [ 38%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr 230s tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 230s [gw7] [ 38%] PASSED tests/env_test.py::test_tpool_negative 230s tests/env_test.py::test_tpool_zero 230s [gw1] [ 38%] PASSED tests/greenthread_test.py::Spawn::test_kill_meth 230s tests/greenthread_test.py::Spawn::test_kill_n 230s [gw0] [ 38%] PASSED tests/api_test.py::test_zero_second_sleep 230s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 230s [gw2] [ 39%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_accumulated 230s tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 230s [gw1] [ 39%] PASSED tests/greenthread_test.py::Spawn::test_kill_n 230s tests/greenthread_test.py::Spawn::test_link 230s [gw2] [ 39%] PASSED tests/hub_test.py::TestTimerCleanup::test_cancel_immediate 230s tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 230s [gw1] [ 39%] PASSED tests/greenthread_test.py::Spawn::test_link 230s tests/greenthread_test.py::Spawn::test_link_after_exited 230s [gw6] [ 39%] PASSED tests/greendns_test.py::TestUdp::test_udp_ipv6_wrong_addr_ignore 230s tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 230s [gw2] [ 39%] PASSED tests/hub_test.py::TestMultipleListenersCleanup::test_cleanup 230s tests/hub_test.py::TestScheduleCall::test_global 230s [gw0] [ 39%] PASSED tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 230s [gw1] [ 40%] PASSED tests/greenthread_test.py::Spawn::test_link_after_exited 230s tests/backdoor_test.py::BackdoorTest::test_server 230s tests/greenthread_test.py::Spawn::test_link_relinks 230s [gw6] [ 40%] SKIPPED tests/mysqldb_test.py::TestMonkeyPatch::test_monkey_patching 230s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 230s [gw6] [ 40%] PASSED tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 230s tests/openssl_test.py::test_import 230s [gw6] [ 40%] PASSED tests/openssl_test.py::test_import 230s tests/os_test.py::test_pathlib_open_issue_534 230s [gw6] [ 40%] PASSED tests/os_test.py::test_pathlib_open_issue_534 230s tests/os_test.py::test_os_read_nonblocking 230s [gw2] [ 40%] PASSED tests/hub_test.py::TestScheduleCall::test_global 230s tests/hub_test.py::TestScheduleCall::test_local 230s [gw1] [ 40%] PASSED tests/greenthread_test.py::Spawn::test_link_relinks 230s tests/greenthread_test.py::Spawn::test_n 230s [gw1] [ 41%] PASSED tests/greenthread_test.py::Spawn::test_n 230s tests/greenthread_test.py::Spawn::test_simple 230s [gw2] [ 41%] PASSED tests/hub_test.py::TestScheduleCall::test_local 230s tests/hub_test.py::TestScheduleCall::test_ordering 230s [gw1] [ 41%] PASSED tests/greenthread_test.py::Spawn::test_simple 230s tests/greenthread_test.py::SpawnAfter::test_basic 230s [gw7] [ 41%] PASSED tests/env_test.py::test_tpool_zero 230s tests/event_test.py::TestEvent::test_double_exception 230s [gw2] [ 41%] PASSED tests/hub_test.py::TestScheduleCall::test_ordering 230s tests/hub_test.py::TestDebug::test_debug_listeners 230s [gw0] [ 41%] PASSED tests/backdoor_test.py::BackdoorTest::test_server 230s tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 230s [gw7] [ 41%] PASSED tests/event_test.py::TestEvent::test_double_exception 230s tests/event_test.py::TestEvent::test_multiple_waiters 230s [gw2] [ 41%] PASSED tests/hub_test.py::TestDebug::test_debug_listeners 231s tests/hub_test.py::TestDebug::test_timer_exceptions 231s [gw0] [ 42%] SKIPPED tests/backdoor_test.py::BackdoorTest::test_server_on_ipv6_socket 231s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 231s [gw4] [ 42%] PASSED tests/hub_test.py::TestDeadRunLoop::test_kill 231s tests/hub_test.py::TestDeadRunLoop::test_parent 231s [gw7] [ 42%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters 231s tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 231s [gw2] [ 42%] PASSED tests/hub_test.py::TestDebug::test_timer_exceptions 231s tests/hub_test.py::TestExceptionInMainloop::test_sleep 231s [gw1] [ 42%] PASSED tests/greenthread_test.py::SpawnAfter::test_basic 231s tests/greenthread_test.py::SpawnAfter::test_cancel 231s [gw7] [ 42%] PASSED tests/event_test.py::TestEvent::test_multiple_waiters_with_exception 231s tests/event_test.py::TestEvent::test_reset 231s [gw2] [ 42%] PASSED tests/hub_test.py::TestExceptionInMainloop::test_sleep 231s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 231s [gw1] [ 43%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel 231s tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 231s [gw0] [ 43%] PASSED tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 231s tests/convenience_test.py::TestServe::test_blocking 231s [gw7] [ 43%] PASSED tests/event_test.py::TestEvent::test_reset 231s tests/event_test.py::TestEvent::test_waiting_for_event 231s [gw2] [ 43%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionleaks 231s tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 231s [gw6] [ 43%] PASSED tests/os_test.py::test_os_read_nonblocking 231s tests/os_test.py::test_os_write_nonblocking 231s [gw7] [ 43%] PASSED tests/event_test.py::TestEvent::test_waiting_for_event 231s tests/event_test.py::test_wait_timeout_ok 231s [gw0] [ 43%] PASSED tests/convenience_test.py::TestServe::test_blocking 231s tests/convenience_test.py::TestServe::test_called_for_each_connection 231s [gw2] [ 44%] PASSED tests/hub_test.py::TestExceptionInGreenthread::test_exceptionpreservation 231s tests/hub_test.py::TestHubBlockingDetector::test_block_detect 231s [gw1] [ 44%] PASSED tests/greenthread_test.py::SpawnAfter::test_cancel_already_started 231s tests/greenthread_test.py::SpawnAfter::test_kill 231s [gw7] [ 44%] PASSED tests/event_test.py::test_wait_timeout_ok 231s [gw0] [ 44%] PASSED tests/convenience_test.py::TestServe::test_called_for_each_connection 231s tests/convenience_test.py::TestServe::test_concurrency 231s tests/event_test.py::test_wait_timeout_exceed 231s [gw1] [ 44%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill 231s tests/greenthread_test.py::SpawnAfter::test_kill_already_started 231s [gw0] [ 44%] PASSED tests/convenience_test.py::TestServe::test_concurrency 231s tests/convenience_test.py::TestServe::test_excepting_server 231s [gw1] [ 44%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_already_started 231s tests/greenthread_test.py::SpawnAfter::test_kill_meth 231s [gw7] [ 45%] PASSED tests/event_test.py::test_wait_timeout_exceed 231s tests/green_http_test.py::test_green_http_doesnt_change_original_module 231s [gw0] [ 45%] PASSED tests/convenience_test.py::TestServe::test_excepting_server 231s tests/convenience_test.py::TestServe::test_excepting_server_already_closed 231s [gw1] [ 45%] PASSED tests/greenthread_test.py::SpawnAfter::test_kill_meth 231s tests/patcher_test.py::Tpool::test_unpatched_thread 231s [gw0] [ 45%] PASSED tests/convenience_test.py::TestServe::test_excepting_server_already_closed 231s tests/convenience_test.py::TestServe::test_exiting_server 231s [gw0] [ 45%] PASSED tests/convenience_test.py::TestServe::test_exiting_server 231s tests/convenience_test.py::TestServe::test_raising_stopserve 231s [gw0] [ 45%] PASSED tests/convenience_test.py::TestServe::test_raising_stopserve 231s tests/convenience_test.py::TestServe::test_wrap_ssl 231s [gw4] [ 45%] PASSED tests/hub_test.py::TestDeadRunLoop::test_parent 231s tests/hub_test.py::test_use_hub_class 231s [gw0] [ 46%] PASSED tests/convenience_test.py::TestServe::test_wrap_ssl 231s tests/pools_test.py::TestIntPool::test_free 231s [gw0] [ 46%] PASSED tests/pools_test.py::TestIntPool::test_free 231s tests/pools_test.py::TestIntPool::test_integers 231s [gw0] [ 46%] PASSED tests/pools_test.py::TestIntPool::test_integers 231s tests/pools_test.py::TestIntPool::test_ordering 231s [gw0] [ 46%] PASSED tests/pools_test.py::TestIntPool::test_ordering 231s tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 231s [gw0] [ 46%] PASSED tests/pools_test.py::TestIntPool::test_put_with_timed_out_getters 231s tests/pools_test.py::TestIntPool::test_putting_to_queue 231s [gw0] [ 46%] PASSED tests/pools_test.py::TestIntPool::test_putting_to_queue 231s tests/pools_test.py::TestIntPool::test_resize 231s [gw0] [ 46%] PASSED tests/pools_test.py::TestIntPool::test_resize 231s tests/pools_test.py::TestAbstract::test_abstract 231s [gw0] [ 47%] PASSED tests/pools_test.py::TestAbstract::test_abstract 231s tests/pools_test.py::TestIntPool2::test_something 231s [gw0] [ 47%] PASSED tests/pools_test.py::TestIntPool2::test_something 231s tests/pools_test.py::TestOrderAsStack::test_ordering 231s [gw0] [ 47%] PASSED tests/pools_test.py::TestOrderAsStack::test_ordering 231s tests/pools_test.py::TestCreateRaises::test_it 231s [gw0] [ 47%] PASSED tests/pools_test.py::TestCreateRaises::test_it 231s tests/queue_test.py::TestQueue::test_channel_send 231s [gw0] [ 47%] PASSED tests/queue_test.py::TestQueue::test_channel_send 231s tests/queue_test.py::TestQueue::test_channel_sender_timing_out 231s [gw7] [ 47%] PASSED tests/green_http_test.py::test_green_http_doesnt_change_original_module 231s tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 231s [gw0] [ 47%] PASSED tests/queue_test.py::TestQueue::test_channel_sender_timing_out 231s tests/queue_test.py::TestQueue::test_channel_wait 231s [gw0] [ 47%] PASSED tests/queue_test.py::TestQueue::test_channel_wait 231s tests/queue_test.py::TestQueue::test_channel_waiters 231s [gw0] [ 48%] PASSED tests/queue_test.py::TestQueue::test_channel_waiters 231s tests/queue_test.py::TestQueue::test_getting_before_sending 231s [gw0] [ 48%] PASSED tests/queue_test.py::TestQueue::test_getting_before_sending 231s tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 231s [gw4] [ 48%] PASSED tests/hub_test.py::test_use_hub_class 232s tests/hub_test.py::test_kqueue_unsupported 232s [gw0] [ 48%] PASSED tests/queue_test.py::TestQueue::test_join_doesnt_block_when_queue_is_already_empty 232s tests/queue_test.py::TestQueue::test_max_size 232s [gw0] [ 48%] PASSED tests/queue_test.py::TestQueue::test_max_size 232s tests/queue_test.py::TestQueue::test_multiple_waiters 232s [gw7] [ 48%] PASSED tests/green_http_test.py::test_green_httplib_doesnt_change_original_module 232s tests/green_http_test.py::test_http_request_encode_chunked_kwarg 232s [gw7] [ 48%] PASSED tests/green_http_test.py::test_http_request_encode_chunked_kwarg 232s tests/green_profile_test.py::test_green_profile_basic 232s [gw7] [ 49%] PASSED tests/green_profile_test.py::test_green_profile_basic 232s tests/green_select_test.py::test_select_mark_file_as_reopened 232s [gw0] [ 49%] PASSED tests/queue_test.py::TestQueue::test_multiple_waiters 232s tests/queue_test.py::TestQueue::test_resize_down 232s [gw0] [ 49%] PASSED tests/queue_test.py::TestQueue::test_resize_down 232s tests/queue_test.py::TestQueue::test_resize_to_Unlimited 232s [gw0] [ 49%] PASSED tests/queue_test.py::TestQueue::test_resize_to_Unlimited 232s tests/queue_test.py::TestQueue::test_resize_up 232s [gw0] [ 49%] PASSED tests/queue_test.py::TestQueue::test_resize_up 232s tests/queue_test.py::TestQueue::test_send_first 232s [gw2] [ 49%] PASSED tests/hub_test.py::TestHubBlockingDetector::test_block_detect 232s tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 232s [gw0] [ 49%] PASSED tests/queue_test.py::TestQueue::test_send_first 232s tests/queue_test.py::TestQueue::test_send_last 232s [gw4] [ 50%] PASSED tests/hub_test.py::test_kqueue_unsupported 232s tests/mysqldb_test.py::TestMySQLdb::test_connecting 232s [gw4] [ 50%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting 232s tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 232s [gw4] [ 50%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_connecting_annoyingly 232s tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 232s [gw2] [ 50%] SKIPPED tests/hub_test.py::TestHubBlockingDetector::test_block_detect_with_itimer 232s tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 232s [gw4] [ 50%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_create_cursor 232s tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 232s [gw4] [ 50%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_module_attributes 232s tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 232s [gw4] [ 50%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_bad_query 232s tests/mysqldb_test.py::TestMySQLdb::test_run_query 232s [gw4] [ 51%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_run_query 232s tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 232s [gw4] [ 51%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_visibility_from_other_connections 232s tests/mysqldb_test.py::TestMySQLdb::test_yields 232s [gw4] [ 51%] SKIPPED tests/mysqldb_test.py::TestMySQLdb::test_yields 232s tests/semaphore_test.py::test_semaphore_contention 232s [gw0] [ 51%] PASSED tests/queue_test.py::TestQueue::test_send_last 232s tests/queue_test.py::TestQueue::test_task_done 232s [gw1] [ 51%] PASSED tests/patcher_test.py::Tpool::test_unpatched_thread 232s tests/patcher_test.py::test_subprocess_after_monkey_patch 232s [gw0] [ 51%] PASSED tests/queue_test.py::TestQueue::test_task_done 232s tests/queue_test.py::TestQueue::test_two_bogus_waiters 232s [gw0] [ 51%] PASSED tests/queue_test.py::TestQueue::test_two_bogus_waiters 232s tests/queue_test.py::TestQueue::test_two_waiters_one_dies 232s [gw0] [ 52%] PASSED tests/queue_test.py::TestQueue::test_two_waiters_one_dies 232s tests/queue_test.py::TestQueue::test_waiters_that_cancel 232s [gw0] [ 52%] PASSED tests/queue_test.py::TestQueue::test_waiters_that_cancel 232s tests/queue_test.py::TestQueue::test_waiting 232s [gw7] [ 52%] PASSED tests/green_select_test.py::test_select_mark_file_as_reopened 232s tests/greendns_test.py::TestHostsResolver::test_default_fname 232s [gw0] [ 52%] PASSED tests/queue_test.py::TestQueue::test_waiting 232s tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 232s [gw7] [ 52%] PASSED tests/greendns_test.py::TestHostsResolver::test_default_fname 232s tests/greendns_test.py::TestHostsResolver::test_getaliases 232s [gw0] [ 52%] PASSED tests/queue_test.py::TestQueue::test_zero_length_queue_nonblocking_put 232s tests/queue_test.py::TestQueue::test_zero_max_size 232s [gw7] [ 52%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases 232s tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 232s [gw0] [ 52%] PASSED tests/queue_test.py::TestQueue::test_zero_max_size 232s tests/ssl_test.py::SSLTest::test_context_version_setters 232s [gw7] [ 53%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_fqdn 232s tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 232s [gw7] [ 53%] PASSED tests/greendns_test.py::TestHostsResolver::test_getaliases_unknown 232s tests/queue_test.py::TestNoWait::test_get_nowait_simple 232s [gw1] [ 53%] PASSED tests/patcher_test.py::test_subprocess_after_monkey_patch 232s tests/patcher_test.py::Threading::test_greenlet 232s [gw4] [ 53%] PASSED tests/semaphore_test.py::test_semaphore_contention 232s tests/semaphore_test.py::test_semaphore_type_check 232s [gw4] [ 53%] PASSED tests/semaphore_test.py::test_semaphore_type_check 232s tests/socket_test.py::test_recv_type 232s [gw7] [ 53%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_simple 232s tests/queue_test.py::TestNoWait::test_get_nowait_unlock 232s [gw7] [ 53%] PASSED tests/queue_test.py::TestNoWait::test_get_nowait_unlock 233s tests/queue_test.py::TestNoWait::test_put_nowait_simple 233s [gw7] [ 54%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_simple 233s tests/queue_test.py::TestNoWait::test_put_nowait_unlock 233s [gw7] [ 54%] PASSED tests/queue_test.py::TestNoWait::test_put_nowait_unlock 233s tests/queue_test.py::TestNoWait::test_wait_except 233s [gw4] [ 54%] PASSED tests/socket_test.py::test_recv_type 233s tests/socket_test.py::test_recv_into_type 233s [gw7] [ 54%] PASSED tests/queue_test.py::TestNoWait::test_wait_except 233s tests/semaphore_test.py::TestSemaphore::test_bounded 233s [gw7] [ 54%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded 233s tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 233s [gw3] [ 54%] PASSED tests/greenio_test.py::TestGreenIoLong::test_multiple_readers 233s tests/greenio_test.py::test_set_nonblocking 233s [gw3] [ 54%] PASSED tests/greenio_test.py::test_set_nonblocking 233s tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 233s [gw3] [ 55%] PASSED tests/greenio_test.py::test_socket_del_fails_gracefully_when_not_fully_initialized 233s tests/greenio_test.py::test_double_close_219 233s [gw7] [ 55%] PASSED tests/semaphore_test.py::TestSemaphore::test_bounded_with_zero_limit 233s tests/semaphore_test.py::TestSemaphore::test_non_blocking 233s [gw2] [ 55%] PASSED tests/hub_test.py::TestSuspend::test_suspend_doesnt_crash 233s tests/hub_test.py::test_repeated_select_bad_fd 233s [gw0] [ 55%] PASSED tests/ssl_test.py::SSLTest::test_context_version_setters 233s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 233s [gw2] [ 55%] PASSED tests/hub_test.py::test_repeated_select_bad_fd 233s tests/hub_test.py::test_fork 233s [gw4] [ 55%] PASSED tests/socket_test.py::test_recv_into_type 233s tests/socket_test.py::test_socket_api_family 233s [gw4] [ 55%] PASSED tests/socket_test.py::test_socket_api_family 233s tests/socket_test.py::test_getaddrinfo_ipv6_scope 233s [gw7] [ 56%] PASSED tests/semaphore_test.py::TestSemaphore::test_non_blocking 233s tests/semaphore_test.py::TestSemaphore::test_timeout 233s [gw4] [ 56%] PASSED tests/socket_test.py::test_getaddrinfo_ipv6_scope 233s tests/socket_test.py::test_error_is_timeout 233s [gw4] [ 56%] PASSED tests/socket_test.py::test_error_is_timeout 233s tests/socket_test.py::test_connect_ex_success 233s [gw4] [ 56%] PASSED tests/socket_test.py::test_connect_ex_success 233s tests/ssl_test.py::SSLTest::test_client_check_hostname 233s [gw0] [ 56%] PASSED tests/ssl_test.py::SSLTest::test_context_wrapped_accept 233s tests/ssl_test.py::SSLTest::test_duplex_response 233s [gw1] [ 56%] PASSED tests/patcher_test.py::Threading::test_greenlet 233s tests/patcher_test.py::Threading::test_greenthread 233s [gw0] [ 56%] PASSED tests/ssl_test.py::SSLTest::test_duplex_response 233s tests/ssl_test.py::SSLTest::test_explicit_keys_accept 233s [gw4] [ 57%] PASSED tests/ssl_test.py::SSLTest::test_client_check_hostname 233s tests/subprocess_test.py::test_patched_communicate_290 233s [gw7] [ 57%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout 233s tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 233s [gw0] [ 57%] PASSED tests/ssl_test.py::SSLTest::test_explicit_keys_accept 233s tests/ssl_test.py::SSLTest::test_greensslobject 233s [gw7] [ 57%] PASSED tests/semaphore_test.py::TestSemaphore::test_timeout_non_blocking 233s tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 233s [gw0] [ 57%] PASSED tests/ssl_test.py::SSLTest::test_greensslobject 233s tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 233s [gw6] [ 57%] PASSED tests/os_test.py::test_os_write_nonblocking 233s tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 233s [gw6] [ 57%] SKIPPED tests/patcher_psycopg_test.py::PatchingPsycopg::test_psycopg_patched 233s tests/patcher_test.py::ImportPatched::test_patch_a_module 233s [gw3] [ 58%] PASSED tests/greenio_test.py::test_double_close_219 233s tests/greenio_test.py::test_partial_write_295 233s [gw2] [ 58%] PASSED tests/hub_test.py::test_fork 233s tests/hub_test.py::test_fork_simple 233s [gw3] [ 58%] PASSED tests/greenio_test.py::test_partial_write_295 233s tests/greenio_test.py::test_socket_file_read_non_int 233s [gw3] [ 58%] PASSED tests/greenio_test.py::test_socket_file_read_non_int 233s tests/greenio_test.py::test_pipe_context 233s [gw7] [ 58%] PASSED tests/ssl_test.py::SSLTest::test_sendall_cpu_usage 233s tests/ssl_test.py::SSLTest::test_ssl_close 233s [gw1] [ 58%] PASSED tests/patcher_test.py::Threading::test_greenthread 233s tests/patcher_test.py::Threading::test_keyerror 233s [gw0] [ 58%] PASSED tests/ssl_test.py::SSLTest::test_no_handshake_block_accept_loop 233s tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 233s [gw7] [ 58%] PASSED tests/ssl_test.py::SSLTest::test_ssl_close 233s tests/ssl_test.py::SSLTest::test_ssl_connect 233s [gw3] [ 59%] FAILED tests/greenio_test.py::test_pipe_context 233s tests/greenio_test.py::test_greenpipe_write 233s [gw4] [ 59%] PASSED tests/subprocess_test.py::test_patched_communicate_290 233s tests/subprocess_test.py::test_check_call_without_timeout_works 233s [gw4] [ 59%] PASSED tests/subprocess_test.py::test_check_call_without_timeout_works 233s tests/subprocess_test.py::test_exception_identity 233s [gw7] [ 59%] PASSED tests/ssl_test.py::SSLTest::test_ssl_connect 233s tests/ssl_test.py::SSLTest::test_ssl_context 233s [gw3] [ 59%] FAILED tests/greenio_test.py::test_greenpipe_write 234s tests/greenio_test.py::test_greenpipe_append 234s [gw3] [ 59%] FAILED tests/greenio_test.py::test_greenpipe_append 234s tests/greenio_test.py::test_greenpipe_read_overwrite 234s [gw7] [ 59%] PASSED tests/ssl_test.py::SSLTest::test_ssl_context 234s tests/ssl_test.py::SSLTest::test_ssl_unwrap 234s [gw0] [ 60%] PASSED tests/ssl_test.py::SSLTest::test_receiving_doesnt_block_if_there_is_already_decrypted_buffered_data 234s tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 234s [gw3] [ 60%] FAILED tests/greenio_test.py::test_greenpipe_read_overwrite 234s tests/greenio_test.py::test_greenpipe_write_plus 234s [gw6] [ 60%] PASSED tests/patcher_test.py::ImportPatched::test_patch_a_module 234s tests/patcher_test.py::test_import_patched_handles_sub_modules 234s [gw0] [ 60%] PASSED tests/ssl_test.py::SSLTest::test_recv_after_ssl_connect 234s tests/ssl_test.py::SSLTest::test_regression_gh_17 234s [gw7] [ 60%] PASSED tests/ssl_test.py::SSLTest::test_ssl_unwrap 234s tests/subprocess_test.py::test_subprocess_wait 234s [gw3] [ 60%] FAILED tests/greenio_test.py::test_greenpipe_write_plus 234s tests/greenio_test.py::test_greenpipe_append_plus 234s [gw0] [ 60%] PASSED tests/ssl_test.py::SSLTest::test_regression_gh_17 234s tests/test__socket_errors.py::test_create_connection_refused 234s [gw0] [ 61%] PASSED tests/test__socket_errors.py::test_create_connection_refused 234s tests/test_infrastructure_tests.py::test_run_python_timeout 234s [gw3] [ 61%] FAILED tests/greenio_test.py::test_greenpipe_append_plus 234s tests/greenpool_test.py::GreenPool::test_empty_imap 234s [gw7] [ 61%] PASSED tests/subprocess_test.py::test_subprocess_wait 234s tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 234s [gw7] [ 61%] PASSED tests/subprocess_test.py::test_close_popen_stdin_with_close_fds 234s tests/subprocess_test.py::test_universal_lines 234s [gw0] [ 61%] PASSED tests/test_infrastructure_tests.py::test_run_python_timeout 234s tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 234s [gw3] [ 61%] PASSED tests/greenpool_test.py::GreenPool::test_empty_imap 234s tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 234s [gw4] [ 61%] PASSED tests/subprocess_test.py::test_exception_identity 234s [gw0] [ 62%] PASSED tests/test_infrastructure_tests.py::test_run_python_pythonpath_extend 234s tests/thread_test.py::Locals::test_assignment 234s tests/test__event.py::TestEvent::test_send 234s [gw7] [ 62%] FAILED tests/subprocess_test.py::test_universal_lines 234s tests/thread_test.py::test_reinit 234s [gw7] [ 62%] PASSED tests/thread_test.py::test_reinit 234s tests/thread_test.py::test_can_use_eventlet_in_os_threads 234s [gw2] [ 62%] PASSED tests/hub_test.py::test_fork_simple 234s tests/patcher_test.py::test_threading_current 234s [gw1] [ 62%] PASSED tests/patcher_test.py::Threading::test_keyerror 234s tests/patcher_test.py::Threading::test_tpool 234s [gw0] [ 62%] PASSED tests/thread_test.py::Locals::test_assignment 234s tests/thread_test.py::Locals::test_calling_methods 234s [gw3] [ 62%] PASSED tests/timeout_with_statement_test.py::Test::test_cancel_timer_inside_block 234s tests/timeout_with_statement_test.py::Test::test_cancellation 234s [gw4] [ 63%] PASSED tests/test__event.py::TestEvent::test_send 234s tests/test__event.py::TestEvent::test_send_exc 234s [gw0] [ 63%] PASSED tests/thread_test.py::Locals::test_calling_methods 234s tests/thread_test.py::Locals::test_calls_init 234s [gw4] [ 63%] PASSED tests/test__event.py::TestEvent::test_send_exc 234s tests/test__refcount.py::test_clean_exit 234s [gw3] [ 63%] PASSED tests/timeout_with_statement_test.py::Test::test_cancellation 234s tests/timeout_with_statement_test.py::Test::test_dummy_timer 234s [gw0] [ 63%] PASSED tests/thread_test.py::Locals::test_calls_init 234s tests/thread_test.py::Locals::test_no_leaking 234s [gw6] [ 63%] PASSED tests/patcher_test.py::test_import_patched_handles_sub_modules 234s tests/patcher_test.py::MonkeyPatch::test_boolean 234s [gw3] [ 63%] PASSED tests/timeout_with_statement_test.py::Test::test_dummy_timer 234s tests/timeout_with_statement_test.py::Test::test_nested_timeout 234s [gw3] [ 64%] PASSED tests/timeout_with_statement_test.py::Test::test_nested_timeout 234s tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 234s [gw0] [ 64%] PASSED tests/thread_test.py::Locals::test_no_leaking 234s tests/thread_test.py::test_compat_lock_release 234s [gw0] [ 64%] PASSED tests/thread_test.py::test_compat_lock_release 234s tests/timeout_with_statement_test.py::Test::test_raising_self 234s [gw3] [ 64%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_custom_exception 234s tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 234s [gw0] [ 64%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self 234s tests/timeout_with_statement_test.py::Test::test_raising_self_true 234s [gw0] [ 64%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_self_true 234s tests/timeout_with_statement_test.py::Test::test_ref 234s [gw3] [ 64%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exc_tuple 234s tests/timeout_with_statement_test.py::Test::test_raising_exception_class 234s [gw2] [ 64%] PASSED tests/patcher_test.py::test_threading_current 234s tests/patcher_test.py::test_threadpoolexecutor 234s [gw3] [ 65%] PASSED tests/timeout_with_statement_test.py::Test::test_raising_exception_class 234s tests/tpool_test.py::TestTpool::test_autowrap_both 234s [gw1] [ 65%] PASSED tests/patcher_test.py::Threading::test_tpool 234s tests/patcher_test.py::Os::test_waitpid 234s [gw0] [ 65%] PASSED tests/timeout_with_statement_test.py::Test::test_ref 234s tests/timeout_with_statement_test.py::Test::test_silent_block 234s [gw3] [ 65%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_both 235s tests/tpool_test.py::TestTpool::test_autowrap_names 235s [gw3] [ 65%] PASSED tests/tpool_test.py::TestTpool::test_autowrap_names 235s tests/tpool_test.py::TestTpool::test_callable 235s [gw4] [ 65%] PASSED tests/test__refcount.py::test_clean_exit 235s tests/test__refcount.py::test_timeout_exit 235s [gw6] [ 65%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean 235s tests/patcher_test.py::MonkeyPatch::test_boolean_all 235s [gw0] [ 66%] PASSED tests/timeout_with_statement_test.py::Test::test_silent_block 235s tests/timer_test.py::TestTimer::test_copy 235s [gw0] [ 66%] PASSED tests/timer_test.py::TestTimer::test_copy 235s tests/timer_test.py::TestTimer::test_schedule 235s [gw0] [ 66%] PASSED tests/timer_test.py::TestTimer::test_schedule 235s tests/tpool_test.py::TestTpool::test_autowrap 235s [gw3] [ 66%] PASSED tests/tpool_test.py::TestTpool::test_callable 235s tests/tpool_test.py::TestTpool::test_callable_iterator 235s [gw0] [ 66%] PASSED tests/tpool_test.py::TestTpool::test_autowrap 235s tests/tpool_test.py::TestTpool::test_killall_remaining_results 235s [gw3] [ 66%] PASSED tests/tpool_test.py::TestTpool::test_callable_iterator 235s tests/tpool_test.py::TestTpool::test_contention 235s [gw3] [ 66%] PASSED tests/tpool_test.py::TestTpool::test_contention 235s tests/tpool_test.py::TestTpool::test_eventlet_timeout 235s [gw2] [ 67%] PASSED tests/patcher_test.py::test_threadpoolexecutor 235s tests/patcher_test.py::test_builtin 235s [gw3] [ 67%] PASSED tests/tpool_test.py::TestTpool::test_eventlet_timeout 235s tests/tpool_test.py::TestTpool::test_killall 235s [gw7] [ 67%] PASSED tests/thread_test.py::test_can_use_eventlet_in_os_threads 235s tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 235s [gw7] [ 67%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_class 235s tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 235s [gw3] [ 67%] PASSED tests/tpool_test.py::TestTpool::test_killall 235s tests/tpool_test.py::TestTpool::test_wrap_hash 235s [gw7] [ 67%] PASSED tests/timeout_test.py::TestDirectRaise::test_direct_raise_instance 235s tests/timeout_test.py::TestDirectRaise::test_repr 235s [gw3] [ 67%] PASSED tests/tpool_test.py::TestTpool::test_wrap_hash 235s tests/tpool_test.py::TestTpool::test_wrap_ints 235s [gw7] [ 68%] PASSED tests/timeout_test.py::TestDirectRaise::test_repr 235s tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 235s [gw1] [ 68%] PASSED tests/patcher_test.py::Os::test_waitpid 235s tests/patcher_test.py::GreenThreadWrapper::test_ident 235s [gw3] [ 68%] PASSED tests/tpool_test.py::TestTpool::test_wrap_ints 235s tests/tpool_test.py::TestTpool::test_wrap_iterator 235s [gw7] [ 68%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_outer_timer 235s tests/timeout_test.py::TestWithTimeout::test_with_timeout 235s [gw4] [ 68%] PASSED tests/test__refcount.py::test_timeout_exit 235s tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 235s [gw4] [ 68%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_connection_refused 235s tests/test__socket_errors.py::TestSocketErrors::test_timeout 235s [gw6] [ 68%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all 235s tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 235s [gw3] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator 235s tests/tpool_test.py::TestTpool::test_wrap_iterator2 235s [gw7] [ 69%] PASSED tests/timeout_test.py::TestWithTimeout::test_with_timeout 235s tests/timeout_test.py::test_is_timeout_attribute 235s [gw7] [ 69%] PASSED tests/timeout_test.py::test_is_timeout_attribute 235s tests/tpool_test.py::TestTpool::test_wrap_setitem 235s [gw2] [ 69%] PASSED tests/patcher_test.py::test_builtin 235s tests/patcher_test.py::test_open_kwargs 235s [gw3] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_wrap_iterator2 235s tests/tpool_test.py::TestTpool::test_wrap_module_class 235s [gw7] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_wrap_setitem 235s tests/tpool_test.py::TestTpool::test_wrap_string 235s [gw3] [ 69%] PASSED tests/tpool_test.py::TestTpool::test_wrap_module_class 235s tests/tpool_test.py::TestTpool::test_wrap_nonzero 235s [gw7] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_wrap_string 235s tests/tpool_test.py::TestTpool::test_wrap_tuple 235s [gw0] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_killall_remaining_results 235s tests/tpool_test.py::TestTpool::test_multiple_wraps 235s [gw3] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_wrap_nonzero 235s tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 235s [gw7] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_wrap_tuple 235s tests/tpool_test.py::TestTpool::test_wrap_uniterable 235s [gw3] [ 70%] PASSED tests/websocket_new_test.py::TestWebSocket::test_send_recv_13 235s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 235s [gw7] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_wrap_uniterable 235s tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 235s [gw0] [ 70%] PASSED tests/tpool_test.py::TestTpool::test_multiple_wraps 236s tests/tpool_test.py::TestTpool::test_raising_exceptions 236s [gw3] [ 70%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_basic_deflate_ext_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 236s [gw2] [ 71%] PASSED tests/patcher_test.py::test_open_kwargs 236s tests/patcher_test.py::test_patcher_existing_locks 236s [gw1] [ 71%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_ident 236s tests/patcher_test.py::GreenThreadWrapper::test_is_alive 236s [gw6] [ 71%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_negative 236s tests/patcher_test.py::GreenThreadWrapper::test_name 236s [gw0] [ 71%] PASSED tests/tpool_test.py::TestTpool::test_raising_exceptions 236s tests/tpool_test.py::TestTpool::test_timeout 236s [gw3] [ 71%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_context_takeover_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 236s [gw3] [ 71%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_accept_deflate_ext_window_max_bits_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 236s [gw3] [ 71%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_no_context_takeover_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 236s [gw3] [ 72%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_client_compress_with_context_takeover_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 236s [gw3] [ 72%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 236s [gw3] [ 72%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_send_uncompressed_msg_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 236s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_timeout 236s tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 236s [gw3] [ 72%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_no_context_takeover_13 236s tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 236s [gw0] [ 72%] PASSED tests/tpool_test.py::TestTpool::test_tpool_set_num_threads 236s tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 236s [gw2] [ 72%] PASSED tests/patcher_test.py::test_patcher_existing_locks 236s tests/patcher_test.py::test_patcher_existing_locks_exception 236s [gw0] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_variable_and_keyword_arguments_with_function_calls 236s tests/tpool_test.py::TestTpool::test_wrap_dict 236s [gw3] [ 73%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_server_compress_with_context_takeover_13 236s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 236s [gw1] [ 73%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_alive 236s tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 236s [gw6] [ 73%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_name 236s tests/patcher_test.py::test_patcher_existing_locks_early 236s [gw4] [ 73%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout 236s tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 236s [gw0] [ 73%] PASSED tests/tpool_test.py::TestTpool::test_wrap_dict 236s tests/tpool_test.py::TestTpool::test_wrap_eq 236s [gw3] [ 73%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_75 236s tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 236s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_eq 236s tests/tpool_test.py::TestTpool::test_wrap_getitem 236s [gw3] [ 74%] PASSED tests/websocket_test.py::TestWebSocket::test_app_socket_errors_76 236s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 236s [gw0] [ 74%] PASSED tests/tpool_test.py::TestTpool::test_wrap_getitem 236s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 236s [gw3] [ 74%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_75 236s tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 236s [gw0] [ 74%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_75 236s tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 236s [gw0] [ 74%] PASSED tests/websocket_test.py::TestWebSocket::test_correct_upgrade_request_76 236s tests/websocket_test.py::TestWebSocket::test_empty_query_string 236s [gw3] [ 74%] PASSED tests/websocket_test.py::TestWebSocket::test_breaking_the_connection_76 236s tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 236s [gw0] [ 75%] PASSED tests/websocket_test.py::TestWebSocket::test_empty_query_string 236s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 236s [gw3] [ 75%] PASSED tests/websocket_test.py::TestWebSocket::test_client_closing_connection_76 236s tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 236s [gw2] [ 75%] PASSED tests/patcher_test.py::test_patcher_existing_locks_exception 236s tests/patcher_test.py::test_patcher_threading_subclass_done 236s [gw3] [ 75%] PASSED tests/websocket_test.py::TestWebSocket::test_client_invalid_packet_76 237s tests/websocket_test.py::TestWebSocket::test_close_idle 237s [gw7] [ 75%] PASSED tests/tpool_test.py::TpoolLongTests::test_a_buncha_stuff 237s tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 237s [gw3] [ 75%] PASSED tests/websocket_test.py::TestWebSocket::test_close_idle 237s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 237s [gw6] [ 75%] PASSED tests/patcher_test.py::test_patcher_existing_locks_early 237s tests/patcher_test.py::test_patcher_existing_locks_late 237s [gw0] [ 76%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_75 237s tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 237s [gw1] [ 76%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_is_daemon 237s tests/patcher_test.py::GreenThreadWrapper::test_join 237s [gw5] [ 76%] PASSED tests/greenpool_test.py::Stress::test_imap_50 237s tests/greenpool_test.py::Stress::test_imap_500 237s [gw3] [ 76%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_76 237s tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 237s [gw3] [ 76%] PASSED tests/websocket_test.py::TestWebSocket::test_server_closing_connect_76 237s tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 237s [gw0] [ 76%] PASSED tests/websocket_test.py::TestWebSocket::test_getting_messages_from_websocket_76 237s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 237s [gw0] [ 76%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_75 237s tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 237s [gw7] [ 76%] PASSED tests/tpool_test.py::TpoolLongTests::test_leakage_from_tracebacks 237s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 237s [gw0] [ 77%] PASSED tests/websocket_test.py::TestWebSocket::test_incomplete_headers_76 237s tests/websocket_test.py::TestWebSocket::test_incorrect_headers 237s [gw7] [ 77%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_both_no_context_13 237s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 237s [gw0] [ 77%] PASSED tests/websocket_test.py::TestWebSocket::test_incorrect_headers 237s tests/websocket_test.py::TestWebSocket::test_query_string 237s [gw3] [ 77%] PASSED tests/websocket_test.py::TestWebSocket::test_wrapped_wsgi 237s tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 237s [gw2] [ 77%] PASSED tests/patcher_test.py::test_patcher_threading_subclass_done 237s tests/pools_test.py::TestIntPool::test_blocks_on_pool 237s [gw2] [ 77%] PASSED tests/pools_test.py::TestIntPool::test_blocks_on_pool 237s tests/pools_test.py::TestIntPool::test_create_contention 237s [gw2] [ 77%] PASSED tests/pools_test.py::TestIntPool::test_create_contention 237s tests/pools_test.py::TestIntPool::test_exhaustion 237s [gw2] [ 78%] PASSED tests/pools_test.py::TestIntPool::test_exhaustion 237s tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 237s [gw0] [ 78%] PASSED tests/websocket_test.py::TestWebSocket::test_query_string 237s tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 237s [gw7] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_client_no_context_13 237s tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 237s [gw2] [ 78%] PASSED tests/wsgi_test.py::TestHttpd::test_011_multiple_chunks 237s tests/wsgi_test.py::TestHttpd::test_012_ssl_server 237s [gw6] [ 78%] PASSED tests/patcher_test.py::test_patcher_existing_locks_late 237s tests/patcher_test.py::test_patcher_existing_locks_unlocked 237s [gw6] [ 78%] SKIPPED tests/patcher_test.py::test_patcher_existing_locks_unlocked 237s tests/patcher_test.py::test_patcher_existing_logging_module_lock 237s [gw7] [ 78%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_compressed_send_recv_server_no_context_13 237s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 237s [gw0] [ 79%] PASSED tests/websocket_test.py::TestWebSocket::test_sending_messages_to_websocket_75 237s tests/wsgi_test.py::TestHttpd::test_007_get_arg 237s [gw3] [ 79%] PASSED tests/websocket_test.py::TestWebSocketSSL::test_ssl_sending_messages 237s [gw4] [ 79%] PASSED tests/test__socket_errors.py::TestSocketErrors::test_timeout_real_socket 237s tests/tpool_test.py::test_isolate_from_socket_default_timeout 237s [gw2] [ 79%] PASSED tests/wsgi_test.py::TestHttpd::test_012_ssl_server 237s tests/websocket_test.py::TestWebSocketObject::test_close_ws 237s tests/wsgi_test.py::TestHttpd::test_013_empty_return 237s [gw7] [ 79%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_compressed_13 237s tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 237s [gw0] [ 79%] PASSED tests/wsgi_test.py::TestHttpd::test_007_get_arg 237s tests/wsgi_test.py::TestHttpd::test_008_correctresponse 237s [gw1] [ 79%] PASSED tests/patcher_test.py::GreenThreadWrapper::test_join 237s tests/websocket_test.py::TestWebSocketObject::test_recieve 237s [gw3] [ 80%] PASSED tests/websocket_test.py::TestWebSocketObject::test_close_ws 237s tests/wsgi_test.py::TestHttpd::test_015_write 237s [gw2] [ 80%] PASSED tests/wsgi_test.py::TestHttpd::test_013_empty_return 237s tests/wsgi_test.py::TestHttpd::test_014_chunked_post 237s [gw0] [ 80%] PASSED tests/wsgi_test.py::TestHttpd::test_008_correctresponse 237s tests/wsgi_test.py::TestHttpd::test_009_chunked_response 237s [gw1] [ 80%] PASSED tests/websocket_test.py::TestWebSocketObject::test_recieve 237s [gw3] [ 80%] PASSED tests/wsgi_test.py::TestHttpd::test_015_write 237s tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 237s tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 237s [gw2] [ 80%] PASSED tests/wsgi_test.py::TestHttpd::test_014_chunked_post 237s tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 237s [gw2] [ 80%] SKIPPED tests/wsgi_test.py::TestHttpd::test_019_fieldstorage_compat 237s tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 237s [gw0] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_009_chunked_response 237s tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 237s [gw7] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_large_frame_size_uncompressed_13 237s tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 237s [gw3] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_016_repeated_content_length 237s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 237s [gw1] [ 81%] PASSED tests/websocket_test.py::TestWebSocketObject::test_send_to_ws 237s tests/wsgi_test.py::TestHttpd::test_001_server 237s [gw2] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_020_x_forwarded_for 237s tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 237s [gw0] [ 81%] PASSED tests/wsgi_test.py::TestHttpd::test_010_no_chunked_http_1_0 237s tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 237s [gw7] [ 81%] PASSED tests/websocket_new_test.py::TestWebSocketWithCompression::test_reject_max_window_bits_out_of_range_13 237s tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 237s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_001_server 237s tests/wsgi_test.py::TestHttpd::test_002_keepalive 237s [gw3] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 237s tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 237s [gw2] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_021_environ_clobbering 237s tests/wsgi_test.py::TestHttpd::test_022_custom_pool 237s [gw0] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_023_bad_content_length 237s tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 237s [gw7] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_024c_expect_100_continue_with_headers_multiple_nonchunked 237s tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 237s [gw1] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_002_keepalive 237s tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 237s [gw3] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_018_http_10_keepalive 237s tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 237s [gw2] [ 82%] PASSED tests/wsgi_test.py::TestHttpd::test_022_custom_pool 237s tests/wsgi_test.py::TestHttpd::test_026_log_format 237s [gw6] [ 83%] PASSED tests/patcher_test.py::test_patcher_existing_logging_module_lock 237s tests/patcher_test.py::test_importlib_lock 237s [gw7] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_024d_expect_100_continue_with_eager_app_chunked 237s tests/wsgi_test.py::TestHttpd::test_025_accept_errors 237s [gw1] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_004_close_keepalive 238s tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 238s [gw3] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_018b_http_10_keepalive_framing 238s tests/wsgi_test.py::TestHttpd::test_029_posthooks 238s [gw0] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_024_expect_100_continue 238s tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 238s [gw2] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_026_log_format 238s tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 238s [gw7] [ 83%] PASSED tests/wsgi_test.py::TestHttpd::test_025_accept_errors 238s tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 238s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_006_reject_long_urls 238s tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 238s [gw3] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_029_posthooks 238s tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 238s [gw0] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_024a_expect_100_continue_with_headers 238s tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 238s [gw2] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_026b_http_10_zero_keepalive 238s tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 238s [gw7] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_026_http_10_nokeepalive 238s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 238s [gw3] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_030_reject_long_header_lines 238s [gw1] [ 84%] PASSED tests/wsgi_test.py::TestHttpd::test_032_wsgi_input_as_iterable 238s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 238s tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 238s [gw0] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_024b_expect_100_continue_with_headers_multiple_chunked 238s tests/wsgi_test.py::TestHttpd::test_client_disconnect 238s [gw2] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_027_keepalive_chunked 238s [gw4] [ 85%] PASSED tests/tpool_test.py::test_isolate_from_socket_default_timeout 238s tests/tpool_test.py::test_exception_leak 238s tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 238s [gw7] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_between_chunks 238s [gw3] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_031_reject_large_headers 238s tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 238s tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 238s [gw1] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post 238s tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 238s [gw0] [ 85%] PASSED tests/wsgi_test.py::TestHttpd::test_client_disconnect 238s tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 238s [gw2] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_028_ssl_handshake_errors 238s [gw3] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections_listen_socket_closed 238s tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 238s tests/wsgi_test.py::TestHttpd::test_debug 238s [gw0] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_close_chunked_with_1_0_client 238s tests/wsgi_test.py::TestHttpd::test_close_idle_connections 238s [gw1] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_chunked_post_bad_chunks 238s tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 238s [gw7] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_aborted_post_io_error 238s tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 238s [gw3] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_configurable_url_length_limit 238s [gw0] [ 86%] PASSED tests/wsgi_test.py::TestHttpd::test_close_idle_connections 238s tests/wsgi_test.py::TestHttpd::test_env_headers 238s tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 238s [gw2] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_debug 238s [gw7] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_chunked_response_when_app_yields_empty_string 238s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 238s tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 238s [gw0] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_env_headers 238s tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 238s [gw3] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_content_length_and_transfer_encoding_escape_hatch 238s tests/wsgi_test.py::TestHttpd::test_headers_raw 238s [gw7] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_exceptions_close_connection 238s [gw2] [ 87%] PASSED tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 238s tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 238s tests/wsgi_test.py::TestHttpd::test_log_disable 238s [gw6] [ 87%] PASSED tests/patcher_test.py::test_importlib_lock 238s tests/patcher_test.py::test_threading_condition 238s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_error_in_chunked_closes_connection 238s tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 238s [gw3] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_headers_raw 238s tests/wsgi_test.py::TestHttpd::test_ipv6 238s [gw7] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_header_name_capitalization 238s tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 238s [gw2] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_log_disable 238s tests/wsgi_test.py::TestHttpd::test_log_unix_address 238s [gw0] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_minimum_chunk_size_parameter_leaves_httpprotocol_class_member_intact 238s tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 238s [gw3] [ 88%] SKIPPED tests/wsgi_test.py::TestHttpd::test_ipv6 238s tests/wsgi_test.py::TestHttpd::test_path_info_decoding 238s [gw7] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_no_transfer_encoding_in_empty_response 238s tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 238s [gw2] [ 88%] PASSED tests/wsgi_test.py::TestHttpd::test_log_unix_address 238s tests/wsgi_test.py::TestHttpd::test_path_info_latin1 238s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_no_content_length_or_transfer_encoding 238s tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 238s [gw3] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_decoding 238s tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 238s [gw7] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_partial_writes_are_handled 238s tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 238s [gw2] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_path_info_latin1 238s tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 238s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_rfc9112_reject_bad_request 238s tests/wsgi_test.py::TestHttpd::test_socket_remains_open 238s [gw7] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_sent_in_headers 238s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 238s [gw0] [ 89%] PASSED tests/wsgi_test.py::TestHttpd::test_socket_remains_open 238s tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 238s [gw7] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_iter 238s tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 238s [gw0] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_only_ascii_characters_works 238s tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 238s [gw2] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_server_socket_timeout 238s tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 238s [gw7] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_zero_length_chunked_response 238s [gw4] [ 90%] PASSED tests/tpool_test.py::test_exception_leak 238s tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 238s tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 238s [gw0] [ 90%] PASSED tests/wsgi_test.py::IterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 238s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 238s [gw2] [ 90%] PASSED tests/wsgi_test.py::TestHttpd::test_unicode_with_nonascii_characters_raises_error 238s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 238s [gw3] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_server_keepalive_as_timeout 238s tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 238s [gw4] [ 91%] PASSED tests/websocket_new_test.py::TestWebSocket::test_breaking_the_connection_13 238s [gw6] [ 91%] PASSED tests/patcher_test.py::test_threading_condition 238s tests/patcher_test.py::test_threading_join 238s tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 238s [gw7] [ 91%] PASSED tests/wsgi_test.py::ProxiedIterableAlreadyHandledTest::test_iterable_app_keeps_socket_open_unless_connection_close_sent 238s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 238s [gw0] [ 91%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline 238s tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 238s [gw2] [ 91%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_from_input 238s tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 238s [gw3] [ 91%] PASSED tests/wsgi_test.py::TestHttpd::test_timeouts_in_app_call 238s tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 238s [gw4] [ 92%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_closing_connection_13 239s tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 239s [gw3] [ 92%] PASSED tests/wsgi_test.py::TestChunkedInput::test_close_before_finished 239s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 239s [gw2] [ 92%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readlines_from_input 239s [gw4] [ 92%] PASSED tests/websocket_new_test.py::TestWebSocket::test_client_invalid_packet_13 239s tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 239s tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 239s [gw3] [ 92%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_zero_content_length 239s [gw7] [ 92%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_not_override_minimum_chunk_size 239s tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 239s tests/wsgi_test.py::TestChunkedInput::test_dirt 239s [gw0] [ 92%] PASSED tests/wsgi_test.py::TestChunkedInput::test_chunked_readline_wsgi_override_minimum_chunk_size 239s [gw4] [ 93%] PASSED tests/websocket_new_test.py::TestWebSocket::test_correct_upgrade_request_13 239s tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 239s tests/wsgi_test.py::TestChunkedInput::test_short_read 239s [gw2] [ 93%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read_with_content_length 239s tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 239s [gw7] [ 93%] PASSED tests/wsgi_test.py::TestChunkedInput::test_dirt 239s tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 239s [gw0] [ 93%] PASSED tests/wsgi_test.py::TestChunkedInput::test_short_read 239s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 239s [gw4] [ 93%] PASSED tests/websocket_new_test.py::TestWebSocket::test_incomplete_headers_13 239s tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 239s [gw2] [ 93%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_during_recv 239s tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 239s [gw7] [ 93%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_socket_raises_enotsup 239s tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 239s [gw4] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_xsocket_raises_enotsup 239s tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 239s [gw7] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_getsockopt_events 239s tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 239s [gw3] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_change_subscription 239s tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 239s [gw7] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_spawned_before_send_is_non_blocking 239s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 239s [gw3] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_close_linger 239s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 239s [gw4] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_multipart_bug68 239s tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 239s [gw0] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_bind 239s tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 239s [gw3] [ 94%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv 239s tests/zmq_test.py::TestQueueLock::test_count 239s [gw0] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_during_send 239s tests/zmq_test.py::TestQueueLock::test_nested_acquire 239s [gw3] [ 95%] PASSED tests/zmq_test.py::TestQueueLock::test_count 239s tests/zmq_test.py::TestQueueLock::test_queue_lock_order 239s [gw7] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_req_rep 239s tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 239s [gw0] [ 95%] PASSED tests/zmq_test.py::TestQueueLock::test_nested_acquire 239s tests/zmq_test.py::TestBlockedThread::test_block 239s [gw4] [ 95%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_1k_push_pull 239s tests/zmq_test.py::TestQueueLock::test_errors 239s [gw3] [ 95%] PASSED tests/zmq_test.py::TestQueueLock::test_queue_lock_order 239s [gw0] [ 95%] PASSED tests/zmq_test.py::TestBlockedThread::test_block 239s tests/zmq_test.py::test_recv_json_no_args 239s [gw3] [ 96%] PASSED tests/zmq_test.py::test_recv_json_no_args 239s [gw2] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_cpu_usage_after_pub_send_or_dealer_recv 239s tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 239s [gw7] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_send_during_recv_multipart 239s tests/zmq_test.py::test_recv_timeout 239s [gw2] [ 96%] PASSED tests/zmq_test.py::TestUpstreamDownStream::test_recv_noblock_bug76 239s [gw4] [ 96%] PASSED tests/zmq_test.py::TestQueueLock::test_errors 240s [gw7] [ 96%] PASSED tests/zmq_test.py::test_recv_timeout 240s [gw6] [ 96%] PASSED tests/patcher_test.py::test_threading_join 240s tests/patcher_test.py::test_socketserver_selectors 240s [gw1] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_do_not_close_non_idle_connections 240s tests/wsgi_test.py::TestHttpd::test_env_header_stripping 241s [gw1] [ 97%] PASSED tests/wsgi_test.py::TestHttpd::test_env_header_stripping 241s [gw6] [ 97%] PASSED tests/patcher_test.py::test_socketserver_selectors 241s tests/patcher_test.py::test_blocking_select_methods_are_deleted 241s [gw6] [ 97%] PASSED tests/patcher_test.py::test_blocking_select_methods_are_deleted 242s tests/patcher_test.py::test_regular_file_readall 244s [gw6] [ 97%] FAILED tests/patcher_test.py::test_regular_file_readall 244s [gw5] [ 97%] PASSED tests/greenpool_test.py::Stress::test_imap_500 244s tests/greenpool_test.py::Stress::test_ordering_5 244s [gw5] [ 97%] PASSED tests/greenpool_test.py::Stress::test_ordering_5 244s tests/greenpool_test.py::Stress::test_ordering_50 244s [gw5] [ 98%] PASSED tests/greenpool_test.py::Stress::test_ordering_50 245s tests/greenpool_test.py::Stress::test_with_intpool 245s [gw5] [ 98%] PASSED tests/greenpool_test.py::Stress::test_with_intpool 245s tests/greenthread_test.py::Spawn::test_kill 245s [gw5] [ 98%] PASSED tests/greenthread_test.py::Spawn::test_kill 245s tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 245s [gw5] [ 98%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_all_single 245s tests/patcher_test.py::MonkeyPatch::test_boolean_double 246s [gw5] [ 98%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_double 246s tests/patcher_test.py::MonkeyPatch::test_boolean_negative 246s [gw5] [ 98%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative 246s tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 246s [gw5] [ 98%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_negative2 247s tests/patcher_test.py::MonkeyPatch::test_boolean_single 247s [gw5] [ 99%] PASSED tests/patcher_test.py::MonkeyPatch::test_boolean_single 247s tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 247s [gw5] [ 99%] PASSED tests/patcher_test.py::MonkeyPatch::test_conflicting_specifications 248s tests/patcher_test.py::MonkeyPatch::test_early_patching 248s [gw5] [ 99%] PASSED tests/patcher_test.py::MonkeyPatch::test_early_patching 248s tests/patcher_test.py::MonkeyPatch::test_late_patching 248s [gw5] [ 99%] PASSED tests/patcher_test.py::MonkeyPatch::test_late_patching 249s tests/patcher_test.py::MonkeyPatch::test_patched_modules 249s [gw5] [ 99%] PASSED tests/patcher_test.py::MonkeyPatch::test_patched_modules 249s tests/patcher_test.py::MonkeyPatch::test_typeerror 249s [gw5] [ 99%] PASSED tests/patcher_test.py::MonkeyPatch::test_typeerror 250s tests/patcher_test.py::Tpool::test_patched_thread 250s [gw5] [ 99%] PASSED tests/patcher_test.py::Tpool::test_patched_thread 251s tests/patcher_test.py::Tpool::test_simple 252s [gw5] [100%] PASSED tests/patcher_test.py::Tpool::test_simple 252s 252s ==================================== ERRORS ==================================== 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s __________________ ERROR collecting tests/test__greenness.py ___________________ 252s tests/test__greenness.py:8: in 252s from eventlet.green.urllib.request import urlopen 252s eventlet/green/urllib/request.py:40: in 252s URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions) 252s ^^^^^^^^^ 252s E NameError: name 'URLopener' is not defined 252s =================================== FAILURES =================================== 252s ____________________ TestGreenPipe.test_pip_read_until_end _____________________ 252s [gw4] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s self = 252s 252s def test_pip_read_until_end(self): 252s # similar to test_pip_read above but reading until eof 252s r, w = os.pipe() 252s 252s > r = greenio.GreenPipe(r, 'rb') 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:757: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = 14, mode = 'rb', buffering = -1, encoding = None, errors = None 252s newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s ___________________________ TestGreenPipe.test_pipe ____________________________ 252s [gw4] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s self = 252s 252s def test_pipe(self): 252s r, w = os.pipe() 252s > rf = greenio.GreenPipe(r, 'rb') 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:706: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = 14, mode = 'rb', buffering = -1, encoding = None, errors = None 252s newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s _________________________ TestGreenPipe.test_pipe_read _________________________ 252s [gw4] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s self = 252s 252s def test_pipe_read(self): 252s # ensure that 'readline' works properly on GreenPipes when data is not 252s # immediately available (fd is nonblocking, was raising EAGAIN) 252s # also ensures that readline() terminates on '\n' and '\r\n' 252s r, w = os.pipe() 252s 252s > r = greenio.GreenPipe(r, 'rb') 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:729: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = 14, mode = 'rb', buffering = -1, encoding = None, errors = None 252s newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s ________________ TestGreenPipe.test_pipe_writes_large_messages _________________ 252s [gw4] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s self = 252s 252s def test_pipe_writes_large_messages(self): 252s r, w = os.pipe() 252s 252s > r = greenio.GreenPipe(r, 'rb') 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:786: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = 14, mode = 'rb', buffering = -1, encoding = None, errors = None 252s newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s ______________________________ test_pipe_context _______________________________ 252s [gw3] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_pipe_context(): 252s # ensure using a pipe as a context actually closes it. 252s r, w = os.pipe() 252s > r = greenio.GreenPipe(r) 252s ^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:997: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = 18, mode = 'r', buffering = -1, encoding = None, errors = None 252s newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s _____________________________ test_greenpipe_write _____________________________ 252s [gw3] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_greenpipe_write(): 252s expected = b"initial" 252s with tempfile.NamedTemporaryFile() as f: 252s > with greenio.GreenPipe(f.name, "wb") as writer: 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:1012: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = '/tmp/tmpgkridhwl', mode = 'wb', buffering = -1, encoding = None 252s errors = None, newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s ____________________________ test_greenpipe_append _____________________________ 252s [gw3] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_greenpipe_append(): 252s old_data = b"existing data..." 252s new_data = b"append with mode=a" 252s expected = old_data + new_data 252s with tempfile.NamedTemporaryFile() as f: 252s with open(f.name, "wb") as fw: 252s fw.write(old_data) 252s 252s > with greenio.GreenPipe(f.name, "ab") as writer: 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:1027: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = '/tmp/tmpkhi5zg9r', mode = 'ab', buffering = -1, encoding = None 252s errors = None, newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s ________________________ test_greenpipe_read_overwrite _________________________ 252s [gw3] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_greenpipe_read_overwrite(): 252s old_data = b"existing data..." 252s new_data = b"overwrite with mode=r+" 252s with tempfile.NamedTemporaryFile() as f: 252s > with greenio.GreenPipe(f.name, "wb") as writer: 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:1038: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = '/tmp/tmpqzxhem0g', mode = 'wb', buffering = -1, encoding = None 252s errors = None, newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s __________________________ test_greenpipe_write_plus ___________________________ 252s [gw3] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_greenpipe_write_plus(): 252s expected = "write with mode=w+" 252s with tempfile.NamedTemporaryFile() as f: 252s > with greenio.GreenPipe(f.name, "w+") as writer: 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:1051: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = '/tmp/tmpxjo_gkuw', mode = 'w+', buffering = -1, encoding = None 252s errors = None, newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s __________________________ test_greenpipe_append_plus __________________________ 252s [gw3] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_greenpipe_append_plus(): 252s expected = "append with mode=a+" 252s with tempfile.NamedTemporaryFile() as f: 252s > with greenio.GreenPipe(f.name, "a+") as writer: 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s 252s tests/greenio_test.py:1061: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = '/tmp/tmpjjewj7sf', mode = 'a+', buffering = -1, encoding = None 252s errors = None, newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s _____________________________ test_universal_lines _____________________________ 252s [gw7] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_universal_lines(): 252s > p = subprocess.Popen( 252s [sys.executable, '--version'], 252s shell=False, 252s stdout=subprocess.PIPE, 252s universal_newlines=True) 252s 252s tests/subprocess_test.py:52: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s eventlet/green/subprocess.py:73: in __init__ 252s wrapped_pipe = greenio.GreenPipe(pipe, mode, bufsize) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s eventlet/greenio/py3.py:216: in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s file = 15, mode = 'r', buffering = -1, encoding = None, errors = None 252s newline = None, closefd = True, opener = None 252s 252s @staticmethod 252s def open(file, mode="r", buffering=-1, encoding=None, errors=None, 252s newline=None, closefd=True, opener=None): 252s 252s r"""Open file and return a stream. Raise OSError upon failure. 252s 252s file is either a text or byte string giving the name (and the path 252s if the file isn't in the current working directory) of the file to 252s be opened or an integer file descriptor of the file to be 252s wrapped. (If a file descriptor is given, it is closed when the 252s returned I/O object is closed, unless closefd is set to False.) 252s 252s mode is an optional string that specifies the mode in which the file is 252s opened. It defaults to 'r' which means open for reading in text mode. Other 252s common values are 'w' for writing (truncating the file if it already 252s exists), 'x' for exclusive creation of a new file, and 'a' for appending 252s (which on some Unix systems, means that all writes append to the end of the 252s file regardless of the current seek position). In text mode, if encoding is 252s not specified the encoding used is platform dependent. (For reading and 252s writing raw bytes use binary mode and leave encoding unspecified.) The 252s available modes are: 252s 252s ========= =============================================================== 252s Character Meaning 252s --------- --------------------------------------------------------------- 252s 'r' open for reading (default) 252s 'w' open for writing, truncating the file first 252s 'x' create a new file and open it for writing 252s 'a' open for writing, appending to the end of the file if it exists 252s 'b' binary mode 252s 't' text mode (default) 252s '+' open a disk file for updating (reading and writing) 252s ========= =============================================================== 252s 252s The default mode is 'rt' (open for reading text). For binary random 252s access, the mode 'w+b' opens and truncates the file to 0 bytes, while 252s 'r+b' opens the file without truncation. The 'x' mode implies 'w' and 252s raises an `FileExistsError` if the file already exists. 252s 252s Python distinguishes between files opened in binary and text modes, 252s even when the underlying operating system doesn't. Files opened in 252s binary mode (appending 'b' to the mode argument) return contents as 252s bytes objects without any decoding. In text mode (the default, or when 252s 't' is appended to the mode argument), the contents of the file are 252s returned as strings, the bytes having been first decoded using a 252s platform-dependent encoding or using the specified encoding if given. 252s 252s buffering is an optional integer used to set the buffering policy. 252s Pass 0 to switch buffering off (only allowed in binary mode), 1 to select 252s line buffering (only usable in text mode), and an integer > 1 to indicate 252s the size of a fixed-size chunk buffer. When no buffering argument is 252s given, the default buffering policy works as follows: 252s 252s * Binary files are buffered in fixed-size chunks; the size of the buffer 252s is max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) 252s when the device block size is available. 252s On most systems, the buffer will typically be 128 kilobytes long. 252s 252s * "Interactive" text files (files for which isatty() returns True) 252s use line buffering. Other text files use the policy described above 252s for binary files. 252s 252s encoding is the str name of the encoding used to decode or encode the 252s file. This should only be used in text mode. The default encoding is 252s platform dependent, but any encoding supported by Python can be 252s passed. See the codecs module for the list of supported encodings. 252s 252s errors is an optional string that specifies how encoding errors are to 252s be handled---this argument should not be used in binary mode. Pass 252s 'strict' to raise a ValueError exception if there is an encoding error 252s (the default of None has the same effect), or pass 'ignore' to ignore 252s errors. (Note that ignoring encoding errors can lead to data loss.) 252s See the documentation for codecs.register for a list of the permitted 252s encoding error strings. 252s 252s newline is a string controlling how universal newlines works (it only 252s applies to text mode). It can be None, '', '\n', '\r', and '\r\n'. It works 252s as follows: 252s 252s * On input, if newline is None, universal newlines mode is 252s enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 252s these are translated into '\n' before being returned to the 252s caller. If it is '', universal newline mode is enabled, but line 252s endings are returned to the caller untranslated. If it has any of 252s the other legal values, input lines are only terminated by the given 252s string, and the line ending is returned to the caller untranslated. 252s 252s * On output, if newline is None, any '\n' characters written are 252s translated to the system default line separator, os.linesep. If 252s newline is '', no translation takes place. If newline is any of the 252s other legal values, any '\n' characters written are translated to 252s the given string. 252s 252s closedfd is a bool. If closefd is False, the underlying file descriptor will 252s be kept open when the file is closed. This does not work when a file name is 252s given and must be True in that case. 252s 252s The newly created file is non-inheritable. 252s 252s A custom opener can be used by passing a callable as *opener*. The 252s underlying file descriptor for the file object is then obtained by calling 252s *opener* with (*file*, *flags*). *opener* must return an open file 252s descriptor (passing os.open as *opener* results in functionality similar to 252s passing None). 252s 252s open() returns a file object whose type depends on the mode, and 252s through which the standard file operations such as reading and writing 252s are performed. When open() is used to open a file in a text mode ('w', 252s 'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open 252s a file in a binary mode, the returned class varies: in read binary 252s mode, it returns a BufferedReader; in write binary and append binary 252s modes, it returns a BufferedWriter, and in read/write mode, it returns 252s a BufferedRandom. 252s 252s It is also possible to use a string or bytearray as a file for both 252s reading and writing. For strings StringIO can be used like a file 252s opened in a text mode, and for bytes a BytesIO can be used like a file 252s opened in a binary mode. 252s """ 252s if not isinstance(file, int): 252s file = os.fspath(file) 252s if not isinstance(file, (str, bytes, int)): 252s raise TypeError("invalid file: %r" % file) 252s if not isinstance(mode, str): 252s raise TypeError("invalid mode: %r" % mode) 252s if not isinstance(buffering, int): 252s raise TypeError("invalid buffering: %r" % buffering) 252s if encoding is not None and not isinstance(encoding, str): 252s raise TypeError("invalid encoding: %r" % encoding) 252s if errors is not None and not isinstance(errors, str): 252s raise TypeError("invalid errors: %r" % errors) 252s modes = set(mode) 252s if modes - set("axrwb+t") or len(mode) > len(modes): 252s raise ValueError("invalid mode: %r" % mode) 252s creating = "x" in modes 252s reading = "r" in modes 252s writing = "w" in modes 252s appending = "a" in modes 252s updating = "+" in modes 252s text = "t" in modes 252s binary = "b" in modes 252s if text and binary: 252s raise ValueError("can't have text and binary mode at once") 252s if creating + reading + writing + appending > 1: 252s raise ValueError("can't have read/write/append mode at once") 252s if not (creating or reading or writing or appending): 252s raise ValueError("must have exactly one of read/write/append mode") 252s if binary and encoding is not None: 252s raise ValueError("binary mode doesn't take an encoding argument") 252s if binary and errors is not None: 252s raise ValueError("binary mode doesn't take an errors argument") 252s if binary and newline is not None: 252s raise ValueError("binary mode doesn't take a newline argument") 252s if binary and buffering == 1: 252s import warnings 252s warnings.warn("line buffering (buffering=1) isn't supported in binary " 252s "mode, the default buffer size will be used", 252s RuntimeWarning, 2) 252s raw = FileIO(file, 252s (creating and "x" or "") + 252s (reading and "r" or "") + 252s (writing and "w" or "") + 252s (appending and "a" or "") + 252s (updating and "+" or ""), 252s closefd, opener=opener) 252s result = raw 252s try: 252s line_buffering = False 252s > if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s E AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s /usr/lib/python3.14/_pyio.py:242: AttributeError 252s __________________________ test_regular_file_readall ___________________________ 252s [gw6] linux -- Python 3.14.2 /usr/bin/python3.14 252s 252s def test_regular_file_readall(): 252s > tests.run_isolated('regular_file_readall.py') 252s 252s tests/patcher_test.py:499: 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s tests/__init__.py:365: in run_isolated 252s run_python(prefix + path, **kwargs) 252s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 252s 252s path = '/tmp/autopkgtest.1lWnzA/build.deJ/src/tests/isolated/regular_file_readall.py' 252s env = None, args = None, timeout = 10, pythonpath_extend = None 252s expect_pass = True 252s 252s def run_python(path, env=None, args=None, timeout=None, pythonpath_extend=None, expect_pass=False): 252s new_argv = [sys.executable] 252s new_env = os.environ.copy() 252s new_env.setdefault('eventlet_test_in_progress', 'yes') 252s src_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 252s if path: 252s path = os.path.abspath(path) 252s new_argv.append(path) 252s new_env['PYTHONPATH'] = os.pathsep.join(sys.path + [src_dir]) 252s if env: 252s new_env.update(env) 252s if pythonpath_extend: 252s new_path = [p for p in new_env.get('PYTHONPATH', '').split(os.pathsep) if p] 252s new_path.extend( 252s p if os.path.isabs(p) else os.path.join(src_dir, p) for p in pythonpath_extend 252s ) 252s new_env['PYTHONPATH'] = os.pathsep.join(new_path) 252s if args: 252s new_argv.extend(args) 252s p = subprocess.Popen( 252s new_argv, 252s env=new_env, 252s stderr=subprocess.STDOUT, 252s stdin=subprocess.PIPE, 252s stdout=subprocess.PIPE, 252s ) 252s if timeout is None: 252s timeout = 10 252s try: 252s output, _ = p.communicate(timeout=timeout) 252s except subprocess.TimeoutExpired: 252s p.kill() 252s output, _ = p.communicate(timeout=timeout) 252s if expect_pass: 252s sys.stderr.write('Program {} output:\n---\n{}\n---\n'.format(path, output.decode())) 252s assert False, 'timed out' 252s return '{}\nFAIL - timed out'.format(output).encode() 252s 252s if expect_pass: 252s if output.startswith(b'skip'): 252s parts = output.rstrip().split(b':', 1) 252s skip_args = [] 252s if len(parts) > 1: 252s skip_args.append(parts[1]) 252s raise SkipTest(*skip_args) 252s lines = output.splitlines() 252s ok = lines[-1].rstrip() == b'pass' 252s if not ok or len(lines) > 1: 252s sys.stderr.write('Program {} output:\n---\n{}\n---\n'.format(path, output.decode(errors="backslashreplace"))) 252s > assert ok, 'Expected single line "pass" in stdout' 252s ^^ 252s E AssertionError: Expected single line "pass" in stdout 252s 252s tests/__init__.py:358: AssertionError 252s ----------------------------- Captured stderr call ----------------------------- 252s Program /tmp/autopkgtest.1lWnzA/build.deJ/src/tests/isolated/regular_file_readall.py output: 252s --- 252s Traceback (most recent call last): 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/tests/isolated/regular_file_readall.py", line 17, in 252s fp = os.fdopen(fd, "rb") 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/green/os.py", line 29, in fdopen 252s return greenio.GreenPipe(fd, *args, **kw) 252s ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenio/py3.py", line 216, in GreenPipe 252s return _open(name, mode, buffering, encoding, errors, newline, closefd, opener) 252s File "/usr/lib/python3.14/_pyio.py", line 242, in open 252s if buffering == 1 or buffering < 0 and raw._isatty_open_only(): 252s ^^^^^^^^^^^^^^^^^^^^^ 252s AttributeError: 'GreenFileIO' object has no attribute '_isatty_open_only' 252s 252s --- 252s =============================== warnings summary =============================== 252s eventlet/greenpool.py:95 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenpool.py:95: SyntaxWarning: 'return' in a 'finally' block 252s return 252s 252s tests/api_test.py: 2 warnings 252s tests/greenio_test.py: 1 warning 252s tests/convenience_test.py: 2 warnings 252s tests/ssl_test.py: 26 warnings 252s tests/websocket_test.py: 2 warnings 252s tests/wsgi_test.py: 9 warnings 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 252s context = _original_sslcontext(protocol=ssl_version) 252s 252s tests/backdoor_test.py::BackdoorTest::test_quick_client_disconnect 252s tests/backdoor_test.py::BackdoorTest::test_server 252s tests/backdoor_test.py::BackdoorTest::test_server_on_unix_socket 252s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored while finalizing file <_io.TextIOWrapper mode='rw' encoding='UTF-8'>: None 252s 252s Traceback (most recent call last): 252s File "/usr/lib/python3.14/socket.py", line 743, in write 252s return self._sock.send(b) 252s ~~~~~~~~~~~~~~~^^^ 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenio/base.py", line 383, in send 252s return self._send_loop(self.fd.send, data, flags) 252s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenio/base.py", line 370, in _send_loop 252s return send_method(data, *args) 252s BrokenPipeError: [Errno 32] Broken pipe 252s 252s During handling of the above exception, another exception occurred: 252s 252s Traceback (most recent call last): 252s File "/usr/lib/python3.14/socket.py", line 743, in write 252s return self._sock.send(b) 252s ~~~~~~~~~~~~~~~^^^ 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenio/base.py", line 383, in send 252s return self._send_loop(self.fd.send, data, flags) 252s ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252s File "/tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenio/base.py", line 370, in _send_loop 252s return send_method(data, *args) 252s BrokenPipeError: [Errno 32] Broken pipe 252s 252s 252s warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) 252s 252s tests/not_asyncio_test.py::test_spawn_from_coroutine_errors 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/tests/not_asyncio_test.py:22: RuntimeWarning: coroutine 'test_spawn_from_coroutine_errors..go' was never awaited 252s with pytest.raises(RuntimeError): 252s Enable tracemalloc to get traceback where the object was allocated. 252s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 252s 252s tests/openssl_test.py::test_import 252s tests/openssl_test.py::test_import 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/green/OpenSSL/crypto.py:1: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography. 252s from OpenSSL.crypto import * 252s 252s tests/ssl_test.py::SSLTest::test_context_wrapped_accept 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/tests/ssl_test.py:333: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated 252s context = ssl.SSLContext(ssl.PROTOCOL_TLS) 252s 252s tests/wsgi_test.py::TestHttpd::test_017_ssl_zeroreturnerror 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/green/ssl.py:97: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated 252s context = _original_sslcontext(protocol=ssl_version) 252s 252s tests/wsgi_test.py::TestHttpd::test_disable_header_name_capitalization 252s /tmp/autopkgtest.1lWnzA/build.deJ/src/eventlet/greenthread.py:272: DeprecationWarning: capitalize_response_headers is disabled. 252s Please, make sure you know what you are doing. 252s HTTP headers names are case-insensitive per RFC standard. 252s Most likely, you need to fix HTTP parsing in your client software. 252s result = function(*args, **kwargs) 252s 252s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 252s =========================== short test summary info ============================ 252s FAILED tests/greenio_test.py::TestGreenPipe::test_pip_read_until_end - Attrib... 252s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe - AttributeError: 'Gre... 252s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_read - AttributeError:... 252s FAILED tests/greenio_test.py::TestGreenPipe::test_pipe_writes_large_messages 252s FAILED tests/greenio_test.py::test_pipe_context - AttributeError: 'GreenFileI... 252s FAILED tests/greenio_test.py::test_greenpipe_write - AttributeError: 'GreenFi... 252s FAILED tests/greenio_test.py::test_greenpipe_append - AttributeError: 'GreenF... 252s FAILED tests/greenio_test.py::test_greenpipe_read_overwrite - AttributeError:... 252s FAILED tests/greenio_test.py::test_greenpipe_write_plus - AttributeError: 'Gr... 252s FAILED tests/greenio_test.py::test_greenpipe_append_plus - AttributeError: 'G... 252s FAILED tests/subprocess_test.py::test_universal_lines - AttributeError: 'Gree... 252s FAILED tests/patcher_test.py::test_regular_file_readall - AssertionError: Exp... 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ERROR tests/test__greenness.py - NameError: name 'URLopener' is not defined 252s ====== 12 failed, 617 passed, 89 skipped, 52 warnings, 8 errors in 25.45s ====== 253s autopkgtest [04:36:13]: test unittests: -----------------------] 257s autopkgtest [04:36:18]: test unittests: - - - - - - - - - - results - - - - - - - - - - 257s unittests FAIL non-zero exit status 1 261s autopkgtest [04:36:22]: @@@@@@@@@@@@@@@@@@@@ summary 261s listen3 PASS 261s unittests FAIL non-zero exit status 1 261s cannot confirm that parent process is alive: Operation not permitted 261s unexpected eof from helper process