0s autopkgtest [10:07:15]: starting date and time: 2025-12-04 10:07:15+0000 0s autopkgtest [10:07:15]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [10:07:15]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.wigdrgb_/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade python-pecan --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.9-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-1.secgroup --name adt-resolute-amd64-python-pecan-20251204-100715-juju-7f2275-prod-proposed-migration-environment-15-88e53f1b-3058-4487-9fca-341f77a7a48a --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-amd64-python-pecan-20251204-100715-juju-7f2275-prod-proposed-migration-environment-15-88e53f1b-3058-4487-9fca-341f77a7a48a from image adt/ubuntu-resolute-amd64-server-20251204.img (UUID 51c52a3c-b973-44be-bcc8-3a3ff6355fda)... 47s autopkgtest [10:08:02]: testbed dpkg architecture: amd64 47s autopkgtest [10:08:02]: testbed apt version: 3.1.12 48s autopkgtest [10:08:03]: @@@@@@@@@@@@@@@@@@@@ test bed setup 48s autopkgtest [10:08:03]: testbed release detected to be: None 48s autopkgtest [10:08:03]: updating testbed package index (apt update) 49s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 49s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 49s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 49s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 49s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [946 kB] 49s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [155 kB] 49s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.1 kB] 49s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [164 kB] 49s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [222 kB] 49s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [6652 B] 49s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [120 B] 49s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [349 kB] 49s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [762 kB] 49s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [23.9 kB] 49s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [9636 B] 49s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4040 B] 49s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [748 B] 50s Fetched 2790 kB in 1s (3009 kB/s) 51s Reading package lists... 51s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 51s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 51s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 51s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 52s Reading package lists... 52s Reading package lists... 52s Building dependency tree... 52s Reading state information... 52s Calculating upgrade... 52s The following packages will be upgraded: 52s libpython3-stdlib python3 python3-gdbm python3-minimal 52s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 52s Need to get 72.9 kB of archives. 52s After this operation, 2048 B of additional disk space will be used. 52s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.13.9-2 [28.1 kB] 52s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.13.9-2 [23.0 kB] 52s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.13.9-2 [10.8 kB] 52s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.13.9-2 [11.0 kB] 52s dpkg-preconfigure: unable to re-open stdin: No such file or directory 52s Fetched 72.9 kB in 0s (0 B/s) 53s (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 ... 83537 files and directories currently installed.) 53s Preparing to unpack .../python3-minimal_3.13.9-2_amd64.deb ... 53s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 53s Setting up python3-minimal (3.13.9-2) ... 53s (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 ... 83537 files and directories currently installed.) 53s Preparing to unpack .../python3_3.13.9-2_amd64.deb ... 53s running python pre-rtupdate hooks for python3.13... 53s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 53s Preparing to unpack .../libpython3-stdlib_3.13.9-2_amd64.deb ... 53s Unpacking libpython3-stdlib:amd64 (3.13.9-2) over (3.13.7-1) ... 53s Preparing to unpack .../python3-gdbm_3.13.9-2_amd64.deb ... 53s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 53s Setting up python3-gdbm (3.13.9-2) ... 53s Setting up libpython3-stdlib:amd64 (3.13.9-2) ... 53s Setting up python3 (3.13.9-2) ... 53s running python rtupdate hooks for python3.13... 53s running python post-rtupdate hooks for python3.13... 53s Processing triggers for man-db (2.13.1-1) ... 54s autopkgtest [10:08:09]: upgrading testbed (apt dist-upgrade and autopurge) 54s Reading package lists... 54s Building dependency tree... 54s Reading state information... 54s Calculating upgrade... 54s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 54s Reading package lists... 54s Building dependency tree... 54s Reading state information... 54s Solving dependencies... 54s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 56s autopkgtest [10:08:11]: testbed running kernel: Linux 6.17.0-6-generic #6-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 7 13:34:17 UTC 2025 57s autopkgtest [10:08:12]: @@@@@@@@@@@@@@@@@@@@ apt-source python-pecan 58s Get:1 http://ftpmaster.internal/ubuntu resolute/main python-pecan 1.5.1-6 (dsc) [2445 B] 58s Get:2 http://ftpmaster.internal/ubuntu resolute/main python-pecan 1.5.1-6 (tar) [139 kB] 58s Get:3 http://ftpmaster.internal/ubuntu resolute/main python-pecan 1.5.1-6 (diff) [6360 B] 58s gpgv: Signature made Mon Oct 14 10:13:06 2024 UTC 58s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 58s gpgv: Can't check signature: No public key 58s dpkg-source: warning: cannot verify inline signature for ./python-pecan_1.5.1-6.dsc: no acceptable signature found 58s autopkgtest [10:08:13]: testing package python-pecan version 1.5.1-6 59s autopkgtest [10:08:14]: build not needed 59s autopkgtest [10:08:14]: test unittests: preparing testbed 59s Reading package lists... 59s Building dependency tree... 59s Reading state information... 59s Solving dependencies... 59s The following NEW packages will be installed: 59s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 59s cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 59s dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz g++ 59s g++-15 g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 59s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext gunicorn 59s intltool-debian libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 59s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 59s libitm1 libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl liblsan0 59s libmpc3 libpython3.14-minimal libpython3.14-stdlib libquadmath0 59s libstdc++-15-dev libtool libtsan2 libubsan1 m4 openstack-pkg-tools 59s po-debconf python-pecan-doc python3-alabaster python3-all python3-bs4 59s python3-defusedxml python3-distlib python3-docutils python3-filelock 59s python3-genshi python3-greenlet python3-gunicorn python3-imagesize 59s python3-iniconfig python3-kajiki python3-legacy-cgi python3-linetable 59s python3-logutils python3-mako python3-pecan python3-pip python3-pip-whl 59s python3-platformdirs python3-pluggy python3-pytest python3-roman 59s python3-setuptools-whl python3-simplegeneric python3-snowballstemmer 59s python3-soupsieve python3-sphinx python3-sqlalchemy python3-virtualenv 59s python3-waitress python3-webob python3-webtest python3-wheel python3.14 59s python3.14-minimal sgml-base sphinx-common xml-core 60s 0 upgraded, 94 newly installed, 0 to remove and 0 not upgraded. 60s Need to get 90.8 MB of archives. 60s After this operation, 319 MB of additional disk space will be used. 60s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.0-4 [906 kB] 60s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.0-4 [2559 kB] 60s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.20-2 [217 kB] 60s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 60s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 60s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-3 [582 kB] 60s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.2-1 [620 kB] 60s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1 [685 kB] 60s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-2 [54.8 kB] 60s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-9ubuntu1 [12.9 MB] 60s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-9ubuntu1 [1030 B] 60s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 60s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 60s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-9ubuntu1 [47.4 kB] 60s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-9ubuntu1 [151 kB] 60s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-9ubuntu1 [29.6 kB] 61s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-9ubuntu1 [3071 kB] 61s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-9ubuntu1 [1360 kB] 61s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-9ubuntu1 [2757 kB] 61s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-9ubuntu1 [1210 kB] 61s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-9ubuntu1 [1685 kB] 61s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-9ubuntu1 [153 kB] 61s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-9ubuntu1 [2863 kB] 61s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-9ubuntu1 [25.4 MB] 61s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-9ubuntu1 [527 kB] 61s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 61s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 61s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-9ubuntu1 [2574 kB] 61s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-9ubuntu1 [14.4 MB] 62s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-9ubuntu1 [24.3 kB] 62s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 62s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 62s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu2 [5256 B] 62s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 62s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-7 [169 kB] 62s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 62s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 62s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 62s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 62s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 62s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 62s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 62s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 62s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 62s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.24.2ubuntu1 [896 kB] 62s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 dh-python all 6.20251029 [120 kB] 62s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 sgml-base all 1.31+nmu1 [11.0 kB] 62s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 xml-core all 0.19 [20.3 kB] 62s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 docutils-common all 0.21.2+dfsg-2 [131 kB] 62s Get:50 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-gunicorn all 23.0.0-1 [63.8 kB] 62s Get:51 http://ftpmaster.internal/ubuntu resolute/universe amd64 gunicorn all 23.0.0-1 [9516 B] 62s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 libjs-jquery all 3.7.1+dfsg+~3.5.33-1build1 [321 kB] 62s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 62s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 libjs-sphinxdoc all 8.2.3-1ubuntu2 [28.0 kB] 62s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 62s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.0-4 [2397 kB] 62s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 python-pecan-doc all 1.5.1-6 [123 kB] 62s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.0-4 [805 kB] 62s Get:59 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all amd64 3.13.9-2 [892 B] 62s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-soupsieve all 2.7-2 [33.6 kB] 62s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-bs4 all 4.14.2-1 [82.8 kB] 62s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-defusedxml all 0.7.1-3 [42.2 kB] 62s Get:63 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-distlib all 0.4.0-1 [267 kB] 62s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-roman all 5.2-1 [10.8 kB] 62s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-docutils all 0.21.2+dfsg-2 [409 kB] 62s Get:66 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-filelock all 3.18.0-1 [13.0 kB] 62s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-genshi amd64 0.7.9-2build2 [131 kB] 62s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-imagesize all 1.4.1-1build1 [6900 B] 62s Get:69 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-1 [6840 B] 62s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-legacy-cgi all 2.6.4-1 [17.0 kB] 62s Get:71 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-linetable all 0.0.3-1 [5146 B] 62s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-logutils all 0.3.5-5 [17.8 kB] 62s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-mako all 1.3.10-3 [63.8 kB] 62s Get:74 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-simplegeneric all 0.8.1-5build1 [11.0 kB] 62s Get:75 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-webob all 1:1.8.9-1 [86.8 kB] 62s Get:76 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-pecan all 1.5.1-6 [86.8 kB] 62s Get:77 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-wheel all 0.46.1-2 [22.1 kB] 62s Get:78 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pip all 25.1.1+dfsg-1ubuntu2 [1416 kB] 62s Get:79 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pip-whl all 25.1.1+dfsg-1ubuntu2 [1430 kB] 62s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-platformdirs all 4.4.0-1 [16.9 kB] 62s Get:81 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-1 [21.0 kB] 62s Get:82 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 8.3.5-2 [252 kB] 62s Get:83 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-setuptools-whl all 78.1.1-0.1 [1174 kB] 62s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-snowballstemmer all 3.0.1-1 [65.9 kB] 62s Get:85 http://ftpmaster.internal/ubuntu resolute/main amd64 sphinx-common all 8.2.3-1ubuntu2 [656 kB] 62s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-alabaster all 0.7.16-0.1 [18.5 kB] 62s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sphinx all 8.2.3-1ubuntu2 [482 kB] 62s Get:88 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-greenlet amd64 3.2.4-2 [185 kB] 62s Get:89 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sqlalchemy all 2.0.40+ds1-2 [1220 kB] 62s Get:90 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-virtualenv all 20.35.4+ds-1 [76.1 kB] 62s Get:91 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-waitress all 3.0.2-2 [46.3 kB] 62s Get:92 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-webtest all 3.0.7-1 [29.5 kB] 62s Get:93 http://ftpmaster.internal/ubuntu resolute/universe amd64 openstack-pkg-tools all 137 [100 kB] 62s Get:94 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-kajiki all 1.0.2-1 [32.0 kB] 62s Fetched 90.8 MB in 3s (34.6 MB/s) 62s Selecting previously unselected package libpython3.14-minimal:amd64. 62s (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 ... 83537 files and directories currently installed.) 62s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_amd64.deb ... 62s Unpacking libpython3.14-minimal:amd64 (3.14.0-4) ... 62s Selecting previously unselected package python3.14-minimal. 62s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_amd64.deb ... 62s Unpacking python3.14-minimal (3.14.0-4) ... 62s Selecting previously unselected package m4. 62s Preparing to unpack .../02-m4_1.4.20-2_amd64.deb ... 62s Unpacking m4 (1.4.20-2) ... 62s Selecting previously unselected package autoconf. 62s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 62s Unpacking autoconf (2.72-3.1ubuntu1) ... 62s Selecting previously unselected package autotools-dev. 62s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 62s Unpacking autotools-dev (20240727.1) ... 63s Selecting previously unselected package automake. 63s Preparing to unpack .../05-automake_1%3a1.18.1-3_all.deb ... 63s Unpacking automake (1:1.18.1-3) ... 63s Selecting previously unselected package autopoint. 63s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 63s Unpacking autopoint (0.23.2-1) ... 63s Selecting previously unselected package libisl23:amd64. 63s Preparing to unpack .../07-libisl23_0.27-1_amd64.deb ... 63s Unpacking libisl23:amd64 (0.27-1) ... 63s Selecting previously unselected package libmpc3:amd64. 63s Preparing to unpack .../08-libmpc3_1.3.1-2_amd64.deb ... 63s Unpacking libmpc3:amd64 (1.3.1-2) ... 63s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 63s Preparing to unpack .../09-cpp-15-x86-64-linux-gnu_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package cpp-15. 63s Preparing to unpack .../10-cpp-15_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking cpp-15 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package cpp-x86-64-linux-gnu. 63s Preparing to unpack .../11-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 63s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 63s Selecting previously unselected package cpp. 63s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 63s Unpacking cpp (4:15.2.0-4ubuntu1) ... 63s Selecting previously unselected package libcc1-0:amd64. 63s Preparing to unpack .../13-libcc1-0_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libcc1-0:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libgomp1:amd64. 63s Preparing to unpack .../14-libgomp1_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libgomp1:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libitm1:amd64. 63s Preparing to unpack .../15-libitm1_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libitm1:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libasan8:amd64. 63s Preparing to unpack .../16-libasan8_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libasan8:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package liblsan0:amd64. 63s Preparing to unpack .../17-liblsan0_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking liblsan0:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libtsan2:amd64. 63s Preparing to unpack .../18-libtsan2_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libtsan2:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libubsan1:amd64. 63s Preparing to unpack .../19-libubsan1_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libubsan1:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libhwasan0:amd64. 63s Preparing to unpack .../20-libhwasan0_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libhwasan0:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libquadmath0:amd64. 63s Preparing to unpack .../21-libquadmath0_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libquadmath0:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package libgcc-15-dev:amd64. 63s Preparing to unpack .../22-libgcc-15-dev_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libgcc-15-dev:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 63s Preparing to unpack .../23-gcc-15-x86-64-linux-gnu_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package gcc-15. 63s Preparing to unpack .../24-gcc-15_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking gcc-15 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package gcc-x86-64-linux-gnu. 63s Preparing to unpack .../25-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 63s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 63s Selecting previously unselected package gcc. 63s Preparing to unpack .../26-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 63s Unpacking gcc (4:15.2.0-4ubuntu1) ... 63s Selecting previously unselected package libstdc++-15-dev:amd64. 63s Preparing to unpack .../27-libstdc++-15-dev_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking libstdc++-15-dev:amd64 (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package g++-15-x86-64-linux-gnu. 63s Preparing to unpack .../28-g++-15-x86-64-linux-gnu_15.2.0-9ubuntu1_amd64.deb ... 63s Unpacking g++-15-x86-64-linux-gnu (15.2.0-9ubuntu1) ... 63s Selecting previously unselected package g++-15. 64s Preparing to unpack .../29-g++-15_15.2.0-9ubuntu1_amd64.deb ... 64s Unpacking g++-15 (15.2.0-9ubuntu1) ... 64s Selecting previously unselected package g++-x86-64-linux-gnu. 64s Preparing to unpack .../30-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 64s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 64s Selecting previously unselected package g++. 64s Preparing to unpack .../31-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 64s Unpacking g++ (4:15.2.0-4ubuntu1) ... 64s Selecting previously unselected package build-essential. 64s Preparing to unpack .../32-build-essential_12.12ubuntu2_amd64.deb ... 64s Unpacking build-essential (12.12ubuntu2) ... 64s Selecting previously unselected package libdebhelper-perl. 64s Preparing to unpack .../33-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 64s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 64s Selecting previously unselected package libtool. 64s Preparing to unpack .../34-libtool_2.5.4-7_all.deb ... 64s Unpacking libtool (2.5.4-7) ... 64s Selecting previously unselected package dh-autoreconf. 64s Preparing to unpack .../35-dh-autoreconf_21_all.deb ... 64s Unpacking dh-autoreconf (21) ... 64s Selecting previously unselected package libarchive-zip-perl. 64s Preparing to unpack .../36-libarchive-zip-perl_1.68-1_all.deb ... 64s Unpacking libarchive-zip-perl (1.68-1) ... 64s Selecting previously unselected package libfile-stripnondeterminism-perl. 64s Preparing to unpack .../37-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 64s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 64s Selecting previously unselected package dh-strip-nondeterminism. 64s Preparing to unpack .../38-dh-strip-nondeterminism_1.15.0-1_all.deb ... 64s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 64s Selecting previously unselected package debugedit. 64s Preparing to unpack .../39-debugedit_1%3a5.2-3_amd64.deb ... 64s Unpacking debugedit (1:5.2-3) ... 64s Selecting previously unselected package dwz. 64s Preparing to unpack .../40-dwz_0.16-2_amd64.deb ... 64s Unpacking dwz (0.16-2) ... 64s Selecting previously unselected package gettext. 64s Preparing to unpack .../41-gettext_0.23.2-1_amd64.deb ... 64s Unpacking gettext (0.23.2-1) ... 64s Selecting previously unselected package intltool-debian. 64s Preparing to unpack .../42-intltool-debian_0.35.0+20060710.6build1_all.deb ... 64s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 64s Selecting previously unselected package po-debconf. 64s Preparing to unpack .../43-po-debconf_1.0.21+nmu1_all.deb ... 64s Unpacking po-debconf (1.0.21+nmu1) ... 64s Selecting previously unselected package debhelper. 64s Preparing to unpack .../44-debhelper_13.24.2ubuntu1_all.deb ... 64s Unpacking debhelper (13.24.2ubuntu1) ... 64s Selecting previously unselected package dh-python. 64s Preparing to unpack .../45-dh-python_6.20251029_all.deb ... 64s Unpacking dh-python (6.20251029) ... 64s Selecting previously unselected package sgml-base. 64s Preparing to unpack .../46-sgml-base_1.31+nmu1_all.deb ... 64s Unpacking sgml-base (1.31+nmu1) ... 64s Selecting previously unselected package xml-core. 64s Preparing to unpack .../47-xml-core_0.19_all.deb ... 64s Unpacking xml-core (0.19) ... 64s Selecting previously unselected package docutils-common. 64s Preparing to unpack .../48-docutils-common_0.21.2+dfsg-2_all.deb ... 64s Unpacking docutils-common (0.21.2+dfsg-2) ... 64s Selecting previously unselected package python3-gunicorn. 64s Preparing to unpack .../49-python3-gunicorn_23.0.0-1_all.deb ... 64s Unpacking python3-gunicorn (23.0.0-1) ... 64s Selecting previously unselected package gunicorn. 64s Preparing to unpack .../50-gunicorn_23.0.0-1_all.deb ... 64s Unpacking gunicorn (23.0.0-1) ... 64s Selecting previously unselected package libjs-jquery. 64s Preparing to unpack .../51-libjs-jquery_3.7.1+dfsg+~3.5.33-1build1_all.deb ... 64s Unpacking libjs-jquery (3.7.1+dfsg+~3.5.33-1build1) ... 64s Selecting previously unselected package libjs-underscore. 64s Preparing to unpack .../52-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 64s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 64s Selecting previously unselected package libjs-sphinxdoc. 64s Preparing to unpack .../53-libjs-sphinxdoc_8.2.3-1ubuntu2_all.deb ... 64s Unpacking libjs-sphinxdoc (8.2.3-1ubuntu2) ... 64s Selecting previously unselected package libjson-perl. 64s Preparing to unpack .../54-libjson-perl_4.10000-1_all.deb ... 64s Unpacking libjson-perl (4.10000-1) ... 64s Selecting previously unselected package libpython3.14-stdlib:amd64. 64s Preparing to unpack .../55-libpython3.14-stdlib_3.14.0-4_amd64.deb ... 64s Unpacking libpython3.14-stdlib:amd64 (3.14.0-4) ... 64s Selecting previously unselected package python-pecan-doc. 64s Preparing to unpack .../56-python-pecan-doc_1.5.1-6_all.deb ... 64s Unpacking python-pecan-doc (1.5.1-6) ... 64s Selecting previously unselected package python3.14. 64s Preparing to unpack .../57-python3.14_3.14.0-4_amd64.deb ... 64s Unpacking python3.14 (3.14.0-4) ... 64s Selecting previously unselected package python3-all. 64s Preparing to unpack .../58-python3-all_3.13.9-2_amd64.deb ... 64s Unpacking python3-all (3.13.9-2) ... 64s Selecting previously unselected package python3-soupsieve. 64s Preparing to unpack .../59-python3-soupsieve_2.7-2_all.deb ... 64s Unpacking python3-soupsieve (2.7-2) ... 64s Selecting previously unselected package python3-bs4. 64s Preparing to unpack .../60-python3-bs4_4.14.2-1_all.deb ... 64s Unpacking python3-bs4 (4.14.2-1) ... 64s Selecting previously unselected package python3-defusedxml. 64s Preparing to unpack .../61-python3-defusedxml_0.7.1-3_all.deb ... 64s Unpacking python3-defusedxml (0.7.1-3) ... 64s Selecting previously unselected package python3-distlib. 64s Preparing to unpack .../62-python3-distlib_0.4.0-1_all.deb ... 64s Unpacking python3-distlib (0.4.0-1) ... 64s Selecting previously unselected package python3-roman. 64s Preparing to unpack .../63-python3-roman_5.2-1_all.deb ... 64s Unpacking python3-roman (5.2-1) ... 64s Selecting previously unselected package python3-docutils. 64s Preparing to unpack .../64-python3-docutils_0.21.2+dfsg-2_all.deb ... 64s Unpacking python3-docutils (0.21.2+dfsg-2) ... 64s Selecting previously unselected package python3-filelock. 64s Preparing to unpack .../65-python3-filelock_3.18.0-1_all.deb ... 64s Unpacking python3-filelock (3.18.0-1) ... 64s Selecting previously unselected package python3-genshi. 64s Preparing to unpack .../66-python3-genshi_0.7.9-2build2_amd64.deb ... 64s Unpacking python3-genshi (0.7.9-2build2) ... 64s Selecting previously unselected package python3-imagesize. 64s Preparing to unpack .../67-python3-imagesize_1.4.1-1build1_all.deb ... 64s Unpacking python3-imagesize (1.4.1-1build1) ... 64s Selecting previously unselected package python3-iniconfig. 64s Preparing to unpack .../68-python3-iniconfig_2.1.0-1_all.deb ... 64s Unpacking python3-iniconfig (2.1.0-1) ... 64s Selecting previously unselected package python3-legacy-cgi. 64s Preparing to unpack .../69-python3-legacy-cgi_2.6.4-1_all.deb ... 64s Unpacking python3-legacy-cgi (2.6.4-1) ... 64s Selecting previously unselected package python3-linetable. 64s Preparing to unpack .../70-python3-linetable_0.0.3-1_all.deb ... 64s Unpacking python3-linetable (0.0.3-1) ... 64s Selecting previously unselected package python3-logutils. 64s Preparing to unpack .../71-python3-logutils_0.3.5-5_all.deb ... 64s Unpacking python3-logutils (0.3.5-5) ... 64s Selecting previously unselected package python3-mako. 64s Preparing to unpack .../72-python3-mako_1.3.10-3_all.deb ... 64s Unpacking python3-mako (1.3.10-3) ... 64s Selecting previously unselected package python3-simplegeneric. 64s Preparing to unpack .../73-python3-simplegeneric_0.8.1-5build1_all.deb ... 64s Unpacking python3-simplegeneric (0.8.1-5build1) ... 64s Selecting previously unselected package python3-webob. 64s Preparing to unpack .../74-python3-webob_1%3a1.8.9-1_all.deb ... 64s Unpacking python3-webob (1:1.8.9-1) ... 64s Selecting previously unselected package python3-pecan. 64s Preparing to unpack .../75-python3-pecan_1.5.1-6_all.deb ... 64s Unpacking python3-pecan (1.5.1-6) ... 64s Selecting previously unselected package python3-wheel. 64s Preparing to unpack .../76-python3-wheel_0.46.1-2_all.deb ... 64s Unpacking python3-wheel (0.46.1-2) ... 64s Selecting previously unselected package python3-pip. 64s Preparing to unpack .../77-python3-pip_25.1.1+dfsg-1ubuntu2_all.deb ... 64s Unpacking python3-pip (25.1.1+dfsg-1ubuntu2) ... 64s Selecting previously unselected package python3-pip-whl. 64s Preparing to unpack .../78-python3-pip-whl_25.1.1+dfsg-1ubuntu2_all.deb ... 64s Unpacking python3-pip-whl (25.1.1+dfsg-1ubuntu2) ... 64s Selecting previously unselected package python3-platformdirs. 64s Preparing to unpack .../79-python3-platformdirs_4.4.0-1_all.deb ... 64s Unpacking python3-platformdirs (4.4.0-1) ... 64s Selecting previously unselected package python3-pluggy. 64s Preparing to unpack .../80-python3-pluggy_1.6.0-1_all.deb ... 64s Unpacking python3-pluggy (1.6.0-1) ... 64s Selecting previously unselected package python3-pytest. 64s Preparing to unpack .../81-python3-pytest_8.3.5-2_all.deb ... 64s Unpacking python3-pytest (8.3.5-2) ... 64s Selecting previously unselected package python3-setuptools-whl. 64s Preparing to unpack .../82-python3-setuptools-whl_78.1.1-0.1_all.deb ... 64s Unpacking python3-setuptools-whl (78.1.1-0.1) ... 64s Selecting previously unselected package python3-snowballstemmer. 64s Preparing to unpack .../83-python3-snowballstemmer_3.0.1-1_all.deb ... 64s Unpacking python3-snowballstemmer (3.0.1-1) ... 64s Selecting previously unselected package sphinx-common. 64s Preparing to unpack .../84-sphinx-common_8.2.3-1ubuntu2_all.deb ... 64s Unpacking sphinx-common (8.2.3-1ubuntu2) ... 64s Selecting previously unselected package python3-alabaster. 64s Preparing to unpack .../85-python3-alabaster_0.7.16-0.1_all.deb ... 64s Unpacking python3-alabaster (0.7.16-0.1) ... 64s Selecting previously unselected package python3-sphinx. 64s Preparing to unpack .../86-python3-sphinx_8.2.3-1ubuntu2_all.deb ... 64s Unpacking python3-sphinx (8.2.3-1ubuntu2) ... 64s Selecting previously unselected package python3-greenlet. 64s Preparing to unpack .../87-python3-greenlet_3.2.4-2_amd64.deb ... 64s Unpacking python3-greenlet (3.2.4-2) ... 64s Selecting previously unselected package python3-sqlalchemy. 64s Preparing to unpack .../88-python3-sqlalchemy_2.0.40+ds1-2_all.deb ... 64s Unpacking python3-sqlalchemy (2.0.40+ds1-2) ... 64s Selecting previously unselected package python3-virtualenv. 64s Preparing to unpack .../89-python3-virtualenv_20.35.4+ds-1_all.deb ... 64s Unpacking python3-virtualenv (20.35.4+ds-1) ... 64s Selecting previously unselected package python3-waitress. 64s Preparing to unpack .../90-python3-waitress_3.0.2-2_all.deb ... 64s Unpacking python3-waitress (3.0.2-2) ... 64s Selecting previously unselected package python3-webtest. 64s Preparing to unpack .../91-python3-webtest_3.0.7-1_all.deb ... 64s Unpacking python3-webtest (3.0.7-1) ... 64s Selecting previously unselected package openstack-pkg-tools. 64s Preparing to unpack .../92-openstack-pkg-tools_137_all.deb ... 64s Unpacking openstack-pkg-tools (137) ... 65s Selecting previously unselected package python3-kajiki. 65s Preparing to unpack .../93-python3-kajiki_1.0.2-1_all.deb ... 65s Unpacking python3-kajiki (1.0.2-1) ... 65s Setting up dh-python (6.20251029) ... 65s Setting up python3-iniconfig (2.1.0-1) ... 65s Setting up python3-setuptools-whl (78.1.1-0.1) ... 65s Setting up python3-filelock (3.18.0-1) ... 65s Setting up python3-waitress (3.0.2-2) ... 65s Setting up python3-linetable (0.0.3-1) ... 65s Setting up python3-pip-whl (25.1.1+dfsg-1ubuntu2) ... 65s Setting up python3-defusedxml (0.7.1-3) ... 65s Setting up libarchive-zip-perl (1.68-1) ... 65s Setting up python3-alabaster (0.7.16-0.1) ... 65s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 65s Setting up libpython3.14-minimal:amd64 (3.14.0-4) ... 65s Setting up m4 (1.4.20-2) ... 65s Setting up python3-distlib (0.4.0-1) ... 66s Setting up libgomp1:amd64 (15.2.0-9ubuntu1) ... 66s Setting up python3-wheel (0.46.1-2) ... 66s Setting up python3-platformdirs (4.4.0-1) ... 66s Setting up python3-genshi (0.7.9-2build2) ... 66s Setting up python3-roman (5.2-1) ... 66s Setting up autotools-dev (20240727.1) ... 66s Setting up python3-snowballstemmer (3.0.1-1) ... 67s Setting up python3-greenlet (3.2.4-2) ... 67s Setting up libquadmath0:amd64 (15.2.0-9ubuntu1) ... 67s Setting up libmpc3:amd64 (1.3.1-2) ... 67s Setting up autopoint (0.23.2-1) ... 67s Setting up python3-gunicorn (23.0.0-1) ... 67s Setting up python3-pip (25.1.1+dfsg-1ubuntu2) ... 68s Setting up python3-kajiki (1.0.2-1) ... 68s Setting up autoconf (2.72-3.1ubuntu1) ... 68s Setting up python3-pluggy (1.6.0-1) ... 68s Setting up libubsan1:amd64 (15.2.0-9ubuntu1) ... 68s Setting up python3-legacy-cgi (2.6.4-1) ... 68s Setting up dwz (0.16-2) ... 68s Setting up libhwasan0:amd64 (15.2.0-9ubuntu1) ... 68s Setting up libasan8:amd64 (15.2.0-9ubuntu1) ... 68s Setting up libjson-perl (4.10000-1) ... 68s Setting up debugedit (1:5.2-3) ... 68s Setting up sgml-base (1.31+nmu1) ... 68s Setting up python3-logutils (0.3.5-5) ... 68s Setting up libtsan2:amd64 (15.2.0-9ubuntu1) ... 68s Setting up libjs-jquery (3.7.1+dfsg+~3.5.33-1build1) ... 68s Setting up libisl23:amd64 (0.27-1) ... 68s Setting up python3-simplegeneric (0.8.1-5build1) ... 69s Setting up python3-soupsieve (2.7-2) ... 69s Setting up python3.14-minimal (3.14.0-4) ... 69s Setting up libcc1-0:amd64 (15.2.0-9ubuntu1) ... 69s Setting up liblsan0:amd64 (15.2.0-9ubuntu1) ... 69s Setting up libitm1:amd64 (15.2.0-9ubuntu1) ... 69s Setting up python3-mako (1.3.10-3) ... 69s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 69s Setting up python3-webob (1:1.8.9-1) ... 70s Setting up python3-imagesize (1.4.1-1build1) ... 70s Setting up automake (1:1.18.1-3) ... 70s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 70s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 70s Setting up python3-pecan (1.5.1-6) ... 70s Setting up gettext (0.23.2-1) ... 70s Setting up libgcc-15-dev:amd64 (15.2.0-9ubuntu1) ... 70s Setting up libpython3.14-stdlib:amd64 (3.14.0-4) ... 70s Setting up python3-pytest (8.3.5-2) ... 70s Setting up python3-virtualenv (20.35.4+ds-1) ... 70s Setting up cpp-15-x86-64-linux-gnu (15.2.0-9ubuntu1) ... 70s Setting up gunicorn (23.0.0-1) ... 70s Setting up python3-bs4 (4.14.2-1) ... 71s Setting up python3-sqlalchemy (2.0.40+ds1-2) ... 72s Setting up intltool-debian (0.35.0+20060710.6build1) ... 72s Setting up gcc-15-x86-64-linux-gnu (15.2.0-9ubuntu1) ... 72s Setting up libstdc++-15-dev:amd64 (15.2.0-9ubuntu1) ... 72s Setting up libjs-sphinxdoc (8.2.3-1ubuntu2) ... 72s Setting up dh-strip-nondeterminism (1.15.0-1) ... 72s Setting up cpp-15 (15.2.0-9ubuntu1) ... 72s Setting up xml-core (0.19) ... 72s Setting up python3-webtest (3.0.7-1) ... 72s /usr/lib/python3/dist-packages/webtest/http.py:133: SyntaxWarning: 'return' in a 'finally' block 72s return False 72s Setting up python3.14 (3.14.0-4) ... 73s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 73s Setting up g++-15-x86-64-linux-gnu (15.2.0-9ubuntu1) ... 73s Setting up python-pecan-doc (1.5.1-6) ... 73s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 73s Setting up po-debconf (1.0.21+nmu1) ... 73s Setting up python3-all (3.13.9-2) ... 73s Setting up openstack-pkg-tools (137) ... 73s Setting up gcc-15 (15.2.0-9ubuntu1) ... 73s Setting up sphinx-common (8.2.3-1ubuntu2) ... 73s Setting up cpp (4:15.2.0-4ubuntu1) ... 73s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 73s Setting up g++-15 (15.2.0-9ubuntu1) ... 73s Setting up libtool (2.5.4-7) ... 73s Setting up gcc (4:15.2.0-4ubuntu1) ... 73s Setting up dh-autoreconf (21) ... 73s Setting up g++ (4:15.2.0-4ubuntu1) ... 73s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 73s Setting up build-essential (12.12ubuntu2) ... 73s Setting up debhelper (13.24.2ubuntu1) ... 73s Processing triggers for install-info (7.2-5) ... 73s Processing triggers for libc-bin (2.42-2ubuntu2) ... 73s Processing triggers for systemd (257.9-0ubuntu2) ... 73s Processing triggers for man-db (2.13.1-1) ... 74s Processing triggers for sgml-base (1.31+nmu1) ... 74s Setting up docutils-common (0.21.2+dfsg-2) ... 74s Processing triggers for sgml-base (1.31+nmu1) ... 74s Setting up python3-docutils (0.21.2+dfsg-2) ... 74s Setting up python3-sphinx (8.2.3-1ubuntu2) ... 76s autopkgtest [10:08:31]: test unittests: [----------------------- 76s ============================= test session starts ============================== 76s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.14 76s cachedir: .pytest_cache 76s rootdir: /tmp/autopkgtest.S5v0Um/build.FKt/src 76s configfile: setup.cfg 76s plugins: typeguard-4.4.2 78s collecting ... collected 543 items / 3 deselected / 540 selected 78s 78s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_endpoint_with_query_string PASSED [ 0%] 78s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_with_recursion_loop PASSED [ 0%] 78s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_hit_error_page PASSED [ 0%] 78s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_middleware_routes_to_404_message PASSED [ 0%] 78s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_original_exception PASSED [ 0%] 78s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequestException PASSED [ 1%] 78s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_environ PASSED [ 1%] 78s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_factory PASSED [ 1%] 78s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url PASSED [ 1%] 78s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url_with_params PASSED [ 1%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_date_dumping_on_unix_timestamps PASSED [ 2%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed PASSED [ 2%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found PASSED [ 2%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over PASSED [ 2%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files PASSED [ 2%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_no_file_found_causes_passthrough PASSED [ 2%] 78s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file PASSED [ 3%] 78s pecan/tests/test_base.py::TestAppRoot::test_controller_lookup_by_string_path PASSED [ 3%] 78s pecan/tests/test_base.py::TestEmptyContent::test_empty_body PASSED [ 3%] 78s pecan/tests/test_base.py::TestEmptyContent::test_empty_index PASSED [ 3%] 78s pecan/tests/test_base.py::TestEmptyContent::test_empty_text PASSED [ 3%] 78s pecan/tests/test_base.py::TestEmptyContent::test_explicit_body PASSED [ 4%] 78s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json PASSED [ 4%] 78s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json_body PASSED [ 4%] 78s pecan/tests/test_base.py::TestEmptyContent::test_explicit_text PASSED [ 4%] 78s pecan/tests/test_base.py::TestEmptyContent::test_index_with_non_unicode PASSED [ 4%] 78s pecan/tests/test_base.py::TestAppIterFile::test_body_generator PASSED [ 5%] 78s pecan/tests/test_base.py::TestAppIterFile::test_empty_body_generator PASSED [ 5%] 78s pecan/tests/test_base.py::TestInvalidURLEncoding::test_rest_with_non_utf_8_body PASSED [ 5%] 78s pecan/tests/test_base.py::TestIndexRouting::test_empty_root PASSED [ 5%] 78s pecan/tests/test_base.py::TestIndexRouting::test_index PASSED [ 5%] 78s pecan/tests/test_base.py::TestIndexRouting::test_index_html PASSED [ 5%] 78s pecan/tests/test_base.py::TestObjectDispatch::test_index PASSED [ 6%] 78s pecan/tests/test_base.py::TestObjectDispatch::test_one_level PASSED [ 6%] 78s pecan/tests/test_base.py::TestObjectDispatch::test_one_level_with_trailing PASSED [ 6%] 78s pecan/tests/test_base.py::TestObjectDispatch::test_three_levels PASSED [ 6%] 78s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels PASSED [ 6%] 78s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels_with_trailing PASSED [ 7%] 78s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_child PASSED [ 7%] 78s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_methods PASSED [ 7%] 78s pecan/tests/test_base.py::TestLookups::test_index PASSED [ 7%] 78s pecan/tests/test_base.py::TestLookups::test_lookup PASSED [ 7%] 78s pecan/tests/test_base.py::TestLookups::test_lookup_with_method PASSED [ 7%] 78s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 8%] 78s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_return PASSED [ 8%] 78s pecan/tests/test_base.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 8%] 78s pecan/tests/test_base.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 8%] 78s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_GET PASSED [ 8%] 78s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST PASSED [ 9%] 78s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed PASSED [ 9%] 78s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed_json PASSED [ 9%] 78s pecan/tests/test_base.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 9%] 78s pecan/tests/test_base.py::TestControllerArguments::test_explicit_json_kwargs PASSED [ 9%] 78s pecan/tests/test_base.py::TestControllerArguments::test_explicit_kwargs PASSED [ 10%] 78s pecan/tests/test_base.py::TestControllerArguments::test_json_kwargs_from_root PASSED [ 10%] 78s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument PASSED [ 10%] 78s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_plus PASSED [ 10%] 78s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 10%] 78s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_plus PASSED [ 10%] 78s pecan/tests/test_base.py::TestControllerArguments::test_kwargs_from_root PASSED [ 11%] 78s pecan/tests/test_base.py::TestControllerArguments::test_many_remainders PASSED [ 11%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 11%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 11%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_kwargs PASSED [ 11%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional PASSED [ 12%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 12%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 12%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 12%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 12%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 12%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 13%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_json_kwargs PASSED [ 13%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 13%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 13%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 13%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 14%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 14%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 14%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 14%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_json_kwargs PASSED [ 14%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 15%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 15%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 15%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 15%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 15%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 15%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_json_kwargs PASSED [ 16%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 16%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 16%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 16%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 16%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 17%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 17%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_json_kwargs PASSED [ 17%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 17%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 17%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 17%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 18%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_args PASSED [ 18%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 18%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 18%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 18%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 19%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 19%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_json_kwargs PASSED [ 19%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 19%] 78s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 19%] 78s pecan/tests/test_base.py::TestControllerArguments::test_no_remainder PASSED [ 20%] 78s pecan/tests/test_base.py::TestControllerArguments::test_one_remainder PASSED [ 20%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg PASSED [ 20%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_json_kwargs PASSED [ 20%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 20%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 20%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_json_kwargs PASSED [ 21%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 21%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 21%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 21%] 78s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 21%] 78s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_json_kwargs PASSED [ 22%] 78s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 22%] 78s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 22%] 78s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_json_kwargs PASSED [ 22%] 78s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 22%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_empty_remainder_with_json_kwargs PASSED [ 22%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders PASSED [ 23%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_json_kwargs PASSED [ 23%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 23%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder PASSED [ 23%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_json_kwargs PASSED [ 23%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 24%] 78s pecan/tests/test_base.py::TestControllerArguments::test_post_three_remainders PASSED [ 24%] 78s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 24%] 78s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 24%] 78s pecan/tests/test_base.py::TestControllerArguments::test_required_argument PASSED [ 24%] 78s pecan/tests/test_base.py::TestControllerArguments::test_single_argument PASSED [ 25%] 78s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_plus PASSED [ 25%] 78s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 25%] 78s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_plus PASSED [ 25%] 78s pecan/tests/test_base.py::TestControllerArguments::test_staticmethod PASSED [ 25%] 78s pecan/tests/test_base.py::TestControllerArguments::test_two_arguments PASSED [ 25%] 78s pecan/tests/test_base.py::TestControllerArguments::test_two_remainders PASSED [ 26%] 78s pecan/tests/test_base.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 26%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_all PASSED [ 26%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 26%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 26%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_args PASSED [ 27%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 27%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_json_kwargs PASSED [ 27%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 27%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_kwargs PASSED [ 27%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed PASSED [ 27%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 28%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_post PASSED [ 28%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed PASSED [ 28%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed_with_json PASSED [ 28%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_json_kwargs PASSED [ 28%] 78s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 29%] 78s pecan/tests/test_base.py::TestDefaultErrorRendering::test_html_error PASSED [ 29%] 78s pecan/tests/test_base.py::TestDefaultErrorRendering::test_json_error PASSED [ 29%] 78s pecan/tests/test_base.py::TestDefaultErrorRendering::test_plain_error PASSED [ 29%] 78s pecan/tests/test_base.py::TestAbort::test_abort PASSED [ 29%] 78s pecan/tests/test_base.py::TestAbort::test_abort_keeps_traceback PASSED [ 30%] 78s pecan/tests/test_base.py::TestAbort::test_abort_with_detail PASSED [ 30%] 78s pecan/tests/test_base.py::TestScriptName::test_handle_script_name PASSED [ 30%] 78s pecan/tests/test_base.py::TestRedirect::test_index PASSED [ 30%] 78s pecan/tests/test_base.py::TestRedirect::test_internal PASSED [ 30%] 78s pecan/tests/test_base.py::TestRedirect::test_internal_with_301 PASSED [ 30%] 78s pecan/tests/test_base.py::TestRedirect::test_permanent_redirect PASSED [ 31%] 78s pecan/tests/test_base.py::TestRedirect::test_x_forward_proto PASSED [ 31%] 78s pecan/tests/test_base.py::TestInternalRedirectContext::test_context_does_not_bleed PASSED [ 31%] 78s pecan/tests/test_base.py::TestInternalRedirectContext::test_internal_with_request_context PASSED [ 31%] 78s pecan/tests/test_base.py::TestStreamedResponse::test_streaming_response PASSED [ 31%] 78s pecan/tests/test_base.py::TestManualResponse::test_manual_response PASSED [ 32%] 78s pecan/tests/test_base.py::TestCustomResponseandRequest::test_custom_objects PASSED [ 32%] 78s pecan/tests/test_base.py::TestThreadLocalState::test_request_state_cleanup PASSED [ 32%] 78s pecan/tests/test_base.py::TestThreadLocalState::test_thread_local_dir PASSED [ 32%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_bad_content_type PASSED [ 32%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_content_type_guessing_disabled PASSED [ 32%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_guessing_disabled PASSED [ 33%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_hidden_file PASSED [ 33%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_html_extension PASSED [ 33%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_image_extension PASSED [ 33%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_multi_dot_extension PASSED [ 33%] 78s pecan/tests/test_base.py::TestFileTypeExtensions::test_unknown_file_extension PASSED [ 34%] 78s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_accept_header_missing PASSED [ 34%] 78s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_discarded_accept_parameters PASSED [ 34%] 78s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_file_extension_has_higher_precedence PASSED [ 34%] 78s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_missing_accept PASSED [ 34%] 78s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_not_acceptable PASSED [ 35%] 78s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_quality PASSED [ 35%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical PASSED [ 35%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical_no_trailing_slash PASSED [ 35%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_broken_clients PASSED [ 35%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_index PASSED [ 35%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_posts_fail PASSED [ 36%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_root PASSED [ 36%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_redirect PASSED [ 36%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_with_trailing PASSED [ 36%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_with_args PASSED [ 36%] 78s pecan/tests/test_base.py::TestCanonicalRouting::test_with_query_string PASSED [ 37%] 78s pecan/tests/test_base.py::TestNonCanonical::test_app_wrap PASSED [ 37%] 78s pecan/tests/test_base.py::TestNonCanonical::test_index PASSED [ 37%] 78s pecan/tests/test_base.py::TestNonCanonical::test_proxy PASSED [ 37%] 78s pecan/tests/test_base.py::TestNonCanonical::test_sub_controller_with_trailing PASSED [ 37%] 78s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller PASSED [ 37%] 78s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller_with_kwargs PASSED [ 38%] 78s pecan/tests/test_base.py::TestLogging::test_logging_setup PASSED [ 38%] 78s pecan/tests/test_base.py::TestLogging::test_logging_setup_with_config_obj PASSED [ 38%] 78s pecan/tests/test_base.py::TestEngines::test_custom_renderer PASSED [ 38%] 78s pecan/tests/test_base.py::TestEngines::test_default_json_renderer PASSED [ 38%] 78s pecan/tests/test_base.py::TestEngines::test_default_json_renderer_with_explicit_content_type PASSED [ 39%] 78s pecan/tests/test_base.py::TestEngines::test_jinja PASSED [ 39%] 78s pecan/tests/test_base.py::TestEngines::test_json PASSED [ 39%] 78s pecan/tests/test_base.py::TestEngines::test_kajiki PASSED [ 39%] 78s pecan/tests/test_base.py::TestEngines::test_override_template PASSED [ 39%] 78s pecan/tests/test_base.py::TestEngines::test_render PASSED [ 40%] 78s pecan/tests/test_base.py::TestEngines::test_renderer_not_found PASSED [ 40%] 78s pecan/tests/test_base.py::TestDeprecatedRouteMethod::test_required_argument PASSED [ 40%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_alternate_route PASSED [ 40%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes PASSED [ 40%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes_in_subclass PASSED [ 40%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_on_index PASSED [ 41%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_default PASSED [ 41%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_generic_controllers PASSED [ 41%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_lookup PASSED [ 41%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_route PASSED [ 41%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_attribute_conflict PASSED [ 42%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_generic_controllers PASSED [ 42%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_invalid_route_arguments PASSED [ 42%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route PASSED [ 42%] 78s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route_conflict PASSED [ 42%] 78s pecan/tests/test_commands.py::TestCommandManager::test_commands PASSED [ 42%] 78s pecan/tests/test_commands.py::TestCommandRunner::test_commands PASSED [ 43%] 78s pecan/tests/test_commands.py::TestCommandRunner::test_run PASSED [ 43%] 78s pecan/tests/test_commands.py::TestCreateCommand::test_run PASSED [ 43%] 78s pecan/tests/test_conf.py::TestConf::test_config_bad_key PASSED [ 43%] 78s pecan/tests/test_conf.py::TestConf::test_config_dir PASSED [ 43%] 78s pecan/tests/test_conf.py::TestConf::test_config_from_dict PASSED [ 44%] 78s pecan/tests/test_conf.py::TestConf::test_config_from_file PASSED [ 44%] 78s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key PASSED [ 44%] 78s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key_return_default PASSED [ 44%] 78s pecan/tests/test_conf.py::TestConf::test_config_get_valid_key PASSED [ 44%] 78s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids PASSED [ 45%] 78s pecan/tests/test_conf.py::TestConf::test_config_missing_file PASSED [ 45%] 78s pecan/tests/test_conf.py::TestConf::test_config_missing_file_on_path PASSED [ 45%] 78s pecan/tests/test_conf.py::TestConf::test_config_repr PASSED [ 45%] 78s pecan/tests/test_conf.py::TestConf::test_config_to_dict PASSED [ 45%] 78s pecan/tests/test_conf.py::TestConf::test_config_to_dict_nested PASSED [ 45%] 78s pecan/tests/test_conf.py::TestConf::test_config_to_dict_prefixed PASSED [ 46%] 78s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import PASSED [ 46%] 78s pecan/tests/test_conf.py::TestConf::test_config_with_syntax_error PASSED [ 46%] 78s pecan/tests/test_conf.py::TestConf::test_update_config_fail_identifier PASSED [ 46%] 78s pecan/tests/test_conf.py::TestConf::test_update_config_fail_message PASSED [ 46%] 78s pecan/tests/test_conf.py::TestConf::test_update_config_with_dict PASSED [ 47%] 78s pecan/tests/test_conf.py::TestConf::test_update_force_dict PASSED [ 47%] 78s pecan/tests/test_conf.py::TestConf::test_update_set_config PASSED [ 47%] 78s pecan/tests/test_conf.py::TestConf::test_update_set_default_config PASSED [ 47%] 78s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_dict PASSED [ 47%] 78s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file PASSED [ 47%] 78s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_dict PASSED [ 48%] 78s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file PASSED [ 48%] 78s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_none_type PASSED [ 48%] 78s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_to_dir PASSED [ 48%] 78s pecan/tests/test_conf.py::TestConfFromEnv::test_invalid_path PASSED [ 48%] 78s pecan/tests/test_conf.py::TestConfFromEnv::test_is_not_set PASSED [ 49%] 78s pecan/tests/test_conf.py::TestConfFromEnv::test_return_valid_path PASSED [ 49%] 78s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_changed PASSED [ 49%] 78s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_default PASSED [ 49%] 78s pecan/tests/test_generic.py::TestGeneric::test_generic_allow_header PASSED [ 49%] 78s pecan/tests/test_generic.py::TestGeneric::test_nested_generic PASSED [ 50%] 78s pecan/tests/test_generic.py::TestGeneric::test_simple_generic PASSED [ 50%] 78s pecan/tests/test_generic.py::TestGenericWithSpecialMethods::test_generics_not_allowed PASSED [ 50%] 78s pecan/tests/test_hooks.py::TestHooks::test_basic_isolated_hook PASSED [ 50%] 78s pecan/tests/test_hooks.py::TestHooks::test_basic_multi_hook PASSED [ 50%] 78s pecan/tests/test_hooks.py::TestHooks::test_basic_single_hook PASSED [ 50%] 78s pecan/tests/test_hooks.py::TestHooks::test_internal_redirect_with_after_hook PASSED [ 51%] 78s pecan/tests/test_hooks.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 51%] 78s pecan/tests/test_hooks.py::TestHooks::test_mixin_hooks PASSED [ 51%] 78s pecan/tests/test_hooks.py::TestHooks::test_on_error_response_hook PASSED [ 51%] 78s pecan/tests/test_hooks.py::TestHooks::test_partial_hooks PASSED [ 51%] 78s pecan/tests/test_hooks.py::TestHooks::test_prioritized_hooks PASSED [ 52%] 78s pecan/tests/test_hooks.py::TestStateAccess::test_mixed_args PASSED [ 52%] 78s pecan/tests/test_hooks.py::TestStateAccess::test_no_args PASSED [ 52%] 78s pecan/tests/test_hooks.py::TestStateAccess::test_single_arg PASSED [ 52%] 78s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw PASSED [ 52%] 78s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw_post PASSED [ 52%] 78s pecan/tests/test_hooks.py::TestStateAccess::test_single_vararg PASSED [ 53%] 78s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_mixed_args PASSED [ 53%] 78s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_no_args PASSED [ 53%] 78s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_arg PASSED [ 53%] 78s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw PASSED [ 53%] 78s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw_post PASSED [ 54%] 78s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_vararg PASSED [ 54%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete PASSED [ 54%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_kwargs PASSED [ 54%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_method_argument PASSED [ 54%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_varargs PASSED [ 55%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all PASSED [ 55%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all_with_kwargs PASSED [ 55%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one PASSED [ 55%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_kwargs PASSED [ 55%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_varargs PASSED [ 55%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post PASSED [ 56%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_invalid_method_kwarg PASSED [ 56%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_kwargs PASSED [ 56%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_varargs PASSED [ 56%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put PASSED [ 56%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_kwargs PASSED [ 57%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_method_argument PASSED [ 57%] 78s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_varargs PASSED [ 57%] 78s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook PASSED [ 57%] 78s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_after_actions PASSED [ 57%] 78s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_broken_hook PASSED [ 57%] 78s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_class_decorator PASSED [ 58%] 78s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_decorator PASSED [ 58%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_bad_response_from_app PASSED [ 58%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_basic_single_default_hook PASSED [ 58%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_deal_with_pecan_configs PASSED [ 58%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_hook_formatting PASSED [ 59%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_item_not_in_defaults PASSED [ 59%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_blacklist_item PASSED [ 59%] 78s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_item PASSED [ 59%] 78s pecan/tests/test_hooks.py::TestRestControllerWithHooks::test_restcontroller_with_hooks PASSED [ 59%] 78s pecan/tests/test_jsonify.py::test_simple_rule PASSED [ 60%] 78s pecan/tests/test_jsonify.py::TestJsonify::test_simple_jsonify PASSED [ 60%] 78s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_datetime PASSED [ 60%] 78s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_decimal PASSED [ 60%] 78s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_fallback_to_builtin_encoder PASSED [ 60%] 78s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_json_callable PASSED [ 60%] 78s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_multidict PASSED [ 61%] 78s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_result_proxy PASSED [ 61%] 78s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_row_proxy PASSED [ 61%] 78s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_sa_object PASSED [ 61%] 78s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_locals_are_not_used PASSED [ 61%] 78s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning PASSED [ 62%] 78s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic PASSED [ 62%] 78s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic_delegate PASSED [ 62%] 78s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_empty_root PASSED [ 62%] 78s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index PASSED [ 62%] 78s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index_html PASSED [ 62%] 78s pecan/tests/test_no_thread_locals.py::TestManualResponse::test_manual_response PASSED [ 63%] 78s pecan/tests/test_no_thread_locals.py::TestDispatch::test_index PASSED [ 63%] 78s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level PASSED [ 63%] 78s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level_with_trailing PASSED [ 63%] 78s pecan/tests/test_no_thread_locals.py::TestDispatch::test_three_levels PASSED [ 63%] 78s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels PASSED [ 64%] 78s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels_with_trailing PASSED [ 64%] 78s pecan/tests/test_no_thread_locals.py::TestLookups::test_index PASSED [ 64%] 78s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup PASSED [ 64%] 78s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_method PASSED [ 64%] 78s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 65%] 78s pecan/tests/test_no_thread_locals.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 65%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 65%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 65%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_explicit_kwargs PASSED [ 65%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument PASSED [ 65%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 66%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_kwargs_from_root PASSED [ 66%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_many_remainders PASSED [ 66%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 66%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 66%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_kwargs PASSED [ 67%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional PASSED [ 67%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 67%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 67%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 67%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 67%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 68%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 68%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 68%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 68%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 68%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 69%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 69%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 69%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 69%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 69%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 70%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 70%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 70%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 70%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 70%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 70%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 71%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 71%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 71%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 71%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 71%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 72%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 72%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 72%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 72%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_args PASSED [ 72%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 72%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 73%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 73%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 73%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 73%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 73%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 74%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_no_remainder PASSED [ 74%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_one_remainder PASSED [ 74%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg PASSED [ 74%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 74%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 75%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 75%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 75%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 75%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 75%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 75%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 76%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 76%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders PASSED [ 76%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 76%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder PASSED [ 76%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 77%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_three_remainders PASSED [ 77%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 77%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 77%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_required_argument PASSED [ 77%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument PASSED [ 77%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 78%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_arguments PASSED [ 78%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_remainders PASSED [ 78%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 78%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all PASSED [ 78%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 79%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 79%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args PASSED [ 79%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 79%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 79%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_kwargs PASSED [ 80%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed PASSED [ 80%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 80%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post PASSED [ 80%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_mixed PASSED [ 80%] 78s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 80%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_action PASSED [ 81%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type PASSED [ 81%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type_with_method_parameter PASSED [ 81%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_method PASSED [ 81%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter PASSED [ 81%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter_and_post PASSED [ 82%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_all PASSED [ 82%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_delete PASSED [ 82%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_one PASSED [ 82%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_invalid_custom_action PASSED [ 82%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_action PASSED [ 82%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_nested_action PASSED [ 83%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_with_trailing_slash PASSED [ 83%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_without_trailing_slash PASSED [ 83%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_post PASSED [ 83%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_options PASSED [ 83%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_options_with_method_parameter PASSED [ 84%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action PASSED [ 84%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action_with_method_parameter PASSED [ 84%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_post PASSED [ 84%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_put PASSED [ 84%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_get PASSED [ 85%] 78s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_post PASSED [ 85%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_isolated_hook PASSED [ 85%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_multi_hook PASSED [ 85%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_single_hook PASSED [ 85%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 85%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_on_error_response_hook PASSED [ 86%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_partial_hooks PASSED [ 86%] 78s pecan/tests/test_no_thread_locals.py::TestHooks::test_prioritized_hooks PASSED [ 86%] 78s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_default PASSED [ 86%] 78s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_extra_args PASSED [ 86%] 78s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_method PASSED [ 87%] 78s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_path PASSED [ 87%] 78s pecan/tests/test_rest.py::TestRestController::test_405_with_lookup PASSED [ 87%] 78s pecan/tests/test_rest.py::TestRestController::test_bad_rest PASSED [ 87%] 78s pecan/tests/test_rest.py::TestRestController::test_basic_rest PASSED [ 87%] 78s pecan/tests/test_rest.py::TestRestController::test_complicated_nested_rest PASSED [ 87%] 78s pecan/tests/test_rest.py::TestRestController::test_custom_delete PASSED [ 88%] 78s pecan/tests/test_rest.py::TestRestController::test_custom_with_trailing_slash PASSED [ 88%] 78s pecan/tests/test_rest.py::TestRestController::test_dynamic_rest_lookup PASSED [ 88%] 78s pecan/tests/test_rest.py::TestRestController::test_get_with_var_args PASSED [ 88%] 78s pecan/tests/test_rest.py::TestRestController::test_getall_with_lookup PASSED [ 88%] 78s pecan/tests/test_rest.py::TestRestController::test_getall_with_trailing_slash PASSED [ 89%] 78s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_delete PASSED [ 89%] 78s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_get PASSED [ 89%] 78s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_post PASSED [ 89%] 78s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_put PASSED [ 89%] 78s pecan/tests/test_rest.py::TestRestController::test_nested_get_all PASSED [ 90%] 78s pecan/tests/test_rest.py::TestRestController::test_nested_get_all_with_lookup PASSED [ 90%] 78s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_default PASSED [ 90%] 78s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_lookup PASSED [ 90%] 78s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_missing_intermediate_id PASSED [ 90%] 78s pecan/tests/test_rest.py::TestRestController::test_post_with_kwargs_only PASSED [ 90%] 78s pecan/tests/test_rest.py::TestRestController::test_proper_allow_header_multiple_gets PASSED [ 91%] 78s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_endpoint PASSED [ 91%] 78s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_uri PASSED [ 91%] 78s pecan/tests/test_rest.py::TestRestController::test_simple_nested_rest PASSED [ 91%] 78s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest PASSED [ 91%] 79s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest_with_overwrites PASSED [ 92%] 79s pecan/tests/test_rest.py::TestExplicitRoute::test_alternate_route PASSED [ 92%] 79s pecan/tests/test_scaffolds.py::TestPecanScaffold::test_normalize_pkg_name PASSED [ 92%] 79s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir PASSED [ 92%] 79s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_file_content_substitution PASSED [ 92%] 79s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_filename_substitution PASSED [ 92%] 79s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_already_exists PASSED [ 93%] 79s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_levels_deep PASSED [ 93%] 79s pecan/tests/test_secure.py::TestSecure::test_secure_attribute PASSED [ 93%] 79s pecan/tests/test_secure.py::TestSecure::test_secure_obj_only_failure PASSED [ 93%] 79s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller PASSED [ 93%] 79s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_lambda PASSED [ 94%] 79s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute PASSED [ 94%] 79s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute_with_unlocked PASSED [ 94%] 79s pecan/tests/test_secure.py::TestSecure::test_simple_secure PASSED [ 94%] 79s pecan/tests/test_secure.py::TestSecure::test_state_attribute PASSED [ 94%] 79s pecan/tests/test_secure.py::TestSecure::test_unlocked_attribute PASSED [ 95%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_cyclical_protection PASSED [ 95%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_failure PASSED [ 95%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_success PASSED [ 95%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_layered_protection PASSED [ 95%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_lookup_to_wrapped_attribute_on_self PASSED [ 95%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_mixed_protection PASSED [ 96%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_protected_lookup PASSED [ 96%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secret_through_lookup PASSED [ 96%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secured_notfound_lookup PASSED [ 96%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_sub_of_both_not_secret PASSED [ 96%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_attribute_in_insecure PASSED [ 97%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_lookup PASSED [ 97%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_failure PASSED [ 97%] 79s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_success PASSED [ 97%] 79s pecan/tests/test_secure.py::SecureControllerSharedPermissionsRegression::test_inherited_security PASSED [ 97%] 79s pecan/tests/test_templating.py::TestTemplate::test_available PASSED [ 97%] 79s pecan/tests/test_templating.py::TestTemplate::test_create_bad PASSED [ 98%] 79s pecan/tests/test_templating.py::TestTemplate::test_extra_vars PASSED [ 98%] 79s pecan/tests/test_templating.py::TestTemplate::test_update_extra_vars PASSED [ 98%] 79s pecan/tests/test_templating.py::TestTemplateLineFormat::test_format_line_context PASSED [ 98%] 79s pecan/tests/test_util.py::TestArgSpec::test_class_based_decorator PASSED [ 98%] 79s pecan/tests/test_util.py::TestArgSpec::test_decorator_with_args PASSED [ 99%] 79s pecan/tests/test_util.py::TestArgSpec::test_multiple_decorators PASSED [ 99%] 79s pecan/tests/test_util.py::TestArgSpec::test_nested_cells PASSED [ 99%] 79s pecan/tests/test_util.py::TestArgSpec::test_no_decorator PASSED [ 99%] 79s pecan/tests/test_util.py::TestArgSpec::test_simple_decorator PASSED [ 99%] 79s pecan/tests/test_util.py::TestArgSpec::test_simple_wrapper PASSED [100%] 79s 79s =============================== warnings summary =============================== 79s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed 79s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found 79s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over 79s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files 79s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file 79s /tmp/autopkgtest.S5v0Um/build.FKt/src/pecan/middleware/static.py:118: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). 79s datetime.utcfromtimestamp(os.path.getmtime(filename)), 79s 79s pecan/tests/test_commands.py::TestCommandManager::test_commands 79s /tmp/autopkgtest.S5v0Um/build.FKt/src/pecan/commands/base.py:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 79s import pkg_resources 79s 79s pecan/tests/test_conf.py::TestConf::test_config_from_file 79s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids 79s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import 79s pecan/tests/test_conf.py::TestConf::test_update_force_dict 79s pecan/tests/test_conf.py::TestConf::test_update_set_config 79s pecan/tests/test_conf.py::TestConf::test_update_set_default_config 79s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file 79s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file 79s :533: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead 79s 79s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 79s ================ 540 passed, 3 deselected, 14 warnings in 2.12s ================ 79s ============================= test session starts ============================== 79s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.13 79s cachedir: .pytest_cache 79s rootdir: /tmp/autopkgtest.S5v0Um/build.FKt/src 79s configfile: setup.cfg 79s plugins: typeguard-4.4.2 80s collecting ... collected 543 items / 3 deselected / 540 selected 80s 80s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_endpoint_with_query_string PASSED [ 0%] 80s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_with_recursion_loop PASSED [ 0%] 80s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_hit_error_page PASSED [ 0%] 80s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_middleware_routes_to_404_message PASSED [ 0%] 80s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_original_exception PASSED [ 0%] 80s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequestException PASSED [ 1%] 80s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_environ PASSED [ 1%] 80s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_factory PASSED [ 1%] 80s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url PASSED [ 1%] 80s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url_with_params PASSED [ 1%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_date_dumping_on_unix_timestamps PASSED [ 2%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed PASSED [ 2%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found PASSED [ 2%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over PASSED [ 2%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files PASSED [ 2%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_no_file_found_causes_passthrough PASSED [ 2%] 80s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file PASSED [ 3%] 80s pecan/tests/test_base.py::TestAppRoot::test_controller_lookup_by_string_path PASSED [ 3%] 80s pecan/tests/test_base.py::TestEmptyContent::test_empty_body PASSED [ 3%] 80s pecan/tests/test_base.py::TestEmptyContent::test_empty_index PASSED [ 3%] 80s pecan/tests/test_base.py::TestEmptyContent::test_empty_text PASSED [ 3%] 80s pecan/tests/test_base.py::TestEmptyContent::test_explicit_body PASSED [ 4%] 80s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json PASSED [ 4%] 80s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json_body PASSED [ 4%] 80s pecan/tests/test_base.py::TestEmptyContent::test_explicit_text PASSED [ 4%] 80s pecan/tests/test_base.py::TestEmptyContent::test_index_with_non_unicode PASSED [ 4%] 80s pecan/tests/test_base.py::TestAppIterFile::test_body_generator PASSED [ 5%] 80s pecan/tests/test_base.py::TestAppIterFile::test_empty_body_generator PASSED [ 5%] 80s pecan/tests/test_base.py::TestInvalidURLEncoding::test_rest_with_non_utf_8_body PASSED [ 5%] 80s pecan/tests/test_base.py::TestIndexRouting::test_empty_root PASSED [ 5%] 80s pecan/tests/test_base.py::TestIndexRouting::test_index PASSED [ 5%] 80s pecan/tests/test_base.py::TestIndexRouting::test_index_html PASSED [ 5%] 80s pecan/tests/test_base.py::TestObjectDispatch::test_index PASSED [ 6%] 80s pecan/tests/test_base.py::TestObjectDispatch::test_one_level PASSED [ 6%] 80s pecan/tests/test_base.py::TestObjectDispatch::test_one_level_with_trailing PASSED [ 6%] 80s pecan/tests/test_base.py::TestObjectDispatch::test_three_levels PASSED [ 6%] 80s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels PASSED [ 6%] 80s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels_with_trailing PASSED [ 7%] 80s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_child PASSED [ 7%] 80s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_methods PASSED [ 7%] 80s pecan/tests/test_base.py::TestLookups::test_index PASSED [ 7%] 80s pecan/tests/test_base.py::TestLookups::test_lookup PASSED [ 7%] 80s pecan/tests/test_base.py::TestLookups::test_lookup_with_method PASSED [ 7%] 80s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 8%] 80s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_return PASSED [ 8%] 80s pecan/tests/test_base.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 8%] 80s pecan/tests/test_base.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 8%] 80s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_GET PASSED [ 8%] 80s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST PASSED [ 9%] 80s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed PASSED [ 9%] 80s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed_json PASSED [ 9%] 80s pecan/tests/test_base.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 9%] 80s pecan/tests/test_base.py::TestControllerArguments::test_explicit_json_kwargs PASSED [ 9%] 80s pecan/tests/test_base.py::TestControllerArguments::test_explicit_kwargs PASSED [ 10%] 80s pecan/tests/test_base.py::TestControllerArguments::test_json_kwargs_from_root PASSED [ 10%] 80s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument PASSED [ 10%] 80s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_plus PASSED [ 10%] 80s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 10%] 80s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_plus PASSED [ 10%] 80s pecan/tests/test_base.py::TestControllerArguments::test_kwargs_from_root PASSED [ 11%] 80s pecan/tests/test_base.py::TestControllerArguments::test_many_remainders PASSED [ 11%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 11%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 11%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_kwargs PASSED [ 11%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional PASSED [ 12%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 12%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 12%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 12%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 12%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 12%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 13%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_json_kwargs PASSED [ 13%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 13%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 13%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 13%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 14%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 14%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 14%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 14%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_json_kwargs PASSED [ 14%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 15%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 15%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 15%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 15%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 15%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 15%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_json_kwargs PASSED [ 16%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 16%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 16%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 16%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 16%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 17%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 17%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_json_kwargs PASSED [ 17%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 17%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 17%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 17%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 18%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_args PASSED [ 18%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 18%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 18%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 18%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 19%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 19%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_json_kwargs PASSED [ 19%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 19%] 80s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 19%] 80s pecan/tests/test_base.py::TestControllerArguments::test_no_remainder PASSED [ 20%] 80s pecan/tests/test_base.py::TestControllerArguments::test_one_remainder PASSED [ 20%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg PASSED [ 20%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_json_kwargs PASSED [ 20%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 20%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 20%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_json_kwargs PASSED [ 21%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 21%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 21%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 21%] 80s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 21%] 80s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_json_kwargs PASSED [ 22%] 80s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 22%] 80s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 22%] 80s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_json_kwargs PASSED [ 22%] 80s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 22%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_empty_remainder_with_json_kwargs PASSED [ 22%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders PASSED [ 23%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_json_kwargs PASSED [ 23%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 23%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder PASSED [ 23%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_json_kwargs PASSED [ 23%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 24%] 80s pecan/tests/test_base.py::TestControllerArguments::test_post_three_remainders PASSED [ 24%] 80s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 24%] 80s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 24%] 80s pecan/tests/test_base.py::TestControllerArguments::test_required_argument PASSED [ 24%] 80s pecan/tests/test_base.py::TestControllerArguments::test_single_argument PASSED [ 25%] 80s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_plus PASSED [ 25%] 80s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 25%] 80s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_plus PASSED [ 25%] 80s pecan/tests/test_base.py::TestControllerArguments::test_staticmethod PASSED [ 25%] 80s pecan/tests/test_base.py::TestControllerArguments::test_two_arguments PASSED [ 25%] 80s pecan/tests/test_base.py::TestControllerArguments::test_two_remainders PASSED [ 26%] 80s pecan/tests/test_base.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 26%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_all PASSED [ 26%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 26%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 26%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_args PASSED [ 27%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 27%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_json_kwargs PASSED [ 27%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 27%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_kwargs PASSED [ 27%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed PASSED [ 27%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 28%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_post PASSED [ 28%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed PASSED [ 28%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed_with_json PASSED [ 28%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_json_kwargs PASSED [ 28%] 80s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 29%] 80s pecan/tests/test_base.py::TestDefaultErrorRendering::test_html_error PASSED [ 29%] 80s pecan/tests/test_base.py::TestDefaultErrorRendering::test_json_error PASSED [ 29%] 80s pecan/tests/test_base.py::TestDefaultErrorRendering::test_plain_error PASSED [ 29%] 80s pecan/tests/test_base.py::TestAbort::test_abort PASSED [ 29%] 80s pecan/tests/test_base.py::TestAbort::test_abort_keeps_traceback PASSED [ 30%] 80s pecan/tests/test_base.py::TestAbort::test_abort_with_detail PASSED [ 30%] 80s pecan/tests/test_base.py::TestScriptName::test_handle_script_name PASSED [ 30%] 80s pecan/tests/test_base.py::TestRedirect::test_index PASSED [ 30%] 80s pecan/tests/test_base.py::TestRedirect::test_internal PASSED [ 30%] 80s pecan/tests/test_base.py::TestRedirect::test_internal_with_301 PASSED [ 30%] 80s pecan/tests/test_base.py::TestRedirect::test_permanent_redirect PASSED [ 31%] 80s pecan/tests/test_base.py::TestRedirect::test_x_forward_proto PASSED [ 31%] 80s pecan/tests/test_base.py::TestInternalRedirectContext::test_context_does_not_bleed PASSED [ 31%] 80s pecan/tests/test_base.py::TestInternalRedirectContext::test_internal_with_request_context PASSED [ 31%] 80s pecan/tests/test_base.py::TestStreamedResponse::test_streaming_response PASSED [ 31%] 80s pecan/tests/test_base.py::TestManualResponse::test_manual_response PASSED [ 32%] 80s pecan/tests/test_base.py::TestCustomResponseandRequest::test_custom_objects PASSED [ 32%] 80s pecan/tests/test_base.py::TestThreadLocalState::test_request_state_cleanup PASSED [ 32%] 80s pecan/tests/test_base.py::TestThreadLocalState::test_thread_local_dir PASSED [ 32%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_bad_content_type PASSED [ 32%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_content_type_guessing_disabled PASSED [ 32%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_guessing_disabled PASSED [ 33%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_hidden_file PASSED [ 33%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_html_extension PASSED [ 33%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_image_extension PASSED [ 33%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_multi_dot_extension PASSED [ 33%] 80s pecan/tests/test_base.py::TestFileTypeExtensions::test_unknown_file_extension PASSED [ 34%] 80s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_accept_header_missing PASSED [ 34%] 80s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_discarded_accept_parameters PASSED [ 34%] 80s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_file_extension_has_higher_precedence PASSED [ 34%] 80s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_missing_accept PASSED [ 34%] 80s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_not_acceptable PASSED [ 35%] 80s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_quality PASSED [ 35%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical PASSED [ 35%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical_no_trailing_slash PASSED [ 35%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_broken_clients PASSED [ 35%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_index PASSED [ 35%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_posts_fail PASSED [ 36%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_root PASSED [ 36%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_redirect PASSED [ 36%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_with_trailing PASSED [ 36%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_with_args PASSED [ 36%] 80s pecan/tests/test_base.py::TestCanonicalRouting::test_with_query_string PASSED [ 37%] 80s pecan/tests/test_base.py::TestNonCanonical::test_app_wrap PASSED [ 37%] 80s pecan/tests/test_base.py::TestNonCanonical::test_index PASSED [ 37%] 80s pecan/tests/test_base.py::TestNonCanonical::test_proxy PASSED [ 37%] 80s pecan/tests/test_base.py::TestNonCanonical::test_sub_controller_with_trailing PASSED [ 37%] 80s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller PASSED [ 37%] 80s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller_with_kwargs PASSED [ 38%] 80s pecan/tests/test_base.py::TestLogging::test_logging_setup PASSED [ 38%] 80s pecan/tests/test_base.py::TestLogging::test_logging_setup_with_config_obj PASSED [ 38%] 80s pecan/tests/test_base.py::TestEngines::test_custom_renderer PASSED [ 38%] 80s pecan/tests/test_base.py::TestEngines::test_default_json_renderer PASSED [ 38%] 80s pecan/tests/test_base.py::TestEngines::test_default_json_renderer_with_explicit_content_type PASSED [ 39%] 80s pecan/tests/test_base.py::TestEngines::test_jinja PASSED [ 39%] 80s pecan/tests/test_base.py::TestEngines::test_json PASSED [ 39%] 80s pecan/tests/test_base.py::TestEngines::test_kajiki PASSED [ 39%] 80s pecan/tests/test_base.py::TestEngines::test_override_template PASSED [ 39%] 80s pecan/tests/test_base.py::TestEngines::test_render PASSED [ 40%] 80s pecan/tests/test_base.py::TestEngines::test_renderer_not_found PASSED [ 40%] 80s pecan/tests/test_base.py::TestDeprecatedRouteMethod::test_required_argument PASSED [ 40%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_alternate_route PASSED [ 40%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes PASSED [ 40%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes_in_subclass PASSED [ 40%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_on_index PASSED [ 41%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_default PASSED [ 41%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_generic_controllers PASSED [ 41%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_lookup PASSED [ 41%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_route PASSED [ 41%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_attribute_conflict PASSED [ 42%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_generic_controllers PASSED [ 42%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_invalid_route_arguments PASSED [ 42%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route PASSED [ 42%] 80s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route_conflict PASSED [ 42%] 80s pecan/tests/test_commands.py::TestCommandManager::test_commands PASSED [ 42%] 80s pecan/tests/test_commands.py::TestCommandRunner::test_commands PASSED [ 43%] 80s pecan/tests/test_commands.py::TestCommandRunner::test_run PASSED [ 43%] 80s pecan/tests/test_commands.py::TestCreateCommand::test_run PASSED [ 43%] 80s pecan/tests/test_conf.py::TestConf::test_config_bad_key PASSED [ 43%] 80s pecan/tests/test_conf.py::TestConf::test_config_dir PASSED [ 43%] 80s pecan/tests/test_conf.py::TestConf::test_config_from_dict PASSED [ 44%] 80s pecan/tests/test_conf.py::TestConf::test_config_from_file PASSED [ 44%] 80s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key PASSED [ 44%] 80s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key_return_default PASSED [ 44%] 80s pecan/tests/test_conf.py::TestConf::test_config_get_valid_key PASSED [ 44%] 80s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids PASSED [ 45%] 80s pecan/tests/test_conf.py::TestConf::test_config_missing_file PASSED [ 45%] 80s pecan/tests/test_conf.py::TestConf::test_config_missing_file_on_path PASSED [ 45%] 80s pecan/tests/test_conf.py::TestConf::test_config_repr PASSED [ 45%] 80s pecan/tests/test_conf.py::TestConf::test_config_to_dict PASSED [ 45%] 80s pecan/tests/test_conf.py::TestConf::test_config_to_dict_nested PASSED [ 45%] 80s pecan/tests/test_conf.py::TestConf::test_config_to_dict_prefixed PASSED [ 46%] 80s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import PASSED [ 46%] 80s pecan/tests/test_conf.py::TestConf::test_config_with_syntax_error PASSED [ 46%] 80s pecan/tests/test_conf.py::TestConf::test_update_config_fail_identifier PASSED [ 46%] 80s pecan/tests/test_conf.py::TestConf::test_update_config_fail_message PASSED [ 46%] 80s pecan/tests/test_conf.py::TestConf::test_update_config_with_dict PASSED [ 47%] 80s pecan/tests/test_conf.py::TestConf::test_update_force_dict PASSED [ 47%] 80s pecan/tests/test_conf.py::TestConf::test_update_set_config PASSED [ 47%] 80s pecan/tests/test_conf.py::TestConf::test_update_set_default_config PASSED [ 47%] 80s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_dict PASSED [ 47%] 80s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file PASSED [ 47%] 80s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_dict PASSED [ 48%] 80s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file PASSED [ 48%] 80s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_none_type PASSED [ 48%] 80s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_to_dir PASSED [ 48%] 80s pecan/tests/test_conf.py::TestConfFromEnv::test_invalid_path PASSED [ 48%] 80s pecan/tests/test_conf.py::TestConfFromEnv::test_is_not_set PASSED [ 49%] 80s pecan/tests/test_conf.py::TestConfFromEnv::test_return_valid_path PASSED [ 49%] 80s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_changed PASSED [ 49%] 80s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_default PASSED [ 49%] 80s pecan/tests/test_generic.py::TestGeneric::test_generic_allow_header PASSED [ 49%] 80s pecan/tests/test_generic.py::TestGeneric::test_nested_generic PASSED [ 50%] 80s pecan/tests/test_generic.py::TestGeneric::test_simple_generic PASSED [ 50%] 80s pecan/tests/test_generic.py::TestGenericWithSpecialMethods::test_generics_not_allowed PASSED [ 50%] 80s pecan/tests/test_hooks.py::TestHooks::test_basic_isolated_hook PASSED [ 50%] 80s pecan/tests/test_hooks.py::TestHooks::test_basic_multi_hook PASSED [ 50%] 80s pecan/tests/test_hooks.py::TestHooks::test_basic_single_hook PASSED [ 50%] 80s pecan/tests/test_hooks.py::TestHooks::test_internal_redirect_with_after_hook PASSED [ 51%] 80s pecan/tests/test_hooks.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 51%] 80s pecan/tests/test_hooks.py::TestHooks::test_mixin_hooks PASSED [ 51%] 80s pecan/tests/test_hooks.py::TestHooks::test_on_error_response_hook PASSED [ 51%] 80s pecan/tests/test_hooks.py::TestHooks::test_partial_hooks PASSED [ 51%] 80s pecan/tests/test_hooks.py::TestHooks::test_prioritized_hooks PASSED [ 52%] 80s pecan/tests/test_hooks.py::TestStateAccess::test_mixed_args PASSED [ 52%] 80s pecan/tests/test_hooks.py::TestStateAccess::test_no_args PASSED [ 52%] 80s pecan/tests/test_hooks.py::TestStateAccess::test_single_arg PASSED [ 52%] 80s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw PASSED [ 52%] 80s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw_post PASSED [ 52%] 80s pecan/tests/test_hooks.py::TestStateAccess::test_single_vararg PASSED [ 53%] 80s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_mixed_args PASSED [ 53%] 80s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_no_args PASSED [ 53%] 80s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_arg PASSED [ 53%] 80s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw PASSED [ 53%] 80s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw_post PASSED [ 54%] 80s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_vararg PASSED [ 54%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete PASSED [ 54%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_kwargs PASSED [ 54%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_method_argument PASSED [ 54%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_varargs PASSED [ 55%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all PASSED [ 55%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all_with_kwargs PASSED [ 55%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one PASSED [ 55%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_kwargs PASSED [ 55%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_varargs PASSED [ 55%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post PASSED [ 56%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_invalid_method_kwarg PASSED [ 56%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_kwargs PASSED [ 56%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_varargs PASSED [ 56%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put PASSED [ 56%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_kwargs PASSED [ 57%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_method_argument PASSED [ 57%] 80s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_varargs PASSED [ 57%] 80s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook PASSED [ 57%] 80s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_after_actions PASSED [ 57%] 80s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_broken_hook PASSED [ 57%] 80s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_class_decorator PASSED [ 58%] 80s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_decorator PASSED [ 58%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_bad_response_from_app PASSED [ 58%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_basic_single_default_hook PASSED [ 58%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_deal_with_pecan_configs PASSED [ 58%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_hook_formatting PASSED [ 59%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_item_not_in_defaults PASSED [ 59%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_blacklist_item PASSED [ 59%] 80s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_item PASSED [ 59%] 80s pecan/tests/test_hooks.py::TestRestControllerWithHooks::test_restcontroller_with_hooks PASSED [ 59%] 80s pecan/tests/test_jsonify.py::test_simple_rule PASSED [ 60%] 80s pecan/tests/test_jsonify.py::TestJsonify::test_simple_jsonify PASSED [ 60%] 80s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_datetime PASSED [ 60%] 80s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_decimal PASSED [ 60%] 80s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_fallback_to_builtin_encoder PASSED [ 60%] 80s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_json_callable PASSED [ 60%] 80s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_multidict PASSED [ 61%] 80s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_result_proxy PASSED [ 61%] 80s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_row_proxy PASSED [ 61%] 80s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_sa_object PASSED [ 61%] 80s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_locals_are_not_used PASSED [ 61%] 80s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning PASSED [ 62%] 80s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic PASSED [ 62%] 80s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic_delegate PASSED [ 62%] 80s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_empty_root PASSED [ 62%] 80s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index PASSED [ 62%] 80s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index_html PASSED [ 62%] 80s pecan/tests/test_no_thread_locals.py::TestManualResponse::test_manual_response PASSED [ 63%] 80s pecan/tests/test_no_thread_locals.py::TestDispatch::test_index PASSED [ 63%] 80s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level PASSED [ 63%] 80s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level_with_trailing PASSED [ 63%] 80s pecan/tests/test_no_thread_locals.py::TestDispatch::test_three_levels PASSED [ 63%] 80s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels PASSED [ 64%] 80s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels_with_trailing PASSED [ 64%] 80s pecan/tests/test_no_thread_locals.py::TestLookups::test_index PASSED [ 64%] 80s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup PASSED [ 64%] 80s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_method PASSED [ 64%] 80s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 65%] 80s pecan/tests/test_no_thread_locals.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 65%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 65%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 65%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_explicit_kwargs PASSED [ 65%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument PASSED [ 65%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 66%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_kwargs_from_root PASSED [ 66%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_many_remainders PASSED [ 66%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 66%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 66%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_kwargs PASSED [ 67%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional PASSED [ 67%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 67%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 67%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 67%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 67%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 68%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 68%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 68%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 68%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 68%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 69%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 69%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 69%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 69%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 69%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 70%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 70%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 70%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 70%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 70%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 70%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 71%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 71%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 71%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 71%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 71%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 72%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 72%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 72%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 72%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_args PASSED [ 72%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 72%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 73%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 73%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 73%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 73%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 73%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 74%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_no_remainder PASSED [ 74%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_one_remainder PASSED [ 74%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg PASSED [ 74%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 74%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 75%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 75%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 75%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 75%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 75%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 75%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 76%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 76%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders PASSED [ 76%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 76%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder PASSED [ 76%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 77%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_three_remainders PASSED [ 77%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 77%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 77%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_required_argument PASSED [ 77%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument PASSED [ 77%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 78%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_arguments PASSED [ 78%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_remainders PASSED [ 78%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 78%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all PASSED [ 78%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 79%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 79%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args PASSED [ 79%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 79%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 79%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_kwargs PASSED [ 80%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed PASSED [ 80%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 80%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post PASSED [ 80%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_mixed PASSED [ 80%] 80s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 80%] 80s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_action PASSED [ 81%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type PASSED [ 81%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type_with_method_parameter PASSED [ 81%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_method PASSED [ 81%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter PASSED [ 81%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter_and_post PASSED [ 82%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_all PASSED [ 82%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_delete PASSED [ 82%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_one PASSED [ 82%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_invalid_custom_action PASSED [ 82%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_action PASSED [ 82%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_nested_action PASSED [ 83%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_with_trailing_slash PASSED [ 83%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_without_trailing_slash PASSED [ 83%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_post PASSED [ 83%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_options PASSED [ 83%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_options_with_method_parameter PASSED [ 84%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action PASSED [ 84%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action_with_method_parameter PASSED [ 84%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_post PASSED [ 84%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_put PASSED [ 84%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_get PASSED [ 85%] 81s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_post PASSED [ 85%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_isolated_hook PASSED [ 85%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_multi_hook PASSED [ 85%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_single_hook PASSED [ 85%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 85%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_on_error_response_hook PASSED [ 86%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_partial_hooks PASSED [ 86%] 81s pecan/tests/test_no_thread_locals.py::TestHooks::test_prioritized_hooks PASSED [ 86%] 81s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_default PASSED [ 86%] 81s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_extra_args PASSED [ 86%] 81s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_method PASSED [ 87%] 81s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_path PASSED [ 87%] 81s pecan/tests/test_rest.py::TestRestController::test_405_with_lookup PASSED [ 87%] 81s pecan/tests/test_rest.py::TestRestController::test_bad_rest PASSED [ 87%] 81s pecan/tests/test_rest.py::TestRestController::test_basic_rest PASSED [ 87%] 81s pecan/tests/test_rest.py::TestRestController::test_complicated_nested_rest PASSED [ 87%] 81s pecan/tests/test_rest.py::TestRestController::test_custom_delete PASSED [ 88%] 81s pecan/tests/test_rest.py::TestRestController::test_custom_with_trailing_slash PASSED [ 88%] 81s pecan/tests/test_rest.py::TestRestController::test_dynamic_rest_lookup PASSED [ 88%] 81s pecan/tests/test_rest.py::TestRestController::test_get_with_var_args PASSED [ 88%] 81s pecan/tests/test_rest.py::TestRestController::test_getall_with_lookup PASSED [ 88%] 81s pecan/tests/test_rest.py::TestRestController::test_getall_with_trailing_slash PASSED [ 89%] 81s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_delete PASSED [ 89%] 81s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_get PASSED [ 89%] 81s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_post PASSED [ 89%] 81s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_put PASSED [ 89%] 81s pecan/tests/test_rest.py::TestRestController::test_nested_get_all PASSED [ 90%] 81s pecan/tests/test_rest.py::TestRestController::test_nested_get_all_with_lookup PASSED [ 90%] 81s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_default PASSED [ 90%] 81s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_lookup PASSED [ 90%] 81s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_missing_intermediate_id PASSED [ 90%] 81s pecan/tests/test_rest.py::TestRestController::test_post_with_kwargs_only PASSED [ 90%] 81s pecan/tests/test_rest.py::TestRestController::test_proper_allow_header_multiple_gets PASSED [ 91%] 81s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_endpoint PASSED [ 91%] 81s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_uri PASSED [ 91%] 81s pecan/tests/test_rest.py::TestRestController::test_simple_nested_rest PASSED [ 91%] 81s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest PASSED [ 91%] 81s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest_with_overwrites PASSED [ 92%] 81s pecan/tests/test_rest.py::TestExplicitRoute::test_alternate_route PASSED [ 92%] 81s pecan/tests/test_scaffolds.py::TestPecanScaffold::test_normalize_pkg_name PASSED [ 92%] 81s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir PASSED [ 92%] 81s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_file_content_substitution PASSED [ 92%] 81s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_filename_substitution PASSED [ 92%] 81s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_already_exists PASSED [ 93%] 81s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_levels_deep PASSED [ 93%] 81s pecan/tests/test_secure.py::TestSecure::test_secure_attribute PASSED [ 93%] 81s pecan/tests/test_secure.py::TestSecure::test_secure_obj_only_failure PASSED [ 93%] 81s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller PASSED [ 93%] 81s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_lambda PASSED [ 94%] 81s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute PASSED [ 94%] 81s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute_with_unlocked PASSED [ 94%] 81s pecan/tests/test_secure.py::TestSecure::test_simple_secure PASSED [ 94%] 81s pecan/tests/test_secure.py::TestSecure::test_state_attribute PASSED [ 94%] 81s pecan/tests/test_secure.py::TestSecure::test_unlocked_attribute PASSED [ 95%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_cyclical_protection PASSED [ 95%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_failure PASSED [ 95%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_success PASSED [ 95%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_layered_protection PASSED [ 95%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_lookup_to_wrapped_attribute_on_self PASSED [ 95%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_mixed_protection PASSED [ 96%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_protected_lookup PASSED [ 96%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secret_through_lookup PASSED [ 96%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secured_notfound_lookup PASSED [ 96%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_sub_of_both_not_secret PASSED [ 96%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_attribute_in_insecure PASSED [ 97%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_lookup PASSED [ 97%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_failure PASSED [ 97%] 81s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_success PASSED [ 97%] 81s pecan/tests/test_secure.py::SecureControllerSharedPermissionsRegression::test_inherited_security PASSED [ 97%] 81s pecan/tests/test_templating.py::TestTemplate::test_available PASSED [ 97%] 81s pecan/tests/test_templating.py::TestTemplate::test_create_bad PASSED [ 98%] 81s pecan/tests/test_templating.py::TestTemplate::test_extra_vars PASSED [ 98%] 81s pecan/tests/test_templating.py::TestTemplate::test_update_extra_vars PASSED [ 98%] 81s pecan/tests/test_templating.py::TestTemplateLineFormat::test_format_line_context PASSED [ 98%] 81s pecan/tests/test_util.py::TestArgSpec::test_class_based_decorator PASSED [ 98%] 81s pecan/tests/test_util.py::TestArgSpec::test_decorator_with_args PASSED [ 99%] 81s pecan/tests/test_util.py::TestArgSpec::test_multiple_decorators PASSED [ 99%] 81s pecan/tests/test_util.py::TestArgSpec::test_nested_cells PASSED [ 99%] 81s pecan/tests/test_util.py::TestArgSpec::test_no_decorator PASSED [ 99%] 81s pecan/tests/test_util.py::TestArgSpec::test_simple_decorator PASSED [ 99%] 81s pecan/tests/test_util.py::TestArgSpec::test_simple_wrapper PASSED [100%] 81s 81s =============================== warnings summary =============================== 81s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed 81s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found 81s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over 81s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files 81s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file 81s /tmp/autopkgtest.S5v0Um/build.FKt/src/pecan/middleware/static.py:118: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). 81s datetime.utcfromtimestamp(os.path.getmtime(filename)), 81s 81s pecan/tests/test_commands.py::TestCommandManager::test_commands 81s /tmp/autopkgtest.S5v0Um/build.FKt/src/pecan/commands/base.py:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 81s import pkg_resources 81s 81s pecan/tests/test_conf.py::TestConf::test_config_from_file 81s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids 81s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import 81s pecan/tests/test_conf.py::TestConf::test_update_force_dict 81s pecan/tests/test_conf.py::TestConf::test_update_set_config 81s pecan/tests/test_conf.py::TestConf::test_update_set_default_config 81s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file 81s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file 81s :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead 81s 81s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 81s ================ 540 passed, 3 deselected, 14 warnings in 1.86s ================ 81s autopkgtest [10:08:36]: test unittests: -----------------------] 82s unittests PASS 82s autopkgtest [10:08:37]: test unittests: - - - - - - - - - - results - - - - - - - - - - 82s autopkgtest [10:08:37]: test autodep8-python3: preparing testbed 101s Creating nova instance adt-resolute-amd64-python-pecan-20251204-100715-juju-7f2275-prod-proposed-migration-environment-15-88e53f1b-3058-4487-9fca-341f77a7a48a from image adt/ubuntu-resolute-amd64-server-20251204.img (UUID 51c52a3c-b973-44be-bcc8-3a3ff6355fda)... 151s autopkgtest [10:09:46]: testbed dpkg architecture: amd64 151s autopkgtest [10:09:46]: testbed apt version: 3.1.12 151s autopkgtest [10:09:46]: @@@@@@@@@@@@@@@@@@@@ test bed setup 151s autopkgtest [10:09:46]: testbed release detected to be: resolute 152s autopkgtest [10:09:47]: updating testbed package index (apt update) 152s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 152s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 152s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 152s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 152s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [946 kB] 153s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [155 kB] 153s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.1 kB] 153s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [164 kB] 153s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [222 kB] 153s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [6652 B] 153s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [120 B] 153s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [349 kB] 153s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [762 kB] 153s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [23.9 kB] 153s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [9636 B] 153s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4040 B] 153s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [748 B] 154s Fetched 2790 kB in 1s (2961 kB/s) 154s Reading package lists... 155s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 155s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 155s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 155s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 156s Reading package lists... 156s Reading package lists... 156s Building dependency tree... 156s Reading state information... 156s Calculating upgrade... 157s The following packages will be upgraded: 157s libpython3-stdlib python3 python3-gdbm python3-minimal 157s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 157s Need to get 72.9 kB of archives. 157s After this operation, 2048 B of additional disk space will be used. 157s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-minimal amd64 3.13.9-2 [28.1 kB] 157s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3 amd64 3.13.9-2 [23.0 kB] 157s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 libpython3-stdlib amd64 3.13.9-2 [10.8 kB] 157s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-gdbm amd64 3.13.9-2 [11.0 kB] 157s dpkg-preconfigure: unable to re-open stdin: No such file or directory 157s Fetched 72.9 kB in 0s (6762 kB/s) 157s (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 ... 83537 files and directories currently installed.) 157s Preparing to unpack .../python3-minimal_3.13.9-2_amd64.deb ... 157s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 157s Setting up python3-minimal (3.13.9-2) ... 157s (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 ... 83537 files and directories currently installed.) 157s Preparing to unpack .../python3_3.13.9-2_amd64.deb ... 157s running python pre-rtupdate hooks for python3.13... 157s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 157s Preparing to unpack .../libpython3-stdlib_3.13.9-2_amd64.deb ... 157s Unpacking libpython3-stdlib:amd64 (3.13.9-2) over (3.13.7-1) ... 157s Preparing to unpack .../python3-gdbm_3.13.9-2_amd64.deb ... 157s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 157s Setting up python3-gdbm (3.13.9-2) ... 157s Setting up libpython3-stdlib:amd64 (3.13.9-2) ... 157s Setting up python3 (3.13.9-2) ... 157s running python rtupdate hooks for python3.13... 157s running python post-rtupdate hooks for python3.13... 157s Processing triggers for man-db (2.13.1-1) ... 158s autopkgtest [10:09:53]: upgrading testbed (apt dist-upgrade and autopurge) 158s Reading package lists... 158s Building dependency tree... 158s Reading state information... 158s Calculating upgrade... 159s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 159s Reading package lists... 159s Building dependency tree... 159s Reading state information... 159s Solving dependencies... 159s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 161s Reading package lists... 162s Building dependency tree... 162s Reading state information... 162s Solving dependencies... 162s The following NEW packages will be installed: 162s libpython3.14-minimal libpython3.14-stdlib python3-all python3-legacy-cgi 162s python3-logutils python3-mako python3-pecan python3-simplegeneric 162s python3-webob python3.14 python3.14-minimal 162s 0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded. 162s Need to get 6950 kB of archives. 162s After this operation, 26.1 MB of additional disk space will be used. 162s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.0-4 [906 kB] 162s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.0-4 [2559 kB] 162s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.0-4 [2397 kB] 162s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.0-4 [805 kB] 162s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 python3-all amd64 3.13.9-2 [892 B] 162s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-legacy-cgi all 2.6.4-1 [17.0 kB] 162s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-logutils all 0.3.5-5 [17.8 kB] 162s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-mako all 1.3.10-3 [63.8 kB] 162s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-simplegeneric all 0.8.1-5build1 [11.0 kB] 162s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-webob all 1:1.8.9-1 [86.8 kB] 162s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-pecan all 1.5.1-6 [86.8 kB] 162s Fetched 6950 kB in 0s (14.4 MB/s) 162s Selecting previously unselected package libpython3.14-minimal:amd64. 162s (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 ... 83537 files and directories currently installed.) 162s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_amd64.deb ... 162s Unpacking libpython3.14-minimal:amd64 (3.14.0-4) ... 163s Selecting previously unselected package python3.14-minimal. 163s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_amd64.deb ... 163s Unpacking python3.14-minimal (3.14.0-4) ... 163s Selecting previously unselected package libpython3.14-stdlib:amd64. 163s Preparing to unpack .../02-libpython3.14-stdlib_3.14.0-4_amd64.deb ... 163s Unpacking libpython3.14-stdlib:amd64 (3.14.0-4) ... 163s Selecting previously unselected package python3.14. 163s Preparing to unpack .../03-python3.14_3.14.0-4_amd64.deb ... 163s Unpacking python3.14 (3.14.0-4) ... 163s Selecting previously unselected package python3-all. 163s Preparing to unpack .../04-python3-all_3.13.9-2_amd64.deb ... 163s Unpacking python3-all (3.13.9-2) ... 163s Selecting previously unselected package python3-legacy-cgi. 163s Preparing to unpack .../05-python3-legacy-cgi_2.6.4-1_all.deb ... 163s Unpacking python3-legacy-cgi (2.6.4-1) ... 163s Selecting previously unselected package python3-logutils. 163s Preparing to unpack .../06-python3-logutils_0.3.5-5_all.deb ... 163s Unpacking python3-logutils (0.3.5-5) ... 163s Selecting previously unselected package python3-mako. 163s Preparing to unpack .../07-python3-mako_1.3.10-3_all.deb ... 163s Unpacking python3-mako (1.3.10-3) ... 163s Selecting previously unselected package python3-simplegeneric. 163s Preparing to unpack .../08-python3-simplegeneric_0.8.1-5build1_all.deb ... 163s Unpacking python3-simplegeneric (0.8.1-5build1) ... 163s Selecting previously unselected package python3-webob. 163s Preparing to unpack .../09-python3-webob_1%3a1.8.9-1_all.deb ... 163s Unpacking python3-webob (1:1.8.9-1) ... 163s Selecting previously unselected package python3-pecan. 163s Preparing to unpack .../10-python3-pecan_1.5.1-6_all.deb ... 163s Unpacking python3-pecan (1.5.1-6) ... 163s Setting up libpython3.14-minimal:amd64 (3.14.0-4) ... 163s Setting up python3-legacy-cgi (2.6.4-1) ... 163s Setting up python3-logutils (0.3.5-5) ... 163s Setting up python3-simplegeneric (0.8.1-5build1) ... 163s Setting up python3.14-minimal (3.14.0-4) ... 164s Setting up python3-mako (1.3.10-3) ... 164s Setting up python3-webob (1:1.8.9-1) ... 164s Setting up python3-pecan (1.5.1-6) ... 164s Setting up libpython3.14-stdlib:amd64 (3.14.0-4) ... 164s Setting up python3.14 (3.14.0-4) ... 165s Setting up python3-all (3.13.9-2) ... 165s Processing triggers for man-db (2.13.1-1) ... 165s Processing triggers for systemd (257.9-0ubuntu2) ... 168s autopkgtest [10:10:03]: test autodep8-python3: set -e ; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import pecan; print(pecan)" ; done 168s autopkgtest [10:10:03]: test autodep8-python3: [----------------------- 168s Testing with python3.14: 168s 168s Testing with python3.13: 168s 169s autopkgtest [10:10:04]: test autodep8-python3: -----------------------] 169s autopkgtest [10:10:04]: test autodep8-python3: - - - - - - - - - - results - - - - - - - - - - 169s autodep8-python3 PASS (superficial) 169s autopkgtest [10:10:04]: @@@@@@@@@@@@@@@@@@@@ summary 169s unittests PASS 169s autodep8-python3 PASS (superficial)