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