0s autopkgtest [11:24:05]: starting date and time: 2025-11-17 11:24:05+0000 0s autopkgtest [11:24:05]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [11:24:05]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.vsa9_10o/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:zope.interface,src:python3-defaults --apt-upgrade python-klein --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=zope.interface/8.1-1 python3-defaults/3.13.7-2' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-arm64-5.secgroup --name adt-resolute-arm64-python-klein-20251117-112405-juju-7f2275-prod-proposed-migration-environment-20-fbb76fc9-ef6b-4c6a-bace-15a6fba0b085 --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-python-klein-20251117-112405-juju-7f2275-prod-proposed-migration-environment-20-fbb76fc9-ef6b-4c6a-bace-15a6fba0b085 from image adt/ubuntu-resolute-arm64-server-20251117.img (UUID 1cd33fbb-18df-4c5a-b8f0-2dcb25269485)... 65s autopkgtest [11:25:10]: testbed dpkg architecture: arm64 65s autopkgtest [11:25:10]: testbed apt version: 3.1.11 66s autopkgtest [11:25:11]: @@@@@@@@@@@@@@@@@@@@ test bed setup 66s autopkgtest [11:25:11]: testbed release detected to be: None 67s autopkgtest [11:25:12]: updating testbed package index (apt update) 67s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 67s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 68s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 68s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 68s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 68s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.1 kB] 68s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 68s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [868 kB] 68s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [149 kB] 68s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3084 B] 68s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [107 kB] 68s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [324 B] 68s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [577 kB] 68s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [17.8 kB] 68s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [12.5 kB] 68s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [576 B] 69s Fetched 1938 kB in 1s (1575 kB/s) 70s Reading package lists... 71s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 71s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 71s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 71s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 72s Reading package lists... 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 72s Calculating upgrade... 73s The following packages will be upgraded: 73s libpython3-stdlib python3 python3-minimal usbutils 73s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 73s Need to get 144 kB of archives. 73s After this operation, 0 B of additional disk space will be used. 73s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.13.7-2 [27.8 kB] 73s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.13.7-2 [23.9 kB] 73s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.13.7-2 [10.6 kB] 73s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 usbutils arm64 1:019-1 [81.7 kB] 74s dpkg-preconfigure: unable to re-open stdin: No such file or directory 74s Fetched 144 kB in 0s (335 kB/s) 74s (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 ... 88137 files and directories currently installed.) 74s Preparing to unpack .../python3-minimal_3.13.7-2_arm64.deb ... 74s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 74s Setting up python3-minimal (3.13.7-2) ... 75s (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 ... 88137 files and directories currently installed.) 75s Preparing to unpack .../python3_3.13.7-2_arm64.deb ... 75s running python pre-rtupdate hooks for python3.13... 75s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 75s Preparing to unpack .../libpython3-stdlib_3.13.7-2_arm64.deb ... 75s Unpacking libpython3-stdlib:arm64 (3.13.7-2) over (3.13.7-1) ... 75s Preparing to unpack .../usbutils_1%3a019-1_arm64.deb ... 75s Unpacking usbutils (1:019-1) over (1:018-2) ... 75s Setting up usbutils (1:019-1) ... 75s Setting up libpython3-stdlib:arm64 (3.13.7-2) ... 75s Setting up python3 (3.13.7-2) ... 75s running python rtupdate hooks for python3.13... 75s running python post-rtupdate hooks for python3.13... 75s Processing triggers for man-db (2.13.1-1) ... 77s autopkgtest [11:25:22]: upgrading testbed (apt dist-upgrade and autopurge) 77s Reading package lists... 77s Building dependency tree... 77s Reading state information... 78s Calculating upgrade... 78s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 78s Reading package lists... 79s Building dependency tree... 79s Reading state information... 79s Solving dependencies... 79s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 82s autopkgtest [11:25:27]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 09:50:31 UTC 2025 82s autopkgtest [11:25:27]: @@@@@@@@@@@@@@@@@@@@ apt-source python-klein 84s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-klein 24.8.0-1 (dsc) [2220 B] 84s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-klein 24.8.0-1 (tar) [102 kB] 84s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-klein 24.8.0-1 (diff) [3820 B] 84s gpgv: Signature made Sat Nov 9 07:11:48 2024 UTC 84s gpgv: using RSA key 772292F6F7AC85FAE041D41EE5F43F9C2734F287 84s gpgv: issuer "merkys@debian.org" 84s gpgv: Can't check signature: No public key 84s dpkg-source: warning: cannot verify inline signature for ./python-klein_24.8.0-1.dsc: no acceptable signature found 84s autopkgtest [11:25:29]: testing package python-klein version 24.8.0-1 84s autopkgtest [11:25:29]: build not needed 88s autopkgtest [11:25:33]: test pybuild-autopkgtest: preparing testbed 88s Reading package lists... 88s Building dependency tree... 88s Reading state information... 89s Solving dependencies... 89s The following NEW packages will be installed: 89s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 89s cpp-15-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper debugedit 89s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 89s g++-15-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-15 89s gcc-15-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 89s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 89s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 89s libitm1 liblsan0 libmpc3 libpython3.14-minimal libpython3.14-stdlib 89s libstdc++-15-dev libtool libtsan2 libubsan1 m4 po-debconf 89s pybuild-plugin-autopkgtest python3-all python3-automat python3-constantly 89s python3-hamcrest python3-hyperlink python3-hypothesis python3-incremental 89s python3-iniconfig python3-klein python3-multipart python3-pluggy 89s python3-pyasn1 python3-pyasn1-modules python3-pytest 89s python3-service-identity python3-sortedcontainers python3-treq python3-tubes 89s python3-twisted python3-werkzeug python3-zope.interface python3.14 89s python3.14-minimal 89s 0 upgraded, 69 newly installed, 0 to remove and 0 not upgraded. 89s Need to get 79.3 MB of archives. 89s After this operation, 286 MB of additional disk space will be used. 89s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.0-4 [903 kB] 90s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.0-4 [2543 kB] 90s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 m4 arm64 1.4.20-2 [213 kB] 90s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 autoconf all 2.72-3.1ubuntu1 [384 kB] 90s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 autotools-dev all 20240727.1 [43.4 kB] 90s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 automake all 1:1.18.1-2 [581 kB] 90s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 autopoint all 0.23.2-1 [620 kB] 90s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libisl23 arm64 0.27-1 [676 kB] 90s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libmpc3 arm64 1.3.1-2 [55.6 kB] 90s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [11.7 MB] 91s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15 arm64 15.2.0-7ubuntu1 [1026 B] 91s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [5736 B] 91s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp arm64 4:15.2.0-4ubuntu1 [22.4 kB] 91s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libcc1-0 arm64 15.2.0-7ubuntu1 [49.0 kB] 91s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-7ubuntu1 [147 kB] 91s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libitm1 arm64 15.2.0-7ubuntu1 [27.9 kB] 91s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 libasan8 arm64 15.2.0-7ubuntu1 [2923 kB] 91s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 liblsan0 arm64 15.2.0-7ubuntu1 [1316 kB] 91s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libtsan2 arm64 15.2.0-7ubuntu1 [2689 kB] 91s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 libubsan1 arm64 15.2.0-7ubuntu1 [1176 kB] 91s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 libhwasan0 arm64 15.2.0-7ubuntu1 [1638 kB] 91s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 libgcc-15-dev arm64 15.2.0-7ubuntu1 [2600 kB] 91s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [23.1 MB] 92s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15 arm64 15.2.0-7ubuntu1 [513 kB] 92s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [1206 B] 92s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc arm64 4:15.2.0-4ubuntu1 [5016 B] 92s Get:27 http://ftpmaster.internal/ubuntu resolute/main arm64 libstdc++-15-dev arm64 15.2.0-7ubuntu1 [2546 kB] 92s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [13.2 MB] 92s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15 arm64 15.2.0-7ubuntu1 [23.7 kB] 92s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [956 B] 92s Get:31 http://ftpmaster.internal/ubuntu resolute/main arm64 g++ arm64 4:15.2.0-4ubuntu1 [1080 B] 92s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 build-essential arm64 12.12ubuntu1 [5082 B] 92s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 92s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 libtool all 2.5.4-7 [169 kB] 92s Get:35 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-autoreconf all 21 [12.5 kB] 92s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 92s Get:37 http://ftpmaster.internal/ubuntu resolute/main arm64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 92s Get:38 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 92s Get:39 http://ftpmaster.internal/ubuntu resolute/main arm64 debugedit arm64 1:5.2-3 [49.1 kB] 92s Get:40 http://ftpmaster.internal/ubuntu resolute/main arm64 dwz arm64 0.16-2 [113 kB] 92s Get:41 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 92s Get:42 http://ftpmaster.internal/ubuntu resolute/main arm64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 92s Get:43 http://ftpmaster.internal/ubuntu resolute/main arm64 po-debconf all 1.0.21+nmu1 [233 kB] 92s Get:44 http://ftpmaster.internal/ubuntu resolute/main arm64 debhelper all 13.24.2ubuntu1 [896 kB] 92s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 dh-python all 6.20250414 [119 kB] 92s Get:46 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.0-4 [2349 kB] 92s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 92s Get:48 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.0-4 [805 kB] 92s Get:49 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-all arm64 3.13.7-2 [890 B] 92s Get:50 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-automat all 25.4.16-1 [35.7 kB] 92s Get:51 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-constantly all 23.10.4-2 [13.9 kB] 92s Get:52 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-hamcrest all 2.1.0-1 [28.1 kB] 92s Get:53 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-hyperlink all 21.0.0-6 [68.0 kB] 92s Get:54 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-sortedcontainers all 2.4.0-2 [27.6 kB] 92s Get:55 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-hypothesis all 6.130.5-2 [341 kB] 92s Get:56 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-incremental all 24.7.2-3 [18.6 kB] 92s Get:57 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-1 [6840 B] 92s Get:58 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pyasn1 all 0.6.1-1 [56.4 kB] 92s Get:59 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pyasn1-modules all 0.4.1-2 [80.3 kB] 92s Get:60 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-service-identity all 24.2.0-1 [11.0 kB] 92s Get:61 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-zope.interface arm64 8.1-1 [145 kB] 92s Get:62 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-twisted all 25.5.0-4 [2077 kB] 93s Get:63 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-tubes all 0.2.1-5 [42.5 kB] 93s Get:64 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-werkzeug all 3.1.3-2 [169 kB] 93s Get:65 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-klein all 24.8.0-1 [64.6 kB] 93s Get:66 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-multipart all 1.3.0-3 [15.5 kB] 93s Get:67 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-1 [21.0 kB] 93s Get:68 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 8.3.5-2 [252 kB] 93s Get:69 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-treq all 25.5.0-1 [58.4 kB] 93s Fetched 79.3 MB in 3s (22.9 MB/s) 93s Selecting previously unselected package libpython3.14-minimal:arm64. 93s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88137 files and directories currently installed.) 93s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_arm64.deb ... 93s Unpacking libpython3.14-minimal:arm64 (3.14.0-4) ... 93s Selecting previously unselected package python3.14-minimal. 93s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_arm64.deb ... 93s Unpacking python3.14-minimal (3.14.0-4) ... 93s Selecting previously unselected package m4. 93s Preparing to unpack .../02-m4_1.4.20-2_arm64.deb ... 93s Unpacking m4 (1.4.20-2) ... 93s Selecting previously unselected package autoconf. 93s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 93s Unpacking autoconf (2.72-3.1ubuntu1) ... 93s Selecting previously unselected package autotools-dev. 93s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 93s Unpacking autotools-dev (20240727.1) ... 93s Selecting previously unselected package automake. 93s Preparing to unpack .../05-automake_1%3a1.18.1-2_all.deb ... 93s Unpacking automake (1:1.18.1-2) ... 93s Selecting previously unselected package autopoint. 93s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 93s Unpacking autopoint (0.23.2-1) ... 93s Selecting previously unselected package libisl23:arm64. 93s Preparing to unpack .../07-libisl23_0.27-1_arm64.deb ... 93s Unpacking libisl23:arm64 (0.27-1) ... 94s Selecting previously unselected package libmpc3:arm64. 94s Preparing to unpack .../08-libmpc3_1.3.1-2_arm64.deb ... 94s Unpacking libmpc3:arm64 (1.3.1-2) ... 94s Selecting previously unselected package cpp-15-aarch64-linux-gnu. 94s Preparing to unpack .../09-cpp-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package cpp-15. 94s Preparing to unpack .../10-cpp-15_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package cpp-aarch64-linux-gnu. 94s Preparing to unpack .../11-cpp-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 94s Unpacking cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 94s Selecting previously unselected package cpp. 94s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_arm64.deb ... 94s Unpacking cpp (4:15.2.0-4ubuntu1) ... 94s Selecting previously unselected package libcc1-0:arm64. 94s Preparing to unpack .../13-libcc1-0_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libcc1-0:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libgomp1:arm64. 94s Preparing to unpack .../14-libgomp1_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libgomp1:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libitm1:arm64. 94s Preparing to unpack .../15-libitm1_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libitm1:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libasan8:arm64. 94s Preparing to unpack .../16-libasan8_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libasan8:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package liblsan0:arm64. 94s Preparing to unpack .../17-liblsan0_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking liblsan0:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libtsan2:arm64. 94s Preparing to unpack .../18-libtsan2_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libtsan2:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libubsan1:arm64. 94s Preparing to unpack .../19-libubsan1_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libubsan1:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libhwasan0:arm64. 94s Preparing to unpack .../20-libhwasan0_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libhwasan0:arm64 (15.2.0-7ubuntu1) ... 94s Selecting previously unselected package libgcc-15-dev:arm64. 94s Preparing to unpack .../21-libgcc-15-dev_15.2.0-7ubuntu1_arm64.deb ... 94s Unpacking libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 95s Selecting previously unselected package gcc-15-aarch64-linux-gnu. 95s Preparing to unpack .../22-gcc-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 95s Unpacking gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 95s Selecting previously unselected package gcc-15. 95s Preparing to unpack .../23-gcc-15_15.2.0-7ubuntu1_arm64.deb ... 95s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 95s Selecting previously unselected package gcc-aarch64-linux-gnu. 95s Preparing to unpack .../24-gcc-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 95s Unpacking gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 95s Selecting previously unselected package gcc. 95s Preparing to unpack .../25-gcc_4%3a15.2.0-4ubuntu1_arm64.deb ... 95s Unpacking gcc (4:15.2.0-4ubuntu1) ... 95s Selecting previously unselected package libstdc++-15-dev:arm64. 95s Preparing to unpack .../26-libstdc++-15-dev_15.2.0-7ubuntu1_arm64.deb ... 95s Unpacking libstdc++-15-dev:arm64 (15.2.0-7ubuntu1) ... 95s Selecting previously unselected package g++-15-aarch64-linux-gnu. 95s Preparing to unpack .../27-g++-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 95s Unpacking g++-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 96s Selecting previously unselected package g++-15. 96s Preparing to unpack .../28-g++-15_15.2.0-7ubuntu1_arm64.deb ... 96s Unpacking g++-15 (15.2.0-7ubuntu1) ... 96s Selecting previously unselected package g++-aarch64-linux-gnu. 96s Preparing to unpack .../29-g++-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 96s Unpacking g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 96s Selecting previously unselected package g++. 96s Preparing to unpack .../30-g++_4%3a15.2.0-4ubuntu1_arm64.deb ... 96s Unpacking g++ (4:15.2.0-4ubuntu1) ... 96s Selecting previously unselected package build-essential. 96s Preparing to unpack .../31-build-essential_12.12ubuntu1_arm64.deb ... 96s Unpacking build-essential (12.12ubuntu1) ... 96s Selecting previously unselected package libdebhelper-perl. 96s Preparing to unpack .../32-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 96s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 96s Selecting previously unselected package libtool. 96s Preparing to unpack .../33-libtool_2.5.4-7_all.deb ... 96s Unpacking libtool (2.5.4-7) ... 96s Selecting previously unselected package dh-autoreconf. 96s Preparing to unpack .../34-dh-autoreconf_21_all.deb ... 96s Unpacking dh-autoreconf (21) ... 96s Selecting previously unselected package libarchive-zip-perl. 96s Preparing to unpack .../35-libarchive-zip-perl_1.68-1_all.deb ... 96s Unpacking libarchive-zip-perl (1.68-1) ... 96s Selecting previously unselected package libfile-stripnondeterminism-perl. 96s Preparing to unpack .../36-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 96s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 96s Selecting previously unselected package dh-strip-nondeterminism. 96s Preparing to unpack .../37-dh-strip-nondeterminism_1.15.0-1_all.deb ... 96s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 96s Selecting previously unselected package debugedit. 96s Preparing to unpack .../38-debugedit_1%3a5.2-3_arm64.deb ... 96s Unpacking debugedit (1:5.2-3) ... 96s Selecting previously unselected package dwz. 96s Preparing to unpack .../39-dwz_0.16-2_arm64.deb ... 96s Unpacking dwz (0.16-2) ... 96s Selecting previously unselected package gettext. 96s Preparing to unpack .../40-gettext_0.23.2-1_arm64.deb ... 96s Unpacking gettext (0.23.2-1) ... 96s Selecting previously unselected package intltool-debian. 96s Preparing to unpack .../41-intltool-debian_0.35.0+20060710.6_all.deb ... 96s Unpacking intltool-debian (0.35.0+20060710.6) ... 96s Selecting previously unselected package po-debconf. 96s Preparing to unpack .../42-po-debconf_1.0.21+nmu1_all.deb ... 96s Unpacking po-debconf (1.0.21+nmu1) ... 96s Selecting previously unselected package debhelper. 96s Preparing to unpack .../43-debhelper_13.24.2ubuntu1_all.deb ... 96s Unpacking debhelper (13.24.2ubuntu1) ... 96s Selecting previously unselected package dh-python. 96s Preparing to unpack .../44-dh-python_6.20250414_all.deb ... 96s Unpacking dh-python (6.20250414) ... 96s Selecting previously unselected package libpython3.14-stdlib:arm64. 96s Preparing to unpack .../45-libpython3.14-stdlib_3.14.0-4_arm64.deb ... 96s Unpacking libpython3.14-stdlib:arm64 (3.14.0-4) ... 96s Selecting previously unselected package pybuild-plugin-autopkgtest. 96s Preparing to unpack .../46-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 96s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 96s Selecting previously unselected package python3.14. 96s Preparing to unpack .../47-python3.14_3.14.0-4_arm64.deb ... 96s Unpacking python3.14 (3.14.0-4) ... 96s Selecting previously unselected package python3-all. 96s Preparing to unpack .../48-python3-all_3.13.7-2_arm64.deb ... 96s Unpacking python3-all (3.13.7-2) ... 97s Selecting previously unselected package python3-automat. 97s Preparing to unpack .../49-python3-automat_25.4.16-1_all.deb ... 97s Unpacking python3-automat (25.4.16-1) ... 97s Selecting previously unselected package python3-constantly. 97s Preparing to unpack .../50-python3-constantly_23.10.4-2_all.deb ... 97s Unpacking python3-constantly (23.10.4-2) ... 97s Selecting previously unselected package python3-hamcrest. 97s Preparing to unpack .../51-python3-hamcrest_2.1.0-1_all.deb ... 97s Unpacking python3-hamcrest (2.1.0-1) ... 97s Selecting previously unselected package python3-hyperlink. 97s Preparing to unpack .../52-python3-hyperlink_21.0.0-6_all.deb ... 97s Unpacking python3-hyperlink (21.0.0-6) ... 97s Selecting previously unselected package python3-sortedcontainers. 97s Preparing to unpack .../53-python3-sortedcontainers_2.4.0-2_all.deb ... 97s Unpacking python3-sortedcontainers (2.4.0-2) ... 97s Selecting previously unselected package python3-hypothesis. 97s Preparing to unpack .../54-python3-hypothesis_6.130.5-2_all.deb ... 97s Unpacking python3-hypothesis (6.130.5-2) ... 97s Selecting previously unselected package python3-incremental. 97s Preparing to unpack .../55-python3-incremental_24.7.2-3_all.deb ... 97s Unpacking python3-incremental (24.7.2-3) ... 97s Selecting previously unselected package python3-iniconfig. 97s Preparing to unpack .../56-python3-iniconfig_2.1.0-1_all.deb ... 97s Unpacking python3-iniconfig (2.1.0-1) ... 97s Selecting previously unselected package python3-pyasn1. 97s Preparing to unpack .../57-python3-pyasn1_0.6.1-1_all.deb ... 97s Unpacking python3-pyasn1 (0.6.1-1) ... 97s Selecting previously unselected package python3-pyasn1-modules. 97s Preparing to unpack .../58-python3-pyasn1-modules_0.4.1-2_all.deb ... 97s Unpacking python3-pyasn1-modules (0.4.1-2) ... 97s Selecting previously unselected package python3-service-identity. 97s Preparing to unpack .../59-python3-service-identity_24.2.0-1_all.deb ... 97s Unpacking python3-service-identity (24.2.0-1) ... 97s Selecting previously unselected package python3-zope.interface. 97s Preparing to unpack .../60-python3-zope.interface_8.1-1_arm64.deb ... 97s Unpacking python3-zope.interface (8.1-1) ... 97s Selecting previously unselected package python3-twisted. 97s Preparing to unpack .../61-python3-twisted_25.5.0-4_all.deb ... 97s Unpacking python3-twisted (25.5.0-4) ... 97s Selecting previously unselected package python3-tubes. 97s Preparing to unpack .../62-python3-tubes_0.2.1-5_all.deb ... 97s Unpacking python3-tubes (0.2.1-5) ... 97s Selecting previously unselected package python3-werkzeug. 97s Preparing to unpack .../63-python3-werkzeug_3.1.3-2_all.deb ... 97s Unpacking python3-werkzeug (3.1.3-2) ... 97s Selecting previously unselected package python3-klein. 97s Preparing to unpack .../64-python3-klein_24.8.0-1_all.deb ... 97s Unpacking python3-klein (24.8.0-1) ... 97s Selecting previously unselected package python3-multipart. 97s Preparing to unpack .../65-python3-multipart_1.3.0-3_all.deb ... 97s Unpacking python3-multipart (1.3.0-3) ... 97s Selecting previously unselected package python3-pluggy. 97s Preparing to unpack .../66-python3-pluggy_1.6.0-1_all.deb ... 97s Unpacking python3-pluggy (1.6.0-1) ... 97s Selecting previously unselected package python3-pytest. 97s Preparing to unpack .../67-python3-pytest_8.3.5-2_all.deb ... 97s Unpacking python3-pytest (8.3.5-2) ... 97s Selecting previously unselected package python3-treq. 97s Preparing to unpack .../68-python3-treq_25.5.0-1_all.deb ... 97s Unpacking python3-treq (25.5.0-1) ... 97s Setting up dh-python (6.20250414) ... 98s Setting up python3-iniconfig (2.1.0-1) ... 98s Setting up python3-zope.interface (8.1-1) ... 99s Setting up libarchive-zip-perl (1.68-1) ... 99s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 99s Setting up libpython3.14-minimal:arm64 (3.14.0-4) ... 99s Setting up python3-automat (25.4.16-1) ... 99s Setting up m4 (1.4.20-2) ... 99s Setting up python3-hamcrest (2.1.0-1) ... 99s Setting up python3-sortedcontainers (2.4.0-2) ... 99s Setting up libgomp1:arm64 (15.2.0-7ubuntu1) ... 99s Setting up autotools-dev (20240727.1) ... 99s Setting up python3-werkzeug (3.1.3-2) ... 100s Setting up python3-incremental (24.7.2-3) ... 100s Setting up python3-hyperlink (21.0.0-6) ... 100s Setting up libmpc3:arm64 (1.3.1-2) ... 100s Setting up autopoint (0.23.2-1) ... 100s Setting up autoconf (2.72-3.1ubuntu1) ... 100s Setting up python3-pluggy (1.6.0-1) ... 100s Setting up libubsan1:arm64 (15.2.0-7ubuntu1) ... 100s Setting up dwz (0.16-2) ... 100s Setting up libhwasan0:arm64 (15.2.0-7ubuntu1) ... 100s Setting up libasan8:arm64 (15.2.0-7ubuntu1) ... 100s Setting up python3-pyasn1 (0.6.1-1) ... 101s Setting up debugedit (1:5.2-3) ... 101s Setting up python3-constantly (23.10.4-2) ... 101s Setting up libtsan2:arm64 (15.2.0-7ubuntu1) ... 101s Setting up libisl23:arm64 (0.27-1) ... 101s Setting up python3-multipart (1.3.0-3) ... 101s Setting up python3.14-minimal (3.14.0-4) ... 102s Setting up libcc1-0:arm64 (15.2.0-7ubuntu1) ... 102s Setting up liblsan0:arm64 (15.2.0-7ubuntu1) ... 102s Setting up libitm1:arm64 (15.2.0-7ubuntu1) ... 102s Setting up automake (1:1.18.1-2) ... 102s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 102s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 102s Setting up cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 102s Setting up gettext (0.23.2-1) ... 102s Setting up libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 102s Setting up libpython3.14-stdlib:arm64 (3.14.0-4) ... 102s Setting up python3-pytest (8.3.5-2) ... 103s Setting up python3-hypothesis (6.130.5-2) ... 104s Setting up intltool-debian (0.35.0+20060710.6) ... 104s Setting up cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 104s Setting up libstdc++-15-dev:arm64 (15.2.0-7ubuntu1) ... 104s Setting up python3-pyasn1-modules (0.4.1-2) ... 105s Setting up python3-service-identity (24.2.0-1) ... 106s Setting up dh-strip-nondeterminism (1.15.0-1) ... 106s Setting up cpp-15 (15.2.0-7ubuntu1) ... 106s Setting up cpp (4:15.2.0-4ubuntu1) ... 106s Setting up python3.14 (3.14.0-4) ... 107s Setting up gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 107s Setting up po-debconf (1.0.21+nmu1) ... 107s Setting up python3-all (3.13.7-2) ... 107s Setting up gcc-15 (15.2.0-7ubuntu1) ... 107s Setting up g++-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 107s Setting up python3-twisted (25.5.0-4) ... 110s /usr/lib/python3/dist-packages/twisted/internet/test/test_posixbase.py:55: SyntaxWarning: 'return' in a 'finally' block 110s return 113s Setting up g++-15 (15.2.0-7ubuntu1) ... 113s Setting up gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 113s Setting up libtool (2.5.4-7) ... 113s Setting up python3-tubes (0.2.1-5) ... 113s Setting up gcc (4:15.2.0-4ubuntu1) ... 113s Setting up dh-autoreconf (21) ... 113s Setting up python3-treq (25.5.0-1) ... 114s Setting up g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 114s Setting up debhelper (13.24.2ubuntu1) ... 114s Setting up python3-klein (24.8.0-1) ... 114s Setting up g++ (4:15.2.0-4ubuntu1) ... 114s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 114s Setting up build-essential (12.12ubuntu1) ... 114s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 114s Processing triggers for man-db (2.13.1-1) ... 115s Processing triggers for install-info (7.2-5) ... 115s Processing triggers for libc-bin (2.42-2ubuntu2) ... 115s Processing triggers for systemd (257.9-0ubuntu2) ... 116s autopkgtest [11:26:01]: test pybuild-autopkgtest: pybuild-autopkgtest 116s autopkgtest [11:26:01]: test pybuild-autopkgtest: [----------------------- 117s pybuild-autopkgtest 117s I: pybuild base:311: cd /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build; python3.14 -m pytest 118s ============================= test session starts ============================== 118s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 118s rootdir: /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build 118s plugins: typeguard-4.4.2, hypothesis-6.130.5 118s collected 246 items 118s 118s test/test_app.py ............................... [ 12%] 118s test/test_attrs_zope.py ... [ 13%] 118s test/test_exports.py ..... [ 15%] 119s test/test_form.py ..................... [ 24%] 119s test/test_headers.py .....................F..........F.... [ 39%] 119s test/test_headers_compat.py .........F.... [ 45%] 119s test/test_memory.py ... [ 46%] 119s test/test_plating.py ....................... [ 55%] 119s test/test_request.py .........FF [ 60%] 119s test/test_request_compat.py ...FF.. [ 63%] 119s test/test_requirer.py ..... [ 65%] 119s test/test_resource.py .................................................. [ 85%] 119s ............... [ 91%] 119s test/test_response.py .........FF [ 95%] 119s test/test_session.py ........ [ 99%] 120s test/test_trial.py .. [100%] 120s 120s =================================== FAILURES =================================== 120s ____________________ FrozenHTTPHeadersTests.test_interface _____________________ 120s 120s self = 120s interface = 120s obj = FrozenHTTPHeaders(rawHeaders=()) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = FrozenHTTPHeaders(rawHeaders=()), vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPHeaders(rawHeaders=()) has failed to implement interface klein._imessage.IHTTPHeaders: The contract of klein._imessage.IHTTPHeaders.__annotate_func__(format) is violated because 'FrozenHTTPHeaders.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface(self) -> None: 120s """ 120s L{FrozenHTTPHeaders} implements L{IHTTPHeaders}. 120s """ 120s headers = FrozenHTTPHeaders(rawHeaders=()) 120s > self.assertProvides(IHTTPHeaders, headers) 120s 120s test/test_headers.py:359: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = 'FrozenHTTPHeaders(rawHeaders=()) does not provide klein._imessage.IHTTPHeaders' 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: FrozenHTTPHeaders(rawHeaders=()) does not provide klein._imessage.IHTTPHeaders 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ____________________ MutableHTTPHeadersTests.test_interface ____________________ 120s 120s self = 120s interface = 120s obj = MutableHTTPHeaders(_rawHeaders=[]) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = MutableHTTPHeaders(_rawHeaders=[]), vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object MutableHTTPHeaders(_rawHeaders=[]) has failed to implement interface klein._imessage.IMutableHTTPHeaders: The contract of klein._imessage.IHTTPHeaders.__annotate_func__(format) is violated because 'MutableHTTPHeaders.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface(self) -> None: 120s """ 120s Class implements L{IMutableHTTPHeaders}. 120s """ 120s headers = self.headers(rawHeaders=()) 120s > cast(TestCase, self).assertProvides(IMutableHTTPHeaders, headers) 120s 120s test/test_headers.py:396: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = 'MutableHTTPHeaders(_rawHeaders=[]) does not provide klein._imessage.IMutableHTTPHeaders' 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: MutableHTTPHeaders(_rawHeaders=[]) does not provide klein._imessage.IMutableHTTPHeaders 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ________________ HTTPHeadersWrappingHeadersTests.test_interface ________________ 120s 120s self = 120s interface = 120s obj = HTTPHeadersWrappingHeaders(_headers=Headers({})) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = HTTPHeadersWrappingHeaders(_headers=Headers({})), vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object HTTPHeadersWrappingHeaders(_headers=Headers({})) has failed to implement interface klein._imessage.IMutableHTTPHeaders: The contract of klein._imessage.IHTTPHeaders.__annotate_func__(format) is violated because 'HTTPHeadersWrappingHeaders.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface(self) -> None: 120s """ 120s Class implements L{IMutableHTTPHeaders}. 120s """ 120s headers = self.headers(rawHeaders=()) 120s > cast(TestCase, self).assertProvides(IMutableHTTPHeaders, headers) 120s 120s test/test_headers.py:396: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = 'HTTPHeadersWrappingHeaders(_headers=Headers({})) does not provide klein._imessage.IMutableHTTPHeaders' 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: HTTPHeadersWrappingHeaders(_headers=Headers({})) does not provide klein._imessage.IMutableHTTPHeaders 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ____________________ FrozenHTTPRequestTests.test_interface _____________________ 120s 120s self = 120s interface = 120s obj = FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPRequest: The contract of klein._imessage.IHTTPRequest.__annotate_func__(format) is violated because 'FrozenHTTPRequest.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface(self) -> None: 120s """ 120s L{FrozenHTTPRequest} implements L{IHTTPRequest}. 120s """ 120s request = self.requestFromBytes() 120s > self.assertProvides(IHTTPRequest, request) 120s 120s test/test_request.py:43: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = "FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHe..., _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPRequest" 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPRequest 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ________________ FrozenHTTPRequestTests.test_interface_message _________________ 120s 120s self = 120s interface = 120s obj = FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPMessage: The contract of klein._imessage.IHTTPMessage.__annotate_func__(format) is violated because 'FrozenHTTPRequest.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface_message(self) -> None: 120s """ 120s Message instance implements L{IHTTPMessage}. 120s """ 120s message = self.messageFromBytes() 120s > cast(TestCase, self).assertProvides(IHTTPMessage, message) 120s 120s test/test_message.py:48: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = "FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHe..., _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPMessage" 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: FrozenHTTPRequest(method='GET', uri=DecodedURL(url=URL.from_text('https://twistedmatrix.com/')), headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPMessage 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ________________ HTTPRequestWrappingIRequestTests.test_headers _________________ 120s 120s self = 120s interface = 120s obj = HTTPHeadersWrappingHeaders(_headers=Headers({b'Host': [b'localhost:8080']})) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = HTTPHeadersWrappingHeaders(_headers=Headers({b'Host': [b'localhost:8080']})) 120s vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object HTTPHeadersWrappingHeaders(_headers=Headers({b'Host': [b'localhost:8080']})) has failed to implement interface klein._imessage.IHTTPHeaders: The contract of klein._imessage.IHTTPHeaders.__annotate_func__(format) is violated because 'HTTPHeadersWrappingHeaders.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_headers(self) -> None: 120s """ 120s L{HTTPRequestWrappingIRequest.headers} returns an 120s L{HTTPRequestWrappingIRequest} containing the underlying legacy request 120s headers. 120s """ 120s legacyRequest = self.legacyRequest() 120s request = HTTPRequestWrappingIRequest(request=legacyRequest) 120s > self.assertProvides(IHTTPHeaders, request.headers) 120s 120s test/test_request_compat.py:149: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = "HTTPHeadersWrappingHeaders(_headers=Headers({b'Host': [b'localhost:8080']})) does not provide klein._imessage.IHTTPHeaders" 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: HTTPHeadersWrappingHeaders(_headers=Headers({b'Host': [b'localhost:8080']})) does not provide klein._imessage.IHTTPHeaders 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s _______________ HTTPRequestWrappingIRequestTests.test_interface ________________ 120s 120s self = 120s interface = 120s obj = HTTPRequestWrappingIRequest(_request=, _state=MessageState(cachedBody=None, fountExhausted=False)) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = HTTPRequestWrappingIRequest(_request=, _state=MessageState(cachedBody=None, fountExhausted=False)) 120s vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object HTTPRequestWrappingIRequest(_request=, _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPRequest: The contract of klein._imessage.IHTTPRequest.__annotate_func__(format) is violated because 'HTTPRequestWrappingIRequest.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface(self) -> None: 120s """ 120s L{HTTPRequestWrappingIRequest} implements L{IHTTPRequest}. 120s """ 120s request = HTTPRequestWrappingIRequest(request=self.legacyRequest()) 120s > self.assertProvides(IHTTPRequest, request) 120s 120s test/test_request_compat.py:84: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = 'HTTPRequestWrappingIRequest(_request=, _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPRequest' 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: HTTPRequestWrappingIRequest(_request=, _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPRequest 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ____________________ FrozenHTTPResponseTests.test_interface ____________________ 120s 120s self = 120s interface = 120s obj = FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPResponse: The contract of klein._imessage.IHTTPResponse.__annotate_func__(format) is violated because 'FrozenHTTPResponse.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface(self) -> None: 120s """ 120s L{FrozenHTTPResponse} implements L{IHTTPResponse}. 120s """ 120s response = self.responseFromBytes() 120s > self.assertProvides(IHTTPResponse, response) 120s 120s test/test_response.py:40: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = "FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPResponse" 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPResponse 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s ________________ FrozenHTTPResponseTests.test_interface_message ________________ 120s 120s self = 120s interface = 120s obj = FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s 120s def assertProvides(self, interface: Type[Interface], obj: object) -> None: 120s """ 120s Assert that a object provides an interface. 120s 120s @param interface: The interface the object is expected to provide. 120s @param obj: The object to test. 120s """ 120s try: 120s > self.assertTrue(verifyObject(interface, obj)) 120s 120s test/_trial.py:32: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:183: in verifyObject 120s return _verify(iface, candidate, tentative, vtype='o') 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:91: in _verify 120s raise excs[0] 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:85: in _verify 120s _verify_element(iface, name, desc, candidate, vtype) 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s iface = 120s name = '__annotate_func__' 120s desc = 120s candidate = FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) 120s vtype = 'o' 120s 120s def _verify_element(iface, name, desc, candidate, vtype): 120s # Here the `desc` is either an `Attribute` or `Method` instance 120s try: 120s attr = getattr(candidate, name) 120s except AttributeError: 120s 120s if (not isinstance(desc, Method)) and vtype == 'c': 120s # We can't verify non-methods on classes, since the 120s # class may provide attrs in it's __init__. 120s return 120s 120s # TODO: This should use ``raise...from`` 120s raise BrokenImplementation(iface, desc, candidate) 120s 120s if not isinstance(desc, Method): 120s # If it's not a method, there's nothing else we can test 120s return 120s 120s if inspect.ismethoddescriptor(attr) or inspect.isbuiltin(attr): 120s # The first case is what you get for things like ``dict.pop`` 120s # on CPython (e.g., ``verifyClass(IFullMapping, dict))``). The 120s # second case is what you get for things like ``dict().pop`` on 120s # CPython (e.g., ``verifyObject(IFullMapping, dict()))``. 120s # In neither case can we get a signature, so there's nothing 120s # to verify. Even the inspect module gives up and raises 120s # ValueError: no signature found. The ``__text_signature__`` attribute 120s # isn't typically populated either. 120s # 120s # Note that on PyPy 2 or 3 (up through 7.3 at least), these are not 120s # true for things like ``dict.pop`` (but might be true for C 120s # extensions?) 120s return 120s 120s if isinstance(attr, FunctionType): 120s 120s if isinstance(candidate, type) and vtype == 'c': 120s # This is an "unbound method". 120s # Only unwrap this if we're verifying implementedBy; 120s # otherwise we can unwrap @staticmethod on classes that directly 120s # provide an interface. 120s meth = fromFunction(attr, iface, name=name, imlevel=1) 120s else: 120s # Nope, just a normal function 120s meth = fromFunction(attr, iface, name=name) 120s 120s elif ( 120s isinstance(attr, MethodTypes) and 120s type(attr.__func__) is FunctionType 120s ): 120s meth = fromMethod(attr, iface, name) 120s 120s elif isinstance(attr, property) and vtype == 'c': 120s # Without an instance we cannot be sure it's not a 120s # callable. 120s # TODO: This should probably check inspect.isdatadescriptor(), 120s # a more general form than ``property`` 120s return 120s 120s else: 120s if not callable(attr): 120s raise BrokenMethodImplementation( 120s desc, 120s "implementation is not a method", 120s attr, 120s iface, 120s candidate 120s ) 120s # sigh, it's callable, but we don't know how to introspect it, so 120s # we have to give it a pass. 120s return 120s 120s # Make sure that the required and implemented method signatures are 120s # the same. 120s mess = _incompat(desc.getSignatureInfo(), meth.getSignatureInfo()) 120s if mess: 120s > raise BrokenMethodImplementation(desc, mess, attr, iface, candidate) 120s E zope.interface.exceptions.BrokenMethodImplementation: The object FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) has failed to implement interface klein._imessage.IHTTPMessage: The contract of klein._imessage.IHTTPMessage.__annotate_func__(format) is violated because 'FrozenHTTPResponse.__annotate__()' doesn't allow enough arguments. 120s 120s /usr/lib/python3/dist-packages/zope/interface/verify.py:172: BrokenMethodImplementation 120s 120s During handling of the above exception, another exception occurred: 120s 120s self = 120s 120s def test_interface_message(self) -> None: 120s """ 120s Message instance implements L{IHTTPMessage}. 120s """ 120s message = self.messageFromBytes() 120s > cast(TestCase, self).assertProvides(IHTTPMessage, message) 120s 120s test/test_message.py:48: 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s test/_trial.py:34: in assertProvides 120s self.fail(f"{obj} does not provide {interface}") 120s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 120s 120s self = 120s msg = "FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPMessage" 120s 120s def fail(self, msg: Optional[object] = None) -> NoReturn: 120s """ 120s Absolutely fail the test. Do not pass go, do not collect $200. 120s 120s @param msg: the message that will be displayed as the reason for the 120s failure 120s """ 120s > raise self.failureException(msg) 120s E twisted.trial.unittest.FailTest: FrozenHTTPResponse(status=200, headers=FrozenHTTPHeaders(rawHeaders=()), _body=b'', _state=MessageState(cachedBody=None, fountExhausted=False)) does not provide klein._imessage.IHTTPMessage 120s 120s /usr/lib/python3/dist-packages/twisted/trial/_synctest.py:381: FailTest 120s =============================== warnings summary =============================== 120s ../../../../usr/lib/python3/dist-packages/twisted/web/static.py:35 120s /usr/lib/python3/dist-packages/twisted/web/static.py:35: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead 120s dangerousPathError = resource._UnsafeNoResource("Invalid request URL.") 120s 120s ../../../../usr/lib/python3/dist-packages/twisted/web/static.py:264 120s /usr/lib/python3/dist-packages/twisted/web/static.py:264: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead 120s childNotFound = resource._UnsafeNoResource("File not found.") 120s 120s ../../../../usr/lib/python3/dist-packages/twisted/web/static.py:265 120s /usr/lib/python3/dist-packages/twisted/web/static.py:265: DeprecationWarning: twisted.web.resource._UnsafeForbiddenResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.forbidden instead, which properly escapes HTML. instead 120s forbidden = resource._UnsafeForbiddenResource() 120s 120s test/test_form.py:46 120s /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build/test/test_form.py:46: PytestCollectionWarning: cannot collect test class 'TestObject' because it has a __init__ constructor (from: test/test_form.py) 120s @attr.s(auto_attribs=True, hash=False) 120s 120s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 120s =========================== short test summary info ============================ 120s FAILED test/test_headers.py::FrozenHTTPHeadersTests::test_interface - twisted... 120s FAILED test/test_headers.py::MutableHTTPHeadersTests::test_interface - twiste... 120s FAILED test/test_headers_compat.py::HTTPHeadersWrappingHeadersTests::test_interface 120s FAILED test/test_request.py::FrozenHTTPRequestTests::test_interface - twisted... 120s FAILED test/test_request.py::FrozenHTTPRequestTests::test_interface_message 120s FAILED test/test_request_compat.py::HTTPRequestWrappingIRequestTests::test_headers 120s FAILED test/test_request_compat.py::HTTPRequestWrappingIRequestTests::test_interface 120s FAILED test/test_response.py::FrozenHTTPResponseTests::test_interface - twist... 120s FAILED test/test_response.py::FrozenHTTPResponseTests::test_interface_message 120s ================== 9 failed, 237 passed, 4 warnings in 2.02s =================== 120s E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build; python3.14 -m pytest 120s I: pybuild base:311: cd /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build; python3.13 -m pytest 121s ============================= test session starts ============================== 121s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 121s rootdir: /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build 121s plugins: typeguard-4.4.2, hypothesis-6.130.5 121s collected 246 items 121s 121s test/test_app.py ............................... [ 12%] 121s test/test_attrs_zope.py ... [ 13%] 121s test/test_exports.py ..... [ 15%] 121s test/test_form.py ..................... [ 24%] 121s test/test_headers.py ..................................... [ 39%] 121s test/test_headers_compat.py .............. [ 45%] 121s test/test_memory.py ... [ 46%] 121s test/test_plating.py ....................... [ 55%] 121s test/test_request.py ........... [ 60%] 121s test/test_request_compat.py ....... [ 63%] 121s test/test_requirer.py ..... [ 65%] 121s test/test_resource.py .................................................. [ 85%] 121s ............... [ 91%] 121s test/test_response.py ........... [ 95%] 121s test/test_session.py ........ [ 99%] 121s test/test_trial.py .. [100%] 121s 121s =============================== warnings summary =============================== 121s ../../../../usr/lib/python3/dist-packages/twisted/web/static.py:35 121s /usr/lib/python3/dist-packages/twisted/web/static.py:35: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead 121s dangerousPathError = resource._UnsafeNoResource("Invalid request URL.") 121s 121s ../../../../usr/lib/python3/dist-packages/twisted/web/static.py:264 121s /usr/lib/python3/dist-packages/twisted/web/static.py:264: DeprecationWarning: twisted.web.resource._UnsafeNoResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.notFound instead, which properly escapes HTML. instead 121s childNotFound = resource._UnsafeNoResource("File not found.") 121s 121s ../../../../usr/lib/python3/dist-packages/twisted/web/static.py:265 121s /usr/lib/python3/dist-packages/twisted/web/static.py:265: DeprecationWarning: twisted.web.resource._UnsafeForbiddenResource.__init__ was deprecated in Twisted 22.10.0; please use Use twisted.web.pages.forbidden instead, which properly escapes HTML. instead 121s forbidden = resource._UnsafeForbiddenResource() 121s 121s test/test_form.py:46 121s /tmp/autopkgtest.0S8Wvb/autopkgtest_tmp/build/test/test_form.py:46: PytestCollectionWarning: cannot collect test class 'TestObject' because it has a __init__ constructor (from: test/test_form.py) 121s @attr.s(auto_attribs=True, hash=False) 121s 121s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 121s ======================= 246 passed, 4 warnings in 1.24s ======================== 122s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 122s make: *** [/tmp/LNwyW0RmwY/run:4: pybuild-autopkgtest] Error 25 122s pybuild-autopkgtest: error: /tmp/LNwyW0RmwY/run pybuild-autopkgtest returned exit code 2 122s autopkgtest [11:26:07]: test pybuild-autopkgtest: -----------------------] 123s autopkgtest [11:26:08]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 123s pybuild-autopkgtest FAIL non-zero exit status 25 123s autopkgtest [11:26:08]: @@@@@@@@@@@@@@@@@@@@ summary 123s pybuild-autopkgtest FAIL non-zero exit status 25