0s autopkgtest [06:56:39]: starting date and time: 2025-12-06 06:56:39+0000 0s autopkgtest [06:56:39]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [06:56:39]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.v_uariay/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-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-s390x-10.secgroup --name adt-resolute-s390x-python-pecan-20251206-065639-juju-7f2275-prod-proposed-migration-environment-20-a9e20ba5-56de-479f-896e-2645ef883ec7 --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-s390x-python-pecan-20251206-065639-juju-7f2275-prod-proposed-migration-environment-20-a9e20ba5-56de-479f-896e-2645ef883ec7 from image adt/ubuntu-resolute-s390x-server-20251205.img (UUID e0f6ccba-b422-4dad-b382-fbc5a99524c4)... 73s autopkgtest [06:57:52]: testbed dpkg architecture: s390x 73s autopkgtest [06:57:52]: testbed apt version: 3.1.12 73s autopkgtest [06:57:52]: @@@@@@@@@@@@@@@@@@@@ test bed setup 74s autopkgtest [06:57:53]: testbed release detected to be: None 74s autopkgtest [06:57:53]: updating testbed package index (apt update) 75s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 75s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 75s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 75s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 75s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [837 kB] 75s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.8 kB] 75s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [139 kB] 75s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [220 kB] 75s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [687 kB] 75s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [6204 B] 76s Fetched 2036 kB in 1s (1382 kB/s) 79s Reading package lists... 80s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 80s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 80s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 80s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 83s Reading package lists... 83s Reading package lists... 84s Building dependency tree... 84s Reading state information... 84s Calculating upgrade... 84s The following packages will be upgraded: 84s libnftnl11 libpython3-stdlib lxd-installer python3 python3-attr python3-gdbm 84s python3-minimal 84s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 84s Need to get 201 kB of archives. 84s After this operation, 20.5 kB of additional disk space will be used. 84s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.13.9-2 [28.1 kB] 84s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.13.9-2 [23.0 kB] 84s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.13.9-2 [10.8 kB] 84s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libnftnl11 s390x 1.3.1-1 [68.7 kB] 84s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-gdbm s390x 3.13.9-2 [11.0 kB] 84s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x lxd-installer all 14ubuntu0 [5428 B] 84s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x python3-attr all 25.4.0-1 [53.6 kB] 85s dpkg-preconfigure: unable to re-open stdin: No such file or directory 85s Fetched 201 kB in 0s (6816 kB/s) 85s (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 ... 61321 files and directories currently installed.) 85s Preparing to unpack .../python3-minimal_3.13.9-2_s390x.deb ... 86s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 86s Setting up python3-minimal (3.13.9-2) ... 87s (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 ... 61321 files and directories currently installed.) 87s Preparing to unpack .../0-python3_3.13.9-2_s390x.deb ... 87s running python pre-rtupdate hooks for python3.13... 87s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 87s Preparing to unpack .../1-libpython3-stdlib_3.13.9-2_s390x.deb ... 87s Unpacking libpython3-stdlib:s390x (3.13.9-2) over (3.13.7-1) ... 87s Preparing to unpack .../2-libnftnl11_1.3.1-1_s390x.deb ... 87s Unpacking libnftnl11:s390x (1.3.1-1) over (1.3.0-1) ... 87s Preparing to unpack .../3-python3-gdbm_3.13.9-2_s390x.deb ... 87s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 87s Preparing to unpack .../4-lxd-installer_14ubuntu0_all.deb ... 87s Unpacking lxd-installer (14ubuntu0) over (13ubuntu0) ... 87s Preparing to unpack .../5-python3-attr_25.4.0-1_all.deb ... 87s Unpacking python3-attr (25.4.0-1) over (25.3.0-1) ... 87s Setting up python3-gdbm (3.13.9-2) ... 87s Setting up libnftnl11:s390x (1.3.1-1) ... 87s Setting up lxd-installer (14ubuntu0) ... 89s Setting up libpython3-stdlib:s390x (3.13.9-2) ... 89s Setting up python3 (3.13.9-2) ... 89s running python rtupdate hooks for python3.13... 89s running python post-rtupdate hooks for python3.13... 90s Setting up python3-attr (25.4.0-1) ... 91s Processing triggers for man-db (2.13.1-1) ... 94s Processing triggers for libc-bin (2.42-2ubuntu2) ... 95s autopkgtest [06:58:14]: upgrading testbed (apt dist-upgrade and autopurge) 95s Reading package lists... 95s Building dependency tree... 95s Reading state information... 96s Calculating upgrade... 97s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 97s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s Solving dependencies... 99s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 99s autopkgtest [06:58:18]: rebooting testbed after setup commands that affected boot 133s autopkgtest [06:58:52]: testbed running kernel: Linux 6.17.0-6-generic #6-Ubuntu SMP Tue Oct 7 12:36:22 UTC 2025 136s autopkgtest [06:58:55]: @@@@@@@@@@@@@@@@@@@@ apt-source python-pecan 139s Get:1 http://ftpmaster.internal/ubuntu resolute/main python-pecan 1.5.1-6 (dsc) [2445 B] 139s Get:2 http://ftpmaster.internal/ubuntu resolute/main python-pecan 1.5.1-6 (tar) [139 kB] 139s Get:3 http://ftpmaster.internal/ubuntu resolute/main python-pecan 1.5.1-6 (diff) [6360 B] 140s gpgv: Signature made Mon Oct 14 10:13:06 2024 UTC 140s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 140s gpgv: Can't check signature: No public key 140s dpkg-source: warning: cannot verify inline signature for ./python-pecan_1.5.1-6.dsc: no acceptable signature found 140s autopkgtest [06:58:59]: testing package python-pecan version 1.5.1-6 140s autopkgtest [06:58:59]: build not needed 141s autopkgtest [06:59:00]: test unittests: preparing testbed 141s Reading package lists... 142s Building dependency tree... 142s Reading state information... 142s Solving dependencies... 143s The following NEW packages will be installed: 143s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 143s cpp-15-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf 143s dh-python dh-strip-nondeterminism docutils-common dwz g++ g++-15 143s g++-15-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-15 gcc-15-s390x-linux-gnu 143s gcc-s390x-linux-gnu gettext gunicorn intltool-debian libarchive-zip-perl 143s libasan8 libcc1-0 libdebhelper-perl libfile-stripnondeterminism-perl 143s libgcc-15-dev libgomp1 libisl23 libitm1 libjs-jquery libjs-sphinxdoc 143s libjs-underscore libjson-perl libmpc3 libpython3.14-minimal 143s libpython3.14-stdlib libstdc++-15-dev libtool libubsan1 m4 143s openstack-pkg-tools po-debconf python-pecan-doc python3-alabaster 143s python3-all python3-bs4 python3-defusedxml python3-distlib python3-docutils 143s python3-filelock python3-genshi python3-greenlet python3-gunicorn 143s python3-imagesize python3-iniconfig python3-kajiki python3-legacy-cgi 143s python3-linetable python3-logutils python3-mako python3-pecan python3-pip 143s python3-pip-whl python3-platformdirs python3-pluggy python3-pytest 143s python3-roman python3-roman-numerals python3-setuptools-whl 143s python3-simplegeneric python3-snowballstemmer python3-soupsieve 143s python3-sphinx python3-sqlalchemy python3-virtualenv python3-waitress 143s python3-webob python3-webtest python3-wheel python3.14 python3.14-minimal 143s sgml-base sphinx-common xml-core 143s 0 upgraded, 91 newly installed, 0 to remove and 0 not upgraded. 143s Need to get 72.0 MB of archives. 143s After this operation, 245 MB of additional disk space will be used. 143s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-minimal s390x 3.14.0-4 [904 kB] 143s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.0-4 [2509 kB] 143s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x m4 s390x 1.4.20-2 [223 kB] 143s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x autoconf all 2.72-3.1ubuntu1 [384 kB] 143s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x autotools-dev all 20240727.1 [43.4 kB] 143s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x automake all 1:1.18.1-3 [582 kB] 143s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x autopoint all 0.23.2-1 [620 kB] 143s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x libisl23 s390x 0.27-1 [704 kB] 144s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libmpc3 s390x 1.3.1-2 [57.4 kB] 144s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15-s390x-linux-gnu s390x 15.2.0-9ubuntu1 [10.2 MB] 144s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15 s390x 15.2.0-9ubuntu1 [1024 B] 144s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [5746 B] 144s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x cpp s390x 4:15.2.0-4ubuntu1 [22.4 kB] 144s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x libcc1-0 s390x 15.2.0-9ubuntu1 [50.0 kB] 144s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-9ubuntu1 [154 kB] 144s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x libitm1 s390x 15.2.0-9ubuntu1 [30.9 kB] 144s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x libasan8 s390x 15.2.0-9ubuntu1 [2969 kB] 144s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x libubsan1 s390x 15.2.0-9ubuntu1 [1211 kB] 144s Get:19 http://ftpmaster.internal/ubuntu resolute/main s390x libgcc-15-dev s390x 15.2.0-9ubuntu1 [1045 kB] 144s Get:20 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15-s390x-linux-gnu s390x 15.2.0-9ubuntu1 [19.9 MB] 145s Get:21 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15 s390x 15.2.0-9ubuntu1 [516 kB] 145s Get:22 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [1208 B] 145s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x gcc s390x 4:15.2.0-4ubuntu1 [5018 B] 145s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x libstdc++-15-dev s390x 15.2.0-9ubuntu1 [2659 kB] 145s Get:25 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15-s390x-linux-gnu s390x 15.2.0-9ubuntu1 [11.7 MB] 146s Get:26 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15 s390x 15.2.0-9ubuntu1 [24.3 kB] 146s Get:27 http://ftpmaster.internal/ubuntu resolute/main s390x g++-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [956 B] 146s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x g++ s390x 4:15.2.0-4ubuntu1 [1078 B] 146s Get:29 http://ftpmaster.internal/ubuntu resolute/main s390x build-essential s390x 12.12ubuntu2 [5258 B] 146s Get:30 http://ftpmaster.internal/ubuntu resolute/main s390x libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 146s Get:31 http://ftpmaster.internal/ubuntu resolute/main s390x libtool all 2.5.4-7 [169 kB] 146s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x dh-autoreconf all 21 [12.5 kB] 146s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 146s Get:34 http://ftpmaster.internal/ubuntu resolute/main s390x libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 146s Get:35 http://ftpmaster.internal/ubuntu resolute/main s390x dh-strip-nondeterminism all 1.15.0-1 [5090 B] 146s Get:36 http://ftpmaster.internal/ubuntu resolute/main s390x debugedit s390x 1:5.2-3 [52.8 kB] 146s Get:37 http://ftpmaster.internal/ubuntu resolute/main s390x dwz s390x 0.16-2 [121 kB] 146s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x gettext s390x 0.23.2-1 [1062 kB] 146s Get:39 http://ftpmaster.internal/ubuntu resolute/main s390x intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 146s Get:40 http://ftpmaster.internal/ubuntu resolute/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 146s Get:41 http://ftpmaster.internal/ubuntu resolute/main s390x debhelper all 13.24.2ubuntu1 [896 kB] 146s Get:42 http://ftpmaster.internal/ubuntu resolute/universe s390x dh-python all 6.20251029 [120 kB] 146s Get:43 http://ftpmaster.internal/ubuntu resolute/main s390x sgml-base all 1.31+nmu1 [11.0 kB] 146s Get:44 http://ftpmaster.internal/ubuntu resolute/main s390x xml-core all 0.19 [20.3 kB] 146s Get:45 http://ftpmaster.internal/ubuntu resolute/main s390x docutils-common all 0.22.3+dfsg-1 [130 kB] 146s Get:46 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-gunicorn all 23.0.0-1 [63.8 kB] 146s Get:47 http://ftpmaster.internal/ubuntu resolute/universe s390x gunicorn all 23.0.0-1 [9516 B] 146s Get:48 http://ftpmaster.internal/ubuntu resolute/main s390x libjs-jquery all 3.7.1+dfsg+~3.5.33-1build1 [321 kB] 146s Get:49 http://ftpmaster.internal/ubuntu resolute/main s390x libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 146s Get:50 http://ftpmaster.internal/ubuntu resolute/main s390x libjs-sphinxdoc all 8.2.3-1ubuntu2 [28.0 kB] 146s Get:51 http://ftpmaster.internal/ubuntu resolute/main s390x libjson-perl all 4.10000-1 [81.9 kB] 146s Get:52 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-stdlib s390x 3.14.0-4 [2373 kB] 146s Get:53 http://ftpmaster.internal/ubuntu resolute/main s390x python-pecan-doc all 1.5.1-6 [123 kB] 146s Get:54 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.0-4 [805 kB] 146s Get:55 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-all s390x 3.13.9-2 [892 B] 146s Get:56 http://ftpmaster.internal/ubuntu resolute/main s390x python3-soupsieve all 2.7-2 [33.6 kB] 146s Get:57 http://ftpmaster.internal/ubuntu resolute/main s390x python3-bs4 all 4.14.2-1 [82.8 kB] 146s Get:58 http://ftpmaster.internal/ubuntu resolute/main s390x python3-defusedxml all 0.7.1-3 [42.2 kB] 146s Get:59 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-distlib all 0.4.0-1 [267 kB] 146s Get:60 http://ftpmaster.internal/ubuntu resolute/main s390x python3-roman-numerals all 3.1.0-2 [8470 B] 146s Get:61 http://ftpmaster.internal/ubuntu resolute/main s390x python3-docutils all 0.22.3+dfsg-1 [438 kB] 146s Get:62 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-filelock all 3.18.0-1 [13.0 kB] 146s Get:63 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-genshi s390x 0.7.10-1 [132 kB] 146s Get:64 http://ftpmaster.internal/ubuntu resolute/main s390x python3-imagesize all 1.4.1-1build1 [6900 B] 146s Get:65 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-1 [6840 B] 146s Get:66 http://ftpmaster.internal/ubuntu resolute/main s390x python3-legacy-cgi all 2.6.4-1 [17.0 kB] 146s Get:67 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-linetable all 0.0.3-1 [5146 B] 146s Get:68 http://ftpmaster.internal/ubuntu resolute/main s390x python3-logutils all 0.3.5-5 [17.8 kB] 146s Get:69 http://ftpmaster.internal/ubuntu resolute/main s390x python3-mako all 1.3.10-3 [63.8 kB] 146s Get:70 http://ftpmaster.internal/ubuntu resolute/main s390x python3-simplegeneric all 0.8.1-5build1 [11.0 kB] 146s Get:71 http://ftpmaster.internal/ubuntu resolute/main s390x python3-webob all 1:1.8.9-1 [86.8 kB] 146s Get:72 http://ftpmaster.internal/ubuntu resolute/main s390x python3-pecan all 1.5.1-6 [86.8 kB] 146s Get:73 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-wheel all 0.46.1-2 [22.1 kB] 146s Get:74 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pip all 25.1.1+dfsg-1ubuntu2 [1416 kB] 146s Get:75 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pip-whl all 25.1.1+dfsg-1ubuntu2 [1430 kB] 146s Get:76 http://ftpmaster.internal/ubuntu resolute/main s390x python3-platformdirs all 4.4.0-1 [16.9 kB] 146s Get:77 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-1 [21.0 kB] 146s Get:78 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 8.3.5-2 [252 kB] 146s Get:79 http://ftpmaster.internal/ubuntu resolute/main s390x python3-roman all 5.2-1 [10.8 kB] 146s Get:80 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-setuptools-whl all 78.1.1-0.1 [1174 kB] 146s Get:81 http://ftpmaster.internal/ubuntu resolute/main s390x python3-snowballstemmer all 3.0.1-1 [65.9 kB] 146s Get:82 http://ftpmaster.internal/ubuntu resolute/main s390x sphinx-common all 8.2.3-1ubuntu2 [656 kB] 146s Get:83 http://ftpmaster.internal/ubuntu resolute/main s390x python3-alabaster all 0.7.16-0.1 [18.5 kB] 146s Get:84 http://ftpmaster.internal/ubuntu resolute/main s390x python3-sphinx all 8.2.3-1ubuntu2 [482 kB] 146s Get:85 http://ftpmaster.internal/ubuntu resolute/main s390x python3-greenlet s390x 3.2.4-2 [183 kB] 146s Get:86 http://ftpmaster.internal/ubuntu resolute/main s390x python3-sqlalchemy all 2.0.40+ds1-2 [1220 kB] 146s Get:87 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-virtualenv all 20.35.4+ds-1 [76.1 kB] 147s Get:88 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-waitress all 3.0.2-2 [46.3 kB] 147s Get:89 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-webtest all 3.0.7-1 [29.5 kB] 147s Get:90 http://ftpmaster.internal/ubuntu resolute/universe s390x openstack-pkg-tools all 138 [100 kB] 147s Get:91 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-kajiki all 1.0.2-1 [32.0 kB] 147s Fetched 72.0 MB in 4s (19.8 MB/s) 147s Selecting previously unselected package libpython3.14-minimal:s390x. 148s (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 ... 61321 files and directories currently installed.) 148s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_s390x.deb ... 148s Unpacking libpython3.14-minimal:s390x (3.14.0-4) ... 148s Selecting previously unselected package python3.14-minimal. 148s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_s390x.deb ... 148s Unpacking python3.14-minimal (3.14.0-4) ... 149s Selecting previously unselected package m4. 149s Preparing to unpack .../02-m4_1.4.20-2_s390x.deb ... 149s Unpacking m4 (1.4.20-2) ... 149s Selecting previously unselected package autoconf. 149s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 149s Unpacking autoconf (2.72-3.1ubuntu1) ... 149s Selecting previously unselected package autotools-dev. 149s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 149s Unpacking autotools-dev (20240727.1) ... 149s Selecting previously unselected package automake. 149s Preparing to unpack .../05-automake_1%3a1.18.1-3_all.deb ... 149s Unpacking automake (1:1.18.1-3) ... 149s Selecting previously unselected package autopoint. 149s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 149s Unpacking autopoint (0.23.2-1) ... 149s Selecting previously unselected package libisl23:s390x. 149s Preparing to unpack .../07-libisl23_0.27-1_s390x.deb ... 149s Unpacking libisl23:s390x (0.27-1) ... 149s Selecting previously unselected package libmpc3:s390x. 149s Preparing to unpack .../08-libmpc3_1.3.1-2_s390x.deb ... 149s Unpacking libmpc3:s390x (1.3.1-2) ... 149s Selecting previously unselected package cpp-15-s390x-linux-gnu. 149s Preparing to unpack .../09-cpp-15-s390x-linux-gnu_15.2.0-9ubuntu1_s390x.deb ... 149s Unpacking cpp-15-s390x-linux-gnu (15.2.0-9ubuntu1) ... 150s Selecting previously unselected package cpp-15. 150s Preparing to unpack .../10-cpp-15_15.2.0-9ubuntu1_s390x.deb ... 150s Unpacking cpp-15 (15.2.0-9ubuntu1) ... 150s Selecting previously unselected package cpp-s390x-linux-gnu. 150s Preparing to unpack .../11-cpp-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 150s Unpacking cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 150s Selecting previously unselected package cpp. 150s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_s390x.deb ... 150s Unpacking cpp (4:15.2.0-4ubuntu1) ... 150s Selecting previously unselected package libcc1-0:s390x. 150s Preparing to unpack .../13-libcc1-0_15.2.0-9ubuntu1_s390x.deb ... 150s Unpacking libcc1-0:s390x (15.2.0-9ubuntu1) ... 150s Selecting previously unselected package libgomp1:s390x. 151s Preparing to unpack .../14-libgomp1_15.2.0-9ubuntu1_s390x.deb ... 151s Unpacking libgomp1:s390x (15.2.0-9ubuntu1) ... 151s Selecting previously unselected package libitm1:s390x. 151s Preparing to unpack .../15-libitm1_15.2.0-9ubuntu1_s390x.deb ... 151s Unpacking libitm1:s390x (15.2.0-9ubuntu1) ... 151s Selecting previously unselected package libasan8:s390x. 151s Preparing to unpack .../16-libasan8_15.2.0-9ubuntu1_s390x.deb ... 151s Unpacking libasan8:s390x (15.2.0-9ubuntu1) ... 151s Selecting previously unselected package libubsan1:s390x. 151s Preparing to unpack .../17-libubsan1_15.2.0-9ubuntu1_s390x.deb ... 151s Unpacking libubsan1:s390x (15.2.0-9ubuntu1) ... 151s Selecting previously unselected package libgcc-15-dev:s390x. 151s Preparing to unpack .../18-libgcc-15-dev_15.2.0-9ubuntu1_s390x.deb ... 151s Unpacking libgcc-15-dev:s390x (15.2.0-9ubuntu1) ... 151s Selecting previously unselected package gcc-15-s390x-linux-gnu. 152s Preparing to unpack .../19-gcc-15-s390x-linux-gnu_15.2.0-9ubuntu1_s390x.deb ... 152s Unpacking gcc-15-s390x-linux-gnu (15.2.0-9ubuntu1) ... 152s Selecting previously unselected package gcc-15. 152s Preparing to unpack .../20-gcc-15_15.2.0-9ubuntu1_s390x.deb ... 152s Unpacking gcc-15 (15.2.0-9ubuntu1) ... 152s Selecting previously unselected package gcc-s390x-linux-gnu. 152s Preparing to unpack .../21-gcc-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 152s Unpacking gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 152s Selecting previously unselected package gcc. 152s Preparing to unpack .../22-gcc_4%3a15.2.0-4ubuntu1_s390x.deb ... 152s Unpacking gcc (4:15.2.0-4ubuntu1) ... 152s Selecting previously unselected package libstdc++-15-dev:s390x. 152s Preparing to unpack .../23-libstdc++-15-dev_15.2.0-9ubuntu1_s390x.deb ... 152s Unpacking libstdc++-15-dev:s390x (15.2.0-9ubuntu1) ... 154s Selecting previously unselected package g++-15-s390x-linux-gnu. 154s Preparing to unpack .../24-g++-15-s390x-linux-gnu_15.2.0-9ubuntu1_s390x.deb ... 154s Unpacking g++-15-s390x-linux-gnu (15.2.0-9ubuntu1) ... 155s Selecting previously unselected package g++-15. 155s Preparing to unpack .../25-g++-15_15.2.0-9ubuntu1_s390x.deb ... 155s Unpacking g++-15 (15.2.0-9ubuntu1) ... 155s Selecting previously unselected package g++-s390x-linux-gnu. 155s Preparing to unpack .../26-g++-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 155s Unpacking g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 155s Selecting previously unselected package g++. 155s Preparing to unpack .../27-g++_4%3a15.2.0-4ubuntu1_s390x.deb ... 155s Unpacking g++ (4:15.2.0-4ubuntu1) ... 155s Selecting previously unselected package build-essential. 155s Preparing to unpack .../28-build-essential_12.12ubuntu2_s390x.deb ... 155s Unpacking build-essential (12.12ubuntu2) ... 155s Selecting previously unselected package libdebhelper-perl. 155s Preparing to unpack .../29-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 155s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 155s Selecting previously unselected package libtool. 155s Preparing to unpack .../30-libtool_2.5.4-7_all.deb ... 155s Unpacking libtool (2.5.4-7) ... 155s Selecting previously unselected package dh-autoreconf. 155s Preparing to unpack .../31-dh-autoreconf_21_all.deb ... 155s Unpacking dh-autoreconf (21) ... 155s Selecting previously unselected package libarchive-zip-perl. 155s Preparing to unpack .../32-libarchive-zip-perl_1.68-1_all.deb ... 155s Unpacking libarchive-zip-perl (1.68-1) ... 155s Selecting previously unselected package libfile-stripnondeterminism-perl. 155s Preparing to unpack .../33-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 155s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 155s Selecting previously unselected package dh-strip-nondeterminism. 155s Preparing to unpack .../34-dh-strip-nondeterminism_1.15.0-1_all.deb ... 155s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 155s Selecting previously unselected package debugedit. 155s Preparing to unpack .../35-debugedit_1%3a5.2-3_s390x.deb ... 155s Unpacking debugedit (1:5.2-3) ... 156s Selecting previously unselected package dwz. 156s Preparing to unpack .../36-dwz_0.16-2_s390x.deb ... 156s Unpacking dwz (0.16-2) ... 156s Selecting previously unselected package gettext. 156s Preparing to unpack .../37-gettext_0.23.2-1_s390x.deb ... 156s Unpacking gettext (0.23.2-1) ... 156s Selecting previously unselected package intltool-debian. 156s Preparing to unpack .../38-intltool-debian_0.35.0+20060710.6build1_all.deb ... 156s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 156s Selecting previously unselected package po-debconf. 156s Preparing to unpack .../39-po-debconf_1.0.21+nmu1_all.deb ... 156s Unpacking po-debconf (1.0.21+nmu1) ... 156s Selecting previously unselected package debhelper. 156s Preparing to unpack .../40-debhelper_13.24.2ubuntu1_all.deb ... 156s Unpacking debhelper (13.24.2ubuntu1) ... 156s Selecting previously unselected package dh-python. 156s Preparing to unpack .../41-dh-python_6.20251029_all.deb ... 156s Unpacking dh-python (6.20251029) ... 156s Selecting previously unselected package sgml-base. 156s Preparing to unpack .../42-sgml-base_1.31+nmu1_all.deb ... 156s Unpacking sgml-base (1.31+nmu1) ... 156s Selecting previously unselected package xml-core. 156s Preparing to unpack .../43-xml-core_0.19_all.deb ... 156s Unpacking xml-core (0.19) ... 157s Selecting previously unselected package docutils-common. 157s Preparing to unpack .../44-docutils-common_0.22.3+dfsg-1_all.deb ... 157s Unpacking docutils-common (0.22.3+dfsg-1) ... 157s Selecting previously unselected package python3-gunicorn. 157s Preparing to unpack .../45-python3-gunicorn_23.0.0-1_all.deb ... 157s Unpacking python3-gunicorn (23.0.0-1) ... 157s Selecting previously unselected package gunicorn. 157s Preparing to unpack .../46-gunicorn_23.0.0-1_all.deb ... 157s Unpacking gunicorn (23.0.0-1) ... 157s Selecting previously unselected package libjs-jquery. 157s Preparing to unpack .../47-libjs-jquery_3.7.1+dfsg+~3.5.33-1build1_all.deb ... 157s Unpacking libjs-jquery (3.7.1+dfsg+~3.5.33-1build1) ... 157s Selecting previously unselected package libjs-underscore. 157s Preparing to unpack .../48-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 157s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 157s Selecting previously unselected package libjs-sphinxdoc. 157s Preparing to unpack .../49-libjs-sphinxdoc_8.2.3-1ubuntu2_all.deb ... 157s Unpacking libjs-sphinxdoc (8.2.3-1ubuntu2) ... 157s Selecting previously unselected package libjson-perl. 157s Preparing to unpack .../50-libjson-perl_4.10000-1_all.deb ... 157s Unpacking libjson-perl (4.10000-1) ... 157s Selecting previously unselected package libpython3.14-stdlib:s390x. 157s Preparing to unpack .../51-libpython3.14-stdlib_3.14.0-4_s390x.deb ... 157s Unpacking libpython3.14-stdlib:s390x (3.14.0-4) ... 157s Selecting previously unselected package python-pecan-doc. 157s Preparing to unpack .../52-python-pecan-doc_1.5.1-6_all.deb ... 157s Unpacking python-pecan-doc (1.5.1-6) ... 157s Selecting previously unselected package python3.14. 157s Preparing to unpack .../53-python3.14_3.14.0-4_s390x.deb ... 157s Unpacking python3.14 (3.14.0-4) ... 157s Selecting previously unselected package python3-all. 157s Preparing to unpack .../54-python3-all_3.13.9-2_s390x.deb ... 157s Unpacking python3-all (3.13.9-2) ... 157s Selecting previously unselected package python3-soupsieve. 157s Preparing to unpack .../55-python3-soupsieve_2.7-2_all.deb ... 157s Unpacking python3-soupsieve (2.7-2) ... 157s Selecting previously unselected package python3-bs4. 157s Preparing to unpack .../56-python3-bs4_4.14.2-1_all.deb ... 157s Unpacking python3-bs4 (4.14.2-1) ... 157s Selecting previously unselected package python3-defusedxml. 157s Preparing to unpack .../57-python3-defusedxml_0.7.1-3_all.deb ... 157s Unpacking python3-defusedxml (0.7.1-3) ... 157s Selecting previously unselected package python3-distlib. 157s Preparing to unpack .../58-python3-distlib_0.4.0-1_all.deb ... 157s Unpacking python3-distlib (0.4.0-1) ... 157s Selecting previously unselected package python3-roman-numerals. 157s Preparing to unpack .../59-python3-roman-numerals_3.1.0-2_all.deb ... 158s Unpacking python3-roman-numerals (3.1.0-2) ... 158s Selecting previously unselected package python3-docutils. 158s Preparing to unpack .../60-python3-docutils_0.22.3+dfsg-1_all.deb ... 158s Unpacking python3-docutils (0.22.3+dfsg-1) ... 158s Selecting previously unselected package python3-filelock. 158s Preparing to unpack .../61-python3-filelock_3.18.0-1_all.deb ... 158s Unpacking python3-filelock (3.18.0-1) ... 158s Selecting previously unselected package python3-genshi. 158s Preparing to unpack .../62-python3-genshi_0.7.10-1_s390x.deb ... 158s Unpacking python3-genshi (0.7.10-1) ... 158s Selecting previously unselected package python3-imagesize. 158s Preparing to unpack .../63-python3-imagesize_1.4.1-1build1_all.deb ... 158s Unpacking python3-imagesize (1.4.1-1build1) ... 158s Selecting previously unselected package python3-iniconfig. 158s Preparing to unpack .../64-python3-iniconfig_2.1.0-1_all.deb ... 158s Unpacking python3-iniconfig (2.1.0-1) ... 158s Selecting previously unselected package python3-legacy-cgi. 158s Preparing to unpack .../65-python3-legacy-cgi_2.6.4-1_all.deb ... 158s Unpacking python3-legacy-cgi (2.6.4-1) ... 158s Selecting previously unselected package python3-linetable. 158s Preparing to unpack .../66-python3-linetable_0.0.3-1_all.deb ... 158s Unpacking python3-linetable (0.0.3-1) ... 158s Selecting previously unselected package python3-logutils. 158s Preparing to unpack .../67-python3-logutils_0.3.5-5_all.deb ... 158s Unpacking python3-logutils (0.3.5-5) ... 158s Selecting previously unselected package python3-mako. 158s Preparing to unpack .../68-python3-mako_1.3.10-3_all.deb ... 158s Unpacking python3-mako (1.3.10-3) ... 158s Selecting previously unselected package python3-simplegeneric. 158s Preparing to unpack .../69-python3-simplegeneric_0.8.1-5build1_all.deb ... 158s Unpacking python3-simplegeneric (0.8.1-5build1) ... 158s Selecting previously unselected package python3-webob. 158s Preparing to unpack .../70-python3-webob_1%3a1.8.9-1_all.deb ... 158s Unpacking python3-webob (1:1.8.9-1) ... 158s Selecting previously unselected package python3-pecan. 158s Preparing to unpack .../71-python3-pecan_1.5.1-6_all.deb ... 158s Unpacking python3-pecan (1.5.1-6) ... 158s Selecting previously unselected package python3-wheel. 158s Preparing to unpack .../72-python3-wheel_0.46.1-2_all.deb ... 158s Unpacking python3-wheel (0.46.1-2) ... 158s Selecting previously unselected package python3-pip. 158s Preparing to unpack .../73-python3-pip_25.1.1+dfsg-1ubuntu2_all.deb ... 158s Unpacking python3-pip (25.1.1+dfsg-1ubuntu2) ... 159s Selecting previously unselected package python3-pip-whl. 159s Preparing to unpack .../74-python3-pip-whl_25.1.1+dfsg-1ubuntu2_all.deb ... 159s Unpacking python3-pip-whl (25.1.1+dfsg-1ubuntu2) ... 159s Selecting previously unselected package python3-platformdirs. 159s Preparing to unpack .../75-python3-platformdirs_4.4.0-1_all.deb ... 159s Unpacking python3-platformdirs (4.4.0-1) ... 159s Selecting previously unselected package python3-pluggy. 159s Preparing to unpack .../76-python3-pluggy_1.6.0-1_all.deb ... 159s Unpacking python3-pluggy (1.6.0-1) ... 159s Selecting previously unselected package python3-pytest. 159s Preparing to unpack .../77-python3-pytest_8.3.5-2_all.deb ... 159s Unpacking python3-pytest (8.3.5-2) ... 159s Selecting previously unselected package python3-roman. 159s Preparing to unpack .../78-python3-roman_5.2-1_all.deb ... 159s Unpacking python3-roman (5.2-1) ... 159s Selecting previously unselected package python3-setuptools-whl. 159s Preparing to unpack .../79-python3-setuptools-whl_78.1.1-0.1_all.deb ... 159s Unpacking python3-setuptools-whl (78.1.1-0.1) ... 159s Selecting previously unselected package python3-snowballstemmer. 159s Preparing to unpack .../80-python3-snowballstemmer_3.0.1-1_all.deb ... 159s Unpacking python3-snowballstemmer (3.0.1-1) ... 159s Selecting previously unselected package sphinx-common. 159s Preparing to unpack .../81-sphinx-common_8.2.3-1ubuntu2_all.deb ... 159s Unpacking sphinx-common (8.2.3-1ubuntu2) ... 160s Selecting previously unselected package python3-alabaster. 160s Preparing to unpack .../82-python3-alabaster_0.7.16-0.1_all.deb ... 160s Unpacking python3-alabaster (0.7.16-0.1) ... 160s Selecting previously unselected package python3-sphinx. 160s Preparing to unpack .../83-python3-sphinx_8.2.3-1ubuntu2_all.deb ... 160s Unpacking python3-sphinx (8.2.3-1ubuntu2) ... 160s Selecting previously unselected package python3-greenlet. 160s Preparing to unpack .../84-python3-greenlet_3.2.4-2_s390x.deb ... 160s Unpacking python3-greenlet (3.2.4-2) ... 160s Selecting previously unselected package python3-sqlalchemy. 160s Preparing to unpack .../85-python3-sqlalchemy_2.0.40+ds1-2_all.deb ... 160s Unpacking python3-sqlalchemy (2.0.40+ds1-2) ... 160s Selecting previously unselected package python3-virtualenv. 160s Preparing to unpack .../86-python3-virtualenv_20.35.4+ds-1_all.deb ... 160s Unpacking python3-virtualenv (20.35.4+ds-1) ... 160s Selecting previously unselected package python3-waitress. 160s Preparing to unpack .../87-python3-waitress_3.0.2-2_all.deb ... 160s Unpacking python3-waitress (3.0.2-2) ... 160s Selecting previously unselected package python3-webtest. 160s Preparing to unpack .../88-python3-webtest_3.0.7-1_all.deb ... 160s Unpacking python3-webtest (3.0.7-1) ... 160s Selecting previously unselected package openstack-pkg-tools. 160s Preparing to unpack .../89-openstack-pkg-tools_138_all.deb ... 160s Unpacking openstack-pkg-tools (138) ... 160s Selecting previously unselected package python3-kajiki. 160s Preparing to unpack .../90-python3-kajiki_1.0.2-1_all.deb ... 160s Unpacking python3-kajiki (1.0.2-1) ... 160s Setting up dh-python (6.20251029) ... 161s Setting up python3-iniconfig (2.1.0-1) ... 163s Setting up python3-setuptools-whl (78.1.1-0.1) ... 163s Setting up python3-filelock (3.18.0-1) ... 163s Setting up python3-waitress (3.0.2-2) ... 164s Setting up python3-linetable (0.0.3-1) ... 164s Setting up python3-pip-whl (25.1.1+dfsg-1ubuntu2) ... 164s Setting up python3-defusedxml (0.7.1-3) ... 164s Setting up libarchive-zip-perl (1.68-1) ... 164s Setting up python3-alabaster (0.7.16-0.1) ... 165s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 165s Setting up libpython3.14-minimal:s390x (3.14.0-4) ... 165s Setting up m4 (1.4.20-2) ... 165s Setting up python3-distlib (0.4.0-1) ... 166s Setting up libgomp1:s390x (15.2.0-9ubuntu1) ... 166s Setting up python3-wheel (0.46.1-2) ... 167s Setting up python3-platformdirs (4.4.0-1) ... 167s Setting up python3-genshi (0.7.10-1) ... 169s Setting up python3-roman (5.2-1) ... 169s Setting up autotools-dev (20240727.1) ... 169s Setting up python3-snowballstemmer (3.0.1-1) ... 170s Setting up python3-greenlet (3.2.4-2) ... 171s Setting up libmpc3:s390x (1.3.1-2) ... 171s Setting up autopoint (0.23.2-1) ... 171s Setting up python3-gunicorn (23.0.0-1) ... 172s Setting up python3-pip (25.1.1+dfsg-1ubuntu2) ... 179s Setting up python3-kajiki (1.0.2-1) ... 179s Setting up autoconf (2.72-3.1ubuntu1) ... 179s Setting up python3-pluggy (1.6.0-1) ... 180s Setting up libubsan1:s390x (15.2.0-9ubuntu1) ... 181s Setting up python3-legacy-cgi (2.6.4-1) ... 181s Setting up dwz (0.16-2) ... 181s Setting up libasan8:s390x (15.2.0-9ubuntu1) ... 181s Setting up libjson-perl (4.10000-1) ... 181s Setting up debugedit (1:5.2-3) ... 181s Setting up python3-roman-numerals (3.1.0-2) ... 181s Setting up sgml-base (1.31+nmu1) ... 181s Setting up python3-logutils (0.3.5-5) ... 182s Setting up libjs-jquery (3.7.1+dfsg+~3.5.33-1build1) ... 182s Setting up libisl23:s390x (0.27-1) ... 182s Setting up python3-simplegeneric (0.8.1-5build1) ... 183s Setting up python3-soupsieve (2.7-2) ... 183s Setting up python3.14-minimal (3.14.0-4) ... 186s Setting up libcc1-0:s390x (15.2.0-9ubuntu1) ... 186s Setting up libitm1:s390x (15.2.0-9ubuntu1) ... 186s Setting up python3-mako (1.3.10-3) ... 188s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 188s Setting up python3-webob (1:1.8.9-1) ... 189s Setting up python3-imagesize (1.4.1-1build1) ... 190s Setting up automake (1:1.18.1-3) ... 190s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 190s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 190s Setting up python3-pecan (1.5.1-6) ... 191s Setting up gettext (0.23.2-1) ... 191s Setting up libgcc-15-dev:s390x (15.2.0-9ubuntu1) ... 191s Setting up libpython3.14-stdlib:s390x (3.14.0-4) ... 191s Setting up python3-pytest (8.3.5-2) ... 194s Setting up python3-virtualenv (20.35.4+ds-1) ... 195s Setting up gunicorn (23.0.0-1) ... 195s Setting up python3-bs4 (4.14.2-1) ... 196s Setting up python3-sqlalchemy (2.0.40+ds1-2) ... 207s Setting up intltool-debian (0.35.0+20060710.6build1) ... 207s Setting up libstdc++-15-dev:s390x (15.2.0-9ubuntu1) ... 207s Setting up libjs-sphinxdoc (8.2.3-1ubuntu2) ... 207s Setting up dh-strip-nondeterminism (1.15.0-1) ... 207s Setting up xml-core (0.19) ... 208s Setting up cpp-15-s390x-linux-gnu (15.2.0-9ubuntu1) ... 208s Setting up python3-webtest (3.0.7-1) ... 208s /usr/lib/python3/dist-packages/webtest/http.py:133: SyntaxWarning: 'return' in a 'finally' block 208s return False 208s Setting up python3.14 (3.14.0-4) ... 212s Setting up gcc-15-s390x-linux-gnu (15.2.0-9ubuntu1) ... 212s Setting up g++-15-s390x-linux-gnu (15.2.0-9ubuntu1) ... 212s Setting up python-pecan-doc (1.5.1-6) ... 212s Setting up cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 212s Setting up po-debconf (1.0.21+nmu1) ... 212s Setting up python3-all (3.13.9-2) ... 212s Setting up openstack-pkg-tools (138) ... 212s Setting up gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 212s Setting up sphinx-common (8.2.3-1ubuntu2) ... 212s Setting up cpp-15 (15.2.0-9ubuntu1) ... 212s Setting up cpp (4:15.2.0-4ubuntu1) ... 213s Setting up g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 213s Setting up gcc-15 (15.2.0-9ubuntu1) ... 213s Setting up g++-15 (15.2.0-9ubuntu1) ... 213s Setting up libtool (2.5.4-7) ... 213s Setting up gcc (4:15.2.0-4ubuntu1) ... 213s Setting up dh-autoreconf (21) ... 213s Setting up g++ (4:15.2.0-4ubuntu1) ... 213s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 213s Setting up build-essential (12.12ubuntu2) ... 213s Setting up debhelper (13.24.2ubuntu1) ... 213s Processing triggers for install-info (7.2-5) ... 213s Processing triggers for libc-bin (2.42-2ubuntu2) ... 213s Processing triggers for systemd (257.9-0ubuntu2) ... 213s Processing triggers for man-db (2.13.1-1) ... 216s Processing triggers for sgml-base (1.31+nmu1) ... 216s Setting up docutils-common (0.22.3+dfsg-1) ... 216s Processing triggers for sgml-base (1.31+nmu1) ... 216s Setting up python3-docutils (0.22.3+dfsg-1) ... 219s Setting up python3-sphinx (8.2.3-1ubuntu2) ... 227s autopkgtest [07:00:26]: test unittests: [----------------------- 228s ============================= test session starts ============================== 228s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.14 228s cachedir: .pytest_cache 228s rootdir: /tmp/autopkgtest.tJPvyc/build.WV2/src 228s configfile: setup.cfg 228s plugins: typeguard-4.4.2 240s collecting ... collected 543 items / 3 deselected / 540 selected 240s 240s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_endpoint_with_query_string PASSED [ 0%] 240s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_with_recursion_loop PASSED [ 0%] 240s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_hit_error_page PASSED [ 0%] 240s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_middleware_routes_to_404_message PASSED [ 0%] 240s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_original_exception PASSED [ 0%] 240s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequestException PASSED [ 1%] 240s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_environ PASSED [ 1%] 240s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_factory PASSED [ 1%] 240s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url PASSED [ 1%] 240s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url_with_params PASSED [ 1%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_date_dumping_on_unix_timestamps PASSED [ 2%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed PASSED [ 2%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found PASSED [ 2%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over PASSED [ 2%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files PASSED [ 2%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_no_file_found_causes_passthrough PASSED [ 2%] 240s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file PASSED [ 3%] 240s pecan/tests/test_base.py::TestAppRoot::test_controller_lookup_by_string_path PASSED [ 3%] 240s pecan/tests/test_base.py::TestEmptyContent::test_empty_body PASSED [ 3%] 240s pecan/tests/test_base.py::TestEmptyContent::test_empty_index PASSED [ 3%] 240s pecan/tests/test_base.py::TestEmptyContent::test_empty_text PASSED [ 3%] 240s pecan/tests/test_base.py::TestEmptyContent::test_explicit_body PASSED [ 4%] 240s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json PASSED [ 4%] 240s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json_body PASSED [ 4%] 240s pecan/tests/test_base.py::TestEmptyContent::test_explicit_text PASSED [ 4%] 240s pecan/tests/test_base.py::TestEmptyContent::test_index_with_non_unicode PASSED [ 4%] 240s pecan/tests/test_base.py::TestAppIterFile::test_body_generator PASSED [ 5%] 240s pecan/tests/test_base.py::TestAppIterFile::test_empty_body_generator PASSED [ 5%] 240s pecan/tests/test_base.py::TestInvalidURLEncoding::test_rest_with_non_utf_8_body PASSED [ 5%] 240s pecan/tests/test_base.py::TestIndexRouting::test_empty_root PASSED [ 5%] 240s pecan/tests/test_base.py::TestIndexRouting::test_index PASSED [ 5%] 240s pecan/tests/test_base.py::TestIndexRouting::test_index_html PASSED [ 5%] 240s pecan/tests/test_base.py::TestObjectDispatch::test_index PASSED [ 6%] 240s pecan/tests/test_base.py::TestObjectDispatch::test_one_level PASSED [ 6%] 240s pecan/tests/test_base.py::TestObjectDispatch::test_one_level_with_trailing PASSED [ 6%] 240s pecan/tests/test_base.py::TestObjectDispatch::test_three_levels PASSED [ 6%] 240s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels PASSED [ 6%] 240s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels_with_trailing PASSED [ 7%] 240s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_child PASSED [ 7%] 240s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_methods PASSED [ 7%] 240s pecan/tests/test_base.py::TestLookups::test_index PASSED [ 7%] 240s pecan/tests/test_base.py::TestLookups::test_lookup PASSED [ 7%] 240s pecan/tests/test_base.py::TestLookups::test_lookup_with_method PASSED [ 7%] 240s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 8%] 240s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_return PASSED [ 8%] 240s pecan/tests/test_base.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 8%] 240s pecan/tests/test_base.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 8%] 240s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_GET PASSED [ 8%] 240s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST PASSED [ 9%] 240s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed PASSED [ 9%] 240s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed_json PASSED [ 9%] 240s pecan/tests/test_base.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 9%] 240s pecan/tests/test_base.py::TestControllerArguments::test_explicit_json_kwargs PASSED [ 9%] 240s pecan/tests/test_base.py::TestControllerArguments::test_explicit_kwargs PASSED [ 10%] 240s pecan/tests/test_base.py::TestControllerArguments::test_json_kwargs_from_root PASSED [ 10%] 240s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument PASSED [ 10%] 240s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_plus PASSED [ 10%] 240s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 10%] 240s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_plus PASSED [ 10%] 240s pecan/tests/test_base.py::TestControllerArguments::test_kwargs_from_root PASSED [ 11%] 241s pecan/tests/test_base.py::TestControllerArguments::test_many_remainders PASSED [ 11%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 11%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 11%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_kwargs PASSED [ 11%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional PASSED [ 12%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 12%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 12%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 12%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 12%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 12%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 13%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_json_kwargs PASSED [ 13%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 13%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 13%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 13%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 14%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 14%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 14%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 14%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_json_kwargs PASSED [ 14%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 15%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 15%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 15%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 15%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 15%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 15%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_json_kwargs PASSED [ 16%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 16%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 16%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 16%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 16%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 17%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 17%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_json_kwargs PASSED [ 17%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 17%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 17%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 17%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 18%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_args PASSED [ 18%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 18%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 18%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 18%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 19%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 19%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_json_kwargs PASSED [ 19%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 19%] 241s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 19%] 241s pecan/tests/test_base.py::TestControllerArguments::test_no_remainder PASSED [ 20%] 241s pecan/tests/test_base.py::TestControllerArguments::test_one_remainder PASSED [ 20%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg PASSED [ 20%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_json_kwargs PASSED [ 20%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 20%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 20%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_json_kwargs PASSED [ 21%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 21%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 21%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 21%] 241s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 21%] 241s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_json_kwargs PASSED [ 22%] 241s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 22%] 241s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 22%] 241s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_json_kwargs PASSED [ 22%] 241s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 22%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_empty_remainder_with_json_kwargs PASSED [ 22%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders PASSED [ 23%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_json_kwargs PASSED [ 23%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 23%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder PASSED [ 23%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_json_kwargs PASSED [ 23%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 24%] 242s pecan/tests/test_base.py::TestControllerArguments::test_post_three_remainders PASSED [ 24%] 242s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 24%] 242s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 24%] 242s pecan/tests/test_base.py::TestControllerArguments::test_required_argument PASSED [ 24%] 242s pecan/tests/test_base.py::TestControllerArguments::test_single_argument PASSED [ 25%] 242s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_plus PASSED [ 25%] 242s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 25%] 242s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_plus PASSED [ 25%] 242s pecan/tests/test_base.py::TestControllerArguments::test_staticmethod PASSED [ 25%] 242s pecan/tests/test_base.py::TestControllerArguments::test_two_arguments PASSED [ 25%] 242s pecan/tests/test_base.py::TestControllerArguments::test_two_remainders PASSED [ 26%] 242s pecan/tests/test_base.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 26%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_all PASSED [ 26%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 26%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 26%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_args PASSED [ 27%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 27%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_json_kwargs PASSED [ 27%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 27%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_kwargs PASSED [ 27%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed PASSED [ 27%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 28%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_post PASSED [ 28%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed PASSED [ 28%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed_with_json PASSED [ 28%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_json_kwargs PASSED [ 28%] 242s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 29%] 242s pecan/tests/test_base.py::TestDefaultErrorRendering::test_html_error PASSED [ 29%] 242s pecan/tests/test_base.py::TestDefaultErrorRendering::test_json_error PASSED [ 29%] 242s pecan/tests/test_base.py::TestDefaultErrorRendering::test_plain_error PASSED [ 29%] 242s pecan/tests/test_base.py::TestAbort::test_abort PASSED [ 29%] 242s pecan/tests/test_base.py::TestAbort::test_abort_keeps_traceback PASSED [ 30%] 242s pecan/tests/test_base.py::TestAbort::test_abort_with_detail PASSED [ 30%] 242s pecan/tests/test_base.py::TestScriptName::test_handle_script_name PASSED [ 30%] 242s pecan/tests/test_base.py::TestRedirect::test_index PASSED [ 30%] 242s pecan/tests/test_base.py::TestRedirect::test_internal PASSED [ 30%] 242s pecan/tests/test_base.py::TestRedirect::test_internal_with_301 PASSED [ 30%] 242s pecan/tests/test_base.py::TestRedirect::test_permanent_redirect PASSED [ 31%] 242s pecan/tests/test_base.py::TestRedirect::test_x_forward_proto PASSED [ 31%] 242s pecan/tests/test_base.py::TestInternalRedirectContext::test_context_does_not_bleed PASSED [ 31%] 242s pecan/tests/test_base.py::TestInternalRedirectContext::test_internal_with_request_context PASSED [ 31%] 242s pecan/tests/test_base.py::TestStreamedResponse::test_streaming_response PASSED [ 31%] 242s pecan/tests/test_base.py::TestManualResponse::test_manual_response PASSED [ 32%] 242s pecan/tests/test_base.py::TestCustomResponseandRequest::test_custom_objects PASSED [ 32%] 242s pecan/tests/test_base.py::TestThreadLocalState::test_request_state_cleanup PASSED [ 32%] 242s pecan/tests/test_base.py::TestThreadLocalState::test_thread_local_dir PASSED [ 32%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_bad_content_type PASSED [ 32%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_content_type_guessing_disabled PASSED [ 32%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_guessing_disabled PASSED [ 33%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_hidden_file PASSED [ 33%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_html_extension PASSED [ 33%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_image_extension PASSED [ 33%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_multi_dot_extension PASSED [ 33%] 242s pecan/tests/test_base.py::TestFileTypeExtensions::test_unknown_file_extension PASSED [ 34%] 242s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_accept_header_missing PASSED [ 34%] 242s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_discarded_accept_parameters PASSED [ 34%] 242s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_file_extension_has_higher_precedence PASSED [ 34%] 242s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_missing_accept PASSED [ 34%] 242s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_not_acceptable PASSED [ 35%] 242s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_quality PASSED [ 35%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical PASSED [ 35%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical_no_trailing_slash PASSED [ 35%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_broken_clients PASSED [ 35%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_index PASSED [ 35%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_posts_fail PASSED [ 36%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_root PASSED [ 36%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_redirect PASSED [ 36%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_with_trailing PASSED [ 36%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_with_args PASSED [ 36%] 242s pecan/tests/test_base.py::TestCanonicalRouting::test_with_query_string PASSED [ 37%] 242s pecan/tests/test_base.py::TestNonCanonical::test_app_wrap PASSED [ 37%] 242s pecan/tests/test_base.py::TestNonCanonical::test_index PASSED [ 37%] 242s pecan/tests/test_base.py::TestNonCanonical::test_proxy PASSED [ 37%] 242s pecan/tests/test_base.py::TestNonCanonical::test_sub_controller_with_trailing PASSED [ 37%] 242s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller PASSED [ 37%] 242s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller_with_kwargs PASSED [ 38%] 242s pecan/tests/test_base.py::TestLogging::test_logging_setup PASSED [ 38%] 242s pecan/tests/test_base.py::TestLogging::test_logging_setup_with_config_obj PASSED [ 38%] 242s pecan/tests/test_base.py::TestEngines::test_custom_renderer PASSED [ 38%] 242s pecan/tests/test_base.py::TestEngines::test_default_json_renderer PASSED [ 38%] 242s pecan/tests/test_base.py::TestEngines::test_default_json_renderer_with_explicit_content_type PASSED [ 39%] 242s pecan/tests/test_base.py::TestEngines::test_jinja PASSED [ 39%] 243s pecan/tests/test_base.py::TestEngines::test_json PASSED [ 39%] 243s pecan/tests/test_base.py::TestEngines::test_kajiki PASSED [ 39%] 243s pecan/tests/test_base.py::TestEngines::test_override_template PASSED [ 39%] 243s pecan/tests/test_base.py::TestEngines::test_render PASSED [ 40%] 243s pecan/tests/test_base.py::TestEngines::test_renderer_not_found PASSED [ 40%] 243s pecan/tests/test_base.py::TestDeprecatedRouteMethod::test_required_argument PASSED [ 40%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_alternate_route PASSED [ 40%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes PASSED [ 40%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes_in_subclass PASSED [ 40%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_on_index PASSED [ 41%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_default PASSED [ 41%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_generic_controllers PASSED [ 41%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_lookup PASSED [ 41%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_route PASSED [ 41%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_attribute_conflict PASSED [ 42%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_generic_controllers PASSED [ 42%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_invalid_route_arguments PASSED [ 42%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route PASSED [ 42%] 243s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route_conflict PASSED [ 42%] 245s pecan/tests/test_commands.py::TestCommandManager::test_commands PASSED [ 42%] 245s pecan/tests/test_commands.py::TestCommandRunner::test_commands PASSED [ 43%] 245s pecan/tests/test_commands.py::TestCommandRunner::test_run PASSED [ 43%] 245s pecan/tests/test_commands.py::TestCreateCommand::test_run PASSED [ 43%] 245s pecan/tests/test_conf.py::TestConf::test_config_bad_key PASSED [ 43%] 245s pecan/tests/test_conf.py::TestConf::test_config_dir PASSED [ 43%] 245s pecan/tests/test_conf.py::TestConf::test_config_from_dict PASSED [ 44%] 245s pecan/tests/test_conf.py::TestConf::test_config_from_file PASSED [ 44%] 245s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key PASSED [ 44%] 245s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key_return_default PASSED [ 44%] 245s pecan/tests/test_conf.py::TestConf::test_config_get_valid_key PASSED [ 44%] 245s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids PASSED [ 45%] 245s pecan/tests/test_conf.py::TestConf::test_config_missing_file PASSED [ 45%] 245s pecan/tests/test_conf.py::TestConf::test_config_missing_file_on_path PASSED [ 45%] 245s pecan/tests/test_conf.py::TestConf::test_config_repr PASSED [ 45%] 245s pecan/tests/test_conf.py::TestConf::test_config_to_dict PASSED [ 45%] 245s pecan/tests/test_conf.py::TestConf::test_config_to_dict_nested PASSED [ 45%] 245s pecan/tests/test_conf.py::TestConf::test_config_to_dict_prefixed PASSED [ 46%] 245s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import PASSED [ 46%] 245s pecan/tests/test_conf.py::TestConf::test_config_with_syntax_error PASSED [ 46%] 245s pecan/tests/test_conf.py::TestConf::test_update_config_fail_identifier PASSED [ 46%] 245s pecan/tests/test_conf.py::TestConf::test_update_config_fail_message PASSED [ 46%] 245s pecan/tests/test_conf.py::TestConf::test_update_config_with_dict PASSED [ 47%] 245s pecan/tests/test_conf.py::TestConf::test_update_force_dict PASSED [ 47%] 245s pecan/tests/test_conf.py::TestConf::test_update_set_config PASSED [ 47%] 245s pecan/tests/test_conf.py::TestConf::test_update_set_default_config PASSED [ 47%] 245s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_dict PASSED [ 47%] 245s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file PASSED [ 47%] 245s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_dict PASSED [ 48%] 245s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file PASSED [ 48%] 245s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_none_type PASSED [ 48%] 245s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_to_dir PASSED [ 48%] 245s pecan/tests/test_conf.py::TestConfFromEnv::test_invalid_path PASSED [ 48%] 245s pecan/tests/test_conf.py::TestConfFromEnv::test_is_not_set PASSED [ 49%] 245s pecan/tests/test_conf.py::TestConfFromEnv::test_return_valid_path PASSED [ 49%] 245s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_changed PASSED [ 49%] 245s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_default PASSED [ 49%] 245s pecan/tests/test_generic.py::TestGeneric::test_generic_allow_header PASSED [ 49%] 245s pecan/tests/test_generic.py::TestGeneric::test_nested_generic PASSED [ 50%] 245s pecan/tests/test_generic.py::TestGeneric::test_simple_generic PASSED [ 50%] 245s pecan/tests/test_generic.py::TestGenericWithSpecialMethods::test_generics_not_allowed PASSED [ 50%] 245s pecan/tests/test_hooks.py::TestHooks::test_basic_isolated_hook PASSED [ 50%] 245s pecan/tests/test_hooks.py::TestHooks::test_basic_multi_hook PASSED [ 50%] 245s pecan/tests/test_hooks.py::TestHooks::test_basic_single_hook PASSED [ 50%] 245s pecan/tests/test_hooks.py::TestHooks::test_internal_redirect_with_after_hook PASSED [ 51%] 245s pecan/tests/test_hooks.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 51%] 245s pecan/tests/test_hooks.py::TestHooks::test_mixin_hooks PASSED [ 51%] 245s pecan/tests/test_hooks.py::TestHooks::test_on_error_response_hook PASSED [ 51%] 245s pecan/tests/test_hooks.py::TestHooks::test_partial_hooks PASSED [ 51%] 245s pecan/tests/test_hooks.py::TestHooks::test_prioritized_hooks PASSED [ 52%] 245s pecan/tests/test_hooks.py::TestStateAccess::test_mixed_args PASSED [ 52%] 245s pecan/tests/test_hooks.py::TestStateAccess::test_no_args PASSED [ 52%] 245s pecan/tests/test_hooks.py::TestStateAccess::test_single_arg PASSED [ 52%] 245s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw PASSED [ 52%] 245s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw_post PASSED [ 52%] 245s pecan/tests/test_hooks.py::TestStateAccess::test_single_vararg PASSED [ 53%] 245s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_mixed_args PASSED [ 53%] 245s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_no_args PASSED [ 53%] 245s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_arg PASSED [ 53%] 245s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw PASSED [ 53%] 245s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw_post PASSED [ 54%] 245s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_vararg PASSED [ 54%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete PASSED [ 54%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_kwargs PASSED [ 54%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_method_argument PASSED [ 54%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_varargs PASSED [ 55%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all PASSED [ 55%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all_with_kwargs PASSED [ 55%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one PASSED [ 55%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_kwargs PASSED [ 55%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_varargs PASSED [ 55%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post PASSED [ 56%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_invalid_method_kwarg PASSED [ 56%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_kwargs PASSED [ 56%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_varargs PASSED [ 56%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put PASSED [ 56%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_kwargs PASSED [ 57%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_method_argument PASSED [ 57%] 245s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_varargs PASSED [ 57%] 245s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook PASSED [ 57%] 245s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_after_actions PASSED [ 57%] 245s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_broken_hook PASSED [ 57%] 245s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_class_decorator PASSED [ 58%] 245s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_decorator PASSED [ 58%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_bad_response_from_app PASSED [ 58%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_basic_single_default_hook PASSED [ 58%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_deal_with_pecan_configs PASSED [ 58%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_hook_formatting PASSED [ 59%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_item_not_in_defaults PASSED [ 59%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_blacklist_item PASSED [ 59%] 245s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_item PASSED [ 59%] 245s pecan/tests/test_hooks.py::TestRestControllerWithHooks::test_restcontroller_with_hooks PASSED [ 59%] 245s pecan/tests/test_jsonify.py::test_simple_rule PASSED [ 60%] 245s pecan/tests/test_jsonify.py::TestJsonify::test_simple_jsonify PASSED [ 60%] 245s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_datetime PASSED [ 60%] 245s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_decimal PASSED [ 60%] 245s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_fallback_to_builtin_encoder PASSED [ 60%] 245s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_json_callable PASSED [ 60%] 245s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_multidict PASSED [ 61%] 245s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_result_proxy PASSED [ 61%] 245s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_row_proxy PASSED [ 61%] 245s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_sa_object PASSED [ 61%] 245s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_locals_are_not_used PASSED [ 61%] 245s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning PASSED [ 62%] 245s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic PASSED [ 62%] 245s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic_delegate PASSED [ 62%] 245s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_empty_root PASSED [ 62%] 245s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index PASSED [ 62%] 245s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index_html PASSED [ 62%] 245s pecan/tests/test_no_thread_locals.py::TestManualResponse::test_manual_response PASSED [ 63%] 245s pecan/tests/test_no_thread_locals.py::TestDispatch::test_index PASSED [ 63%] 245s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level PASSED [ 63%] 245s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level_with_trailing PASSED [ 63%] 245s pecan/tests/test_no_thread_locals.py::TestDispatch::test_three_levels PASSED [ 63%] 245s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels PASSED [ 64%] 245s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels_with_trailing PASSED [ 64%] 245s pecan/tests/test_no_thread_locals.py::TestLookups::test_index PASSED [ 64%] 245s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup PASSED [ 64%] 245s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_method PASSED [ 64%] 245s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 65%] 245s pecan/tests/test_no_thread_locals.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 65%] 245s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 65%] 245s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 65%] 245s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_explicit_kwargs PASSED [ 65%] 245s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument PASSED [ 65%] 245s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 66%] 245s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_kwargs_from_root PASSED [ 66%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_many_remainders PASSED [ 66%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 66%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 66%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_kwargs PASSED [ 67%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional PASSED [ 67%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 67%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 67%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 67%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 67%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 68%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 68%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 68%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 68%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 68%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 69%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 69%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 69%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 69%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 69%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 70%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 70%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 70%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 70%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 70%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 70%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 71%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 71%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 71%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 71%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 71%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 72%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 72%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 72%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 72%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_args PASSED [ 72%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 72%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 73%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 73%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 73%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 73%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 73%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 74%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_no_remainder PASSED [ 74%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_one_remainder PASSED [ 74%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg PASSED [ 74%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 74%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 75%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 75%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 75%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 75%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 75%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 75%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 76%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 76%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders PASSED [ 76%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 76%] 246s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder PASSED [ 76%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 77%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_three_remainders PASSED [ 77%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 77%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 77%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_required_argument PASSED [ 77%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument PASSED [ 77%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 78%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_arguments PASSED [ 78%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_remainders PASSED [ 78%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 78%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all PASSED [ 78%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 79%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 79%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args PASSED [ 79%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 79%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 79%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_kwargs PASSED [ 80%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed PASSED [ 80%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 80%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post PASSED [ 80%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_mixed PASSED [ 80%] 247s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 80%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_action PASSED [ 81%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type PASSED [ 81%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type_with_method_parameter PASSED [ 81%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_method PASSED [ 81%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter PASSED [ 81%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter_and_post PASSED [ 82%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_all PASSED [ 82%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_delete PASSED [ 82%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_one PASSED [ 82%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_invalid_custom_action PASSED [ 82%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_action PASSED [ 82%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_nested_action PASSED [ 83%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_with_trailing_slash PASSED [ 83%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_without_trailing_slash PASSED [ 83%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_post PASSED [ 83%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_options PASSED [ 83%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_options_with_method_parameter PASSED [ 84%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action PASSED [ 84%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action_with_method_parameter PASSED [ 84%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_post PASSED [ 84%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_put PASSED [ 84%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_get PASSED [ 85%] 247s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_post PASSED [ 85%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_isolated_hook PASSED [ 85%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_multi_hook PASSED [ 85%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_single_hook PASSED [ 85%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 85%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_on_error_response_hook PASSED [ 86%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_partial_hooks PASSED [ 86%] 247s pecan/tests/test_no_thread_locals.py::TestHooks::test_prioritized_hooks PASSED [ 86%] 247s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_default PASSED [ 86%] 247s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_extra_args PASSED [ 86%] 247s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_method PASSED [ 87%] 247s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_path PASSED [ 87%] 247s pecan/tests/test_rest.py::TestRestController::test_405_with_lookup PASSED [ 87%] 247s pecan/tests/test_rest.py::TestRestController::test_bad_rest PASSED [ 87%] 248s pecan/tests/test_rest.py::TestRestController::test_basic_rest PASSED [ 87%] 248s pecan/tests/test_rest.py::TestRestController::test_complicated_nested_rest PASSED [ 87%] 248s pecan/tests/test_rest.py::TestRestController::test_custom_delete PASSED [ 88%] 248s pecan/tests/test_rest.py::TestRestController::test_custom_with_trailing_slash PASSED [ 88%] 248s pecan/tests/test_rest.py::TestRestController::test_dynamic_rest_lookup PASSED [ 88%] 248s pecan/tests/test_rest.py::TestRestController::test_get_with_var_args PASSED [ 88%] 248s pecan/tests/test_rest.py::TestRestController::test_getall_with_lookup PASSED [ 88%] 248s pecan/tests/test_rest.py::TestRestController::test_getall_with_trailing_slash PASSED [ 89%] 248s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_delete PASSED [ 89%] 248s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_get PASSED [ 89%] 248s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_post PASSED [ 89%] 248s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_put PASSED [ 89%] 248s pecan/tests/test_rest.py::TestRestController::test_nested_get_all PASSED [ 90%] 248s pecan/tests/test_rest.py::TestRestController::test_nested_get_all_with_lookup PASSED [ 90%] 248s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_default PASSED [ 90%] 248s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_lookup PASSED [ 90%] 248s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_missing_intermediate_id PASSED [ 90%] 248s pecan/tests/test_rest.py::TestRestController::test_post_with_kwargs_only PASSED [ 90%] 248s pecan/tests/test_rest.py::TestRestController::test_proper_allow_header_multiple_gets PASSED [ 91%] 248s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_endpoint PASSED [ 91%] 248s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_uri PASSED [ 91%] 248s pecan/tests/test_rest.py::TestRestController::test_simple_nested_rest PASSED [ 91%] 248s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest PASSED [ 91%] 248s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest_with_overwrites PASSED [ 92%] 248s pecan/tests/test_rest.py::TestExplicitRoute::test_alternate_route PASSED [ 92%] 248s pecan/tests/test_scaffolds.py::TestPecanScaffold::test_normalize_pkg_name PASSED [ 92%] 249s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir PASSED [ 92%] 249s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_file_content_substitution PASSED [ 92%] 249s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_filename_substitution PASSED [ 92%] 249s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_already_exists PASSED [ 93%] 249s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_levels_deep PASSED [ 93%] 249s pecan/tests/test_secure.py::TestSecure::test_secure_attribute PASSED [ 93%] 249s pecan/tests/test_secure.py::TestSecure::test_secure_obj_only_failure PASSED [ 93%] 249s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller PASSED [ 93%] 249s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_lambda PASSED [ 94%] 249s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute PASSED [ 94%] 249s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute_with_unlocked PASSED [ 94%] 249s pecan/tests/test_secure.py::TestSecure::test_simple_secure PASSED [ 94%] 249s pecan/tests/test_secure.py::TestSecure::test_state_attribute PASSED [ 94%] 249s pecan/tests/test_secure.py::TestSecure::test_unlocked_attribute PASSED [ 95%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_cyclical_protection PASSED [ 95%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_failure PASSED [ 95%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_success PASSED [ 95%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_layered_protection PASSED [ 95%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_lookup_to_wrapped_attribute_on_self PASSED [ 95%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_mixed_protection PASSED [ 96%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_protected_lookup PASSED [ 96%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secret_through_lookup PASSED [ 96%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secured_notfound_lookup PASSED [ 96%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_sub_of_both_not_secret PASSED [ 96%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_attribute_in_insecure PASSED [ 97%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_lookup PASSED [ 97%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_failure PASSED [ 97%] 249s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_success PASSED [ 97%] 249s pecan/tests/test_secure.py::SecureControllerSharedPermissionsRegression::test_inherited_security PASSED [ 97%] 249s pecan/tests/test_templating.py::TestTemplate::test_available PASSED [ 97%] 249s pecan/tests/test_templating.py::TestTemplate::test_create_bad PASSED [ 98%] 249s pecan/tests/test_templating.py::TestTemplate::test_extra_vars PASSED [ 98%] 249s pecan/tests/test_templating.py::TestTemplate::test_update_extra_vars PASSED [ 98%] 249s pecan/tests/test_templating.py::TestTemplateLineFormat::test_format_line_context PASSED [ 98%] 249s pecan/tests/test_util.py::TestArgSpec::test_class_based_decorator PASSED [ 98%] 249s pecan/tests/test_util.py::TestArgSpec::test_decorator_with_args PASSED [ 99%] 249s pecan/tests/test_util.py::TestArgSpec::test_multiple_decorators PASSED [ 99%] 249s pecan/tests/test_util.py::TestArgSpec::test_nested_cells PASSED [ 99%] 249s pecan/tests/test_util.py::TestArgSpec::test_no_decorator PASSED [ 99%] 249s pecan/tests/test_util.py::TestArgSpec::test_simple_decorator PASSED [ 99%] 249s pecan/tests/test_util.py::TestArgSpec::test_simple_wrapper PASSED [100%] 249s 249s =============================== warnings summary =============================== 249s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed 249s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found 249s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over 249s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files 249s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file 249s /tmp/autopkgtest.tJPvyc/build.WV2/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). 249s datetime.utcfromtimestamp(os.path.getmtime(filename)), 249s 249s pecan/tests/test_commands.py::TestCommandManager::test_commands 249s /tmp/autopkgtest.tJPvyc/build.WV2/src/pecan/commands/base.py:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 249s import pkg_resources 249s 249s pecan/tests/test_conf.py::TestConf::test_config_from_file 249s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids 249s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import 249s pecan/tests/test_conf.py::TestConf::test_update_force_dict 249s pecan/tests/test_conf.py::TestConf::test_update_set_config 249s pecan/tests/test_conf.py::TestConf::test_update_set_default_config 249s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file 249s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file 249s :533: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead 249s 249s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 249s =============== 540 passed, 3 deselected, 14 warnings in 20.83s ================ 251s ============================= test session starts ============================== 251s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.13 251s cachedir: .pytest_cache 251s rootdir: /tmp/autopkgtest.tJPvyc/build.WV2/src 251s configfile: setup.cfg 251s plugins: typeguard-4.4.2 259s collecting ... collected 543 items / 3 deselected / 540 selected 259s 259s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_endpoint_with_query_string PASSED [ 0%] 259s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_error_with_recursion_loop PASSED [ 0%] 259s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_hit_error_page PASSED [ 0%] 259s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_middleware_routes_to_404_message PASSED [ 0%] 259s pecan/tests/middleware/test_errordocument.py::TestErrorDocumentMiddleware::test_original_exception PASSED [ 0%] 259s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequestException PASSED [ 1%] 259s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_environ PASSED [ 1%] 259s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_factory PASSED [ 1%] 259s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url PASSED [ 1%] 259s pecan/tests/middleware/test_recursive.py::TestRecursiveMiddleware::test_ForwardRequest_url_with_params PASSED [ 1%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_date_dumping_on_unix_timestamps PASSED [ 2%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed PASSED [ 2%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found PASSED [ 2%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over PASSED [ 2%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files PASSED [ 2%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_no_file_found_causes_passthrough PASSED [ 2%] 259s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file PASSED [ 3%] 259s pecan/tests/test_base.py::TestAppRoot::test_controller_lookup_by_string_path PASSED [ 3%] 259s pecan/tests/test_base.py::TestEmptyContent::test_empty_body PASSED [ 3%] 259s pecan/tests/test_base.py::TestEmptyContent::test_empty_index PASSED [ 3%] 259s pecan/tests/test_base.py::TestEmptyContent::test_empty_text PASSED [ 3%] 259s pecan/tests/test_base.py::TestEmptyContent::test_explicit_body PASSED [ 4%] 259s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json PASSED [ 4%] 259s pecan/tests/test_base.py::TestEmptyContent::test_explicit_json_body PASSED [ 4%] 259s pecan/tests/test_base.py::TestEmptyContent::test_explicit_text PASSED [ 4%] 259s pecan/tests/test_base.py::TestEmptyContent::test_index_with_non_unicode PASSED [ 4%] 259s pecan/tests/test_base.py::TestAppIterFile::test_body_generator PASSED [ 5%] 259s pecan/tests/test_base.py::TestAppIterFile::test_empty_body_generator PASSED [ 5%] 259s pecan/tests/test_base.py::TestInvalidURLEncoding::test_rest_with_non_utf_8_body PASSED [ 5%] 259s pecan/tests/test_base.py::TestIndexRouting::test_empty_root PASSED [ 5%] 259s pecan/tests/test_base.py::TestIndexRouting::test_index PASSED [ 5%] 259s pecan/tests/test_base.py::TestIndexRouting::test_index_html PASSED [ 5%] 259s pecan/tests/test_base.py::TestObjectDispatch::test_index PASSED [ 6%] 259s pecan/tests/test_base.py::TestObjectDispatch::test_one_level PASSED [ 6%] 259s pecan/tests/test_base.py::TestObjectDispatch::test_one_level_with_trailing PASSED [ 6%] 259s pecan/tests/test_base.py::TestObjectDispatch::test_three_levels PASSED [ 6%] 259s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels PASSED [ 6%] 259s pecan/tests/test_base.py::TestObjectDispatch::test_two_levels_with_trailing PASSED [ 7%] 259s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_child PASSED [ 7%] 259s pecan/tests/test_base.py::TestUnicodePathSegments::test_unicode_methods PASSED [ 7%] 259s pecan/tests/test_base.py::TestLookups::test_index PASSED [ 7%] 259s pecan/tests/test_base.py::TestLookups::test_lookup PASSED [ 7%] 259s pecan/tests/test_base.py::TestLookups::test_lookup_with_method PASSED [ 7%] 259s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 8%] 259s pecan/tests/test_base.py::TestLookups::test_lookup_with_wrong_return PASSED [ 8%] 259s pecan/tests/test_base.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 8%] 259s pecan/tests/test_base.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 8%] 259s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_GET PASSED [ 8%] 259s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST PASSED [ 9%] 259s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed PASSED [ 9%] 259s pecan/tests/test_base.py::TestControllerArguments::test_duplicate_query_parameters_POST_mixed_json PASSED [ 9%] 259s pecan/tests/test_base.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 9%] 259s pecan/tests/test_base.py::TestControllerArguments::test_explicit_json_kwargs PASSED [ 9%] 259s pecan/tests/test_base.py::TestControllerArguments::test_explicit_kwargs PASSED [ 10%] 259s pecan/tests/test_base.py::TestControllerArguments::test_json_kwargs_from_root PASSED [ 10%] 259s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument PASSED [ 10%] 259s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_plus PASSED [ 10%] 259s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 10%] 259s pecan/tests/test_base.py::TestControllerArguments::test_keyword_argument_with_plus PASSED [ 10%] 259s pecan/tests/test_base.py::TestControllerArguments::test_kwargs_from_root PASSED [ 11%] 259s pecan/tests/test_base.py::TestControllerArguments::test_many_remainders PASSED [ 11%] 259s pecan/tests/test_base.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 11%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 11%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_kwargs PASSED [ 11%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional PASSED [ 12%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 12%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 12%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 12%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 12%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 12%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 13%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_json_kwargs PASSED [ 13%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 13%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 13%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 13%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 14%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 14%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 14%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 14%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_and_json_kwargs PASSED [ 14%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 15%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 15%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 15%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 15%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 15%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 15%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_json_kwargs PASSED [ 16%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 16%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 16%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 16%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 16%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 17%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 17%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_json_kwargs PASSED [ 17%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 17%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 17%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 17%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 18%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_args PASSED [ 18%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 18%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 18%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 18%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 19%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 19%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_variable_kwargs_with_json_kwargs PASSED [ 19%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 19%] 260s pecan/tests/test_base.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 19%] 260s pecan/tests/test_base.py::TestControllerArguments::test_no_remainder PASSED [ 20%] 260s pecan/tests/test_base.py::TestControllerArguments::test_one_remainder PASSED [ 20%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg PASSED [ 20%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_json_kwargs PASSED [ 20%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 20%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 20%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_json_kwargs PASSED [ 21%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 21%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 21%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 21%] 260s pecan/tests/test_base.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 21%] 260s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_json_kwargs PASSED [ 22%] 260s pecan/tests/test_base.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 22%] 260s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 22%] 260s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_json_kwargs PASSED [ 22%] 260s pecan/tests/test_base.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 22%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_empty_remainder_with_json_kwargs PASSED [ 22%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders PASSED [ 23%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_json_kwargs PASSED [ 23%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 23%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder PASSED [ 23%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_json_kwargs PASSED [ 23%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 24%] 260s pecan/tests/test_base.py::TestControllerArguments::test_post_three_remainders PASSED [ 24%] 260s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 24%] 260s pecan/tests/test_base.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 24%] 261s pecan/tests/test_base.py::TestControllerArguments::test_required_argument PASSED [ 24%] 261s pecan/tests/test_base.py::TestControllerArguments::test_single_argument PASSED [ 25%] 261s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_plus PASSED [ 25%] 261s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 25%] 261s pecan/tests/test_base.py::TestControllerArguments::test_single_argument_with_plus PASSED [ 25%] 261s pecan/tests/test_base.py::TestControllerArguments::test_staticmethod PASSED [ 25%] 261s pecan/tests/test_base.py::TestControllerArguments::test_two_arguments PASSED [ 25%] 261s pecan/tests/test_base.py::TestControllerArguments::test_two_remainders PASSED [ 26%] 261s pecan/tests/test_base.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 26%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_all PASSED [ 26%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 26%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 26%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_args PASSED [ 27%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 27%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_json_kwargs PASSED [ 27%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 27%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_kwargs PASSED [ 27%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed PASSED [ 27%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 28%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_post PASSED [ 28%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed PASSED [ 28%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_mixed_with_json PASSED [ 28%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_json_kwargs PASSED [ 28%] 261s pecan/tests/test_base.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 29%] 261s pecan/tests/test_base.py::TestDefaultErrorRendering::test_html_error PASSED [ 29%] 261s pecan/tests/test_base.py::TestDefaultErrorRendering::test_json_error PASSED [ 29%] 261s pecan/tests/test_base.py::TestDefaultErrorRendering::test_plain_error PASSED [ 29%] 261s pecan/tests/test_base.py::TestAbort::test_abort PASSED [ 29%] 261s pecan/tests/test_base.py::TestAbort::test_abort_keeps_traceback PASSED [ 30%] 261s pecan/tests/test_base.py::TestAbort::test_abort_with_detail PASSED [ 30%] 261s pecan/tests/test_base.py::TestScriptName::test_handle_script_name PASSED [ 30%] 261s pecan/tests/test_base.py::TestRedirect::test_index PASSED [ 30%] 261s pecan/tests/test_base.py::TestRedirect::test_internal PASSED [ 30%] 261s pecan/tests/test_base.py::TestRedirect::test_internal_with_301 PASSED [ 30%] 261s pecan/tests/test_base.py::TestRedirect::test_permanent_redirect PASSED [ 31%] 261s pecan/tests/test_base.py::TestRedirect::test_x_forward_proto PASSED [ 31%] 261s pecan/tests/test_base.py::TestInternalRedirectContext::test_context_does_not_bleed PASSED [ 31%] 261s pecan/tests/test_base.py::TestInternalRedirectContext::test_internal_with_request_context PASSED [ 31%] 261s pecan/tests/test_base.py::TestStreamedResponse::test_streaming_response PASSED [ 31%] 261s pecan/tests/test_base.py::TestManualResponse::test_manual_response PASSED [ 32%] 261s pecan/tests/test_base.py::TestCustomResponseandRequest::test_custom_objects PASSED [ 32%] 261s pecan/tests/test_base.py::TestThreadLocalState::test_request_state_cleanup PASSED [ 32%] 261s pecan/tests/test_base.py::TestThreadLocalState::test_thread_local_dir PASSED [ 32%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_bad_content_type PASSED [ 32%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_content_type_guessing_disabled PASSED [ 32%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_guessing_disabled PASSED [ 33%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_hidden_file PASSED [ 33%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_html_extension PASSED [ 33%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_image_extension PASSED [ 33%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_multi_dot_extension PASSED [ 33%] 261s pecan/tests/test_base.py::TestFileTypeExtensions::test_unknown_file_extension PASSED [ 34%] 261s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_accept_header_missing PASSED [ 34%] 261s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_discarded_accept_parameters PASSED [ 34%] 261s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_file_extension_has_higher_precedence PASSED [ 34%] 261s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_missing_accept PASSED [ 34%] 261s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_not_acceptable PASSED [ 35%] 261s pecan/tests/test_base.py::TestContentTypeByAcceptHeaders::test_quality PASSED [ 35%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical PASSED [ 35%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_accept_noncanonical_no_trailing_slash PASSED [ 35%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_broken_clients PASSED [ 35%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_index PASSED [ 35%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_posts_fail PASSED [ 36%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_root PASSED [ 36%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_redirect PASSED [ 36%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_sub_controller_with_trailing PASSED [ 36%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_with_args PASSED [ 36%] 261s pecan/tests/test_base.py::TestCanonicalRouting::test_with_query_string PASSED [ 37%] 261s pecan/tests/test_base.py::TestNonCanonical::test_app_wrap PASSED [ 37%] 261s pecan/tests/test_base.py::TestNonCanonical::test_index PASSED [ 37%] 261s pecan/tests/test_base.py::TestNonCanonical::test_proxy PASSED [ 37%] 261s pecan/tests/test_base.py::TestNonCanonical::test_sub_controller_with_trailing PASSED [ 37%] 261s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller PASSED [ 37%] 261s pecan/tests/test_base.py::TestNonCanonical::test_subcontroller_with_kwargs PASSED [ 38%] 261s pecan/tests/test_base.py::TestLogging::test_logging_setup PASSED [ 38%] 261s pecan/tests/test_base.py::TestLogging::test_logging_setup_with_config_obj PASSED [ 38%] 261s pecan/tests/test_base.py::TestEngines::test_custom_renderer PASSED [ 38%] 261s pecan/tests/test_base.py::TestEngines::test_default_json_renderer PASSED [ 38%] 261s pecan/tests/test_base.py::TestEngines::test_default_json_renderer_with_explicit_content_type PASSED [ 39%] 261s pecan/tests/test_base.py::TestEngines::test_jinja PASSED [ 39%] 261s pecan/tests/test_base.py::TestEngines::test_json PASSED [ 39%] 261s pecan/tests/test_base.py::TestEngines::test_kajiki PASSED [ 39%] 261s pecan/tests/test_base.py::TestEngines::test_override_template PASSED [ 39%] 261s pecan/tests/test_base.py::TestEngines::test_render PASSED [ 40%] 261s pecan/tests/test_base.py::TestEngines::test_renderer_not_found PASSED [ 40%] 261s pecan/tests/test_base.py::TestDeprecatedRouteMethod::test_required_argument PASSED [ 40%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_alternate_route PASSED [ 40%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes PASSED [ 40%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_conflicting_custom_routes_in_subclass PASSED [ 40%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_on_index PASSED [ 41%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_default PASSED [ 41%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_generic_controllers PASSED [ 41%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_lookup PASSED [ 41%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_prohibited_on_route PASSED [ 41%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_attribute_conflict PASSED [ 42%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_custom_route_with_generic_controllers PASSED [ 42%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_invalid_route_arguments PASSED [ 42%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route PASSED [ 42%] 261s pecan/tests/test_base.py::TestExplicitRoute::test_manual_route_conflict PASSED [ 42%] 261s pecan/tests/test_commands.py::TestCommandManager::test_commands PASSED [ 42%] 261s pecan/tests/test_commands.py::TestCommandRunner::test_commands PASSED [ 43%] 261s pecan/tests/test_commands.py::TestCommandRunner::test_run PASSED [ 43%] 261s pecan/tests/test_commands.py::TestCreateCommand::test_run PASSED [ 43%] 261s pecan/tests/test_conf.py::TestConf::test_config_bad_key PASSED [ 43%] 261s pecan/tests/test_conf.py::TestConf::test_config_dir PASSED [ 43%] 261s pecan/tests/test_conf.py::TestConf::test_config_from_dict PASSED [ 44%] 261s pecan/tests/test_conf.py::TestConf::test_config_from_file PASSED [ 44%] 261s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key PASSED [ 44%] 261s pecan/tests/test_conf.py::TestConf::test_config_get_invalid_key_return_default PASSED [ 44%] 261s pecan/tests/test_conf.py::TestConf::test_config_get_valid_key PASSED [ 44%] 261s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids PASSED [ 45%] 261s pecan/tests/test_conf.py::TestConf::test_config_missing_file PASSED [ 45%] 261s pecan/tests/test_conf.py::TestConf::test_config_missing_file_on_path PASSED [ 45%] 261s pecan/tests/test_conf.py::TestConf::test_config_repr PASSED [ 45%] 261s pecan/tests/test_conf.py::TestConf::test_config_to_dict PASSED [ 45%] 261s pecan/tests/test_conf.py::TestConf::test_config_to_dict_nested PASSED [ 45%] 261s pecan/tests/test_conf.py::TestConf::test_config_to_dict_prefixed PASSED [ 46%] 261s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import PASSED [ 46%] 261s pecan/tests/test_conf.py::TestConf::test_config_with_syntax_error PASSED [ 46%] 261s pecan/tests/test_conf.py::TestConf::test_update_config_fail_identifier PASSED [ 46%] 261s pecan/tests/test_conf.py::TestConf::test_update_config_fail_message PASSED [ 46%] 261s pecan/tests/test_conf.py::TestConf::test_update_config_with_dict PASSED [ 47%] 262s pecan/tests/test_conf.py::TestConf::test_update_force_dict PASSED [ 47%] 262s pecan/tests/test_conf.py::TestConf::test_update_set_config PASSED [ 47%] 262s pecan/tests/test_conf.py::TestConf::test_update_set_default_config PASSED [ 47%] 262s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_dict PASSED [ 47%] 262s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file PASSED [ 47%] 262s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_dict PASSED [ 48%] 262s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file PASSED [ 48%] 262s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_none_type PASSED [ 48%] 262s pecan/tests/test_conf.py::TestGlobalConfig::test_set_config_to_dir PASSED [ 48%] 262s pecan/tests/test_conf.py::TestConfFromEnv::test_invalid_path PASSED [ 48%] 262s pecan/tests/test_conf.py::TestConfFromEnv::test_is_not_set PASSED [ 49%] 262s pecan/tests/test_conf.py::TestConfFromEnv::test_return_valid_path PASSED [ 49%] 262s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_changed PASSED [ 49%] 262s pecan/tests/test_conf.py::TestConfigCleanup::test_conf_default PASSED [ 49%] 262s pecan/tests/test_generic.py::TestGeneric::test_generic_allow_header PASSED [ 49%] 262s pecan/tests/test_generic.py::TestGeneric::test_nested_generic PASSED [ 50%] 262s pecan/tests/test_generic.py::TestGeneric::test_simple_generic PASSED [ 50%] 262s pecan/tests/test_generic.py::TestGenericWithSpecialMethods::test_generics_not_allowed PASSED [ 50%] 262s pecan/tests/test_hooks.py::TestHooks::test_basic_isolated_hook PASSED [ 50%] 262s pecan/tests/test_hooks.py::TestHooks::test_basic_multi_hook PASSED [ 50%] 262s pecan/tests/test_hooks.py::TestHooks::test_basic_single_hook PASSED [ 50%] 262s pecan/tests/test_hooks.py::TestHooks::test_internal_redirect_with_after_hook PASSED [ 51%] 262s pecan/tests/test_hooks.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 51%] 262s pecan/tests/test_hooks.py::TestHooks::test_mixin_hooks PASSED [ 51%] 262s pecan/tests/test_hooks.py::TestHooks::test_on_error_response_hook PASSED [ 51%] 262s pecan/tests/test_hooks.py::TestHooks::test_partial_hooks PASSED [ 51%] 262s pecan/tests/test_hooks.py::TestHooks::test_prioritized_hooks PASSED [ 52%] 262s pecan/tests/test_hooks.py::TestStateAccess::test_mixed_args PASSED [ 52%] 262s pecan/tests/test_hooks.py::TestStateAccess::test_no_args PASSED [ 52%] 262s pecan/tests/test_hooks.py::TestStateAccess::test_single_arg PASSED [ 52%] 262s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw PASSED [ 52%] 262s pecan/tests/test_hooks.py::TestStateAccess::test_single_kw_post PASSED [ 52%] 262s pecan/tests/test_hooks.py::TestStateAccess::test_single_vararg PASSED [ 53%] 262s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_mixed_args PASSED [ 53%] 262s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_no_args PASSED [ 53%] 262s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_arg PASSED [ 53%] 262s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw PASSED [ 53%] 262s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_kw_post PASSED [ 54%] 262s pecan/tests/test_hooks.py::TestStateAccessWithoutThreadLocals::test_single_vararg PASSED [ 54%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete PASSED [ 54%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_kwargs PASSED [ 54%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_method_argument PASSED [ 54%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_delete_with_varargs PASSED [ 55%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all PASSED [ 55%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_all_with_kwargs PASSED [ 55%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one PASSED [ 55%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_kwargs PASSED [ 55%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_get_one_with_varargs PASSED [ 55%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post PASSED [ 56%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_invalid_method_kwarg PASSED [ 56%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_kwargs PASSED [ 56%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_post_with_varargs PASSED [ 56%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put PASSED [ 56%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_kwargs PASSED [ 57%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_method_argument PASSED [ 57%] 262s pecan/tests/test_hooks.py::TestRestControllerStateAccess::test_put_with_varargs PASSED [ 57%] 262s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook PASSED [ 57%] 262s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_after_actions PASSED [ 57%] 262s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_broken_hook PASSED [ 57%] 262s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_class_decorator PASSED [ 58%] 262s pecan/tests/test_hooks.py::TestTransactionHook::test_transaction_hook_with_transactional_decorator PASSED [ 58%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_bad_response_from_app PASSED [ 58%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_basic_single_default_hook PASSED [ 58%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_deal_with_pecan_configs PASSED [ 58%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_hook_formatting PASSED [ 59%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_item_not_in_defaults PASSED [ 59%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_blacklist_item PASSED [ 59%] 262s pecan/tests/test_hooks.py::TestRequestViewerHook::test_single_item PASSED [ 59%] 262s pecan/tests/test_hooks.py::TestRestControllerWithHooks::test_restcontroller_with_hooks PASSED [ 59%] 262s pecan/tests/test_jsonify.py::test_simple_rule PASSED [ 60%] 262s pecan/tests/test_jsonify.py::TestJsonify::test_simple_jsonify PASSED [ 60%] 262s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_datetime PASSED [ 60%] 262s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_decimal PASSED [ 60%] 262s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_fallback_to_builtin_encoder PASSED [ 60%] 262s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_json_callable PASSED [ 60%] 262s pecan/tests/test_jsonify.py::TestJsonifyGenericEncoder::test_multidict PASSED [ 61%] 262s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_result_proxy PASSED [ 61%] 262s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_row_proxy PASSED [ 61%] 262s pecan/tests/test_jsonify.py::TestJsonifySQLAlchemyGenericEncoder::test_sa_object PASSED [ 61%] 262s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_locals_are_not_used PASSED [ 61%] 262s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning PASSED [ 62%] 262s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic PASSED [ 62%] 262s pecan/tests/test_no_thread_locals.py::TestThreadingLocalUsage::test_threadlocal_argument_warning_on_generic_delegate PASSED [ 62%] 262s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_empty_root PASSED [ 62%] 262s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index PASSED [ 62%] 262s pecan/tests/test_no_thread_locals.py::TestIndexRouting::test_index_html PASSED [ 62%] 262s pecan/tests/test_no_thread_locals.py::TestManualResponse::test_manual_response PASSED [ 63%] 262s pecan/tests/test_no_thread_locals.py::TestDispatch::test_index PASSED [ 63%] 262s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level PASSED [ 63%] 262s pecan/tests/test_no_thread_locals.py::TestDispatch::test_one_level_with_trailing PASSED [ 63%] 262s pecan/tests/test_no_thread_locals.py::TestDispatch::test_three_levels PASSED [ 63%] 262s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels PASSED [ 64%] 262s pecan/tests/test_no_thread_locals.py::TestDispatch::test_two_levels_with_trailing PASSED [ 64%] 262s pecan/tests/test_no_thread_locals.py::TestLookups::test_index PASSED [ 64%] 262s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup PASSED [ 64%] 263s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_method PASSED [ 64%] 263s pecan/tests/test_no_thread_locals.py::TestLookups::test_lookup_with_wrong_argspec PASSED [ 65%] 263s pecan/tests/test_no_thread_locals.py::TestCanonicalLookups::test_canonical_lookup PASSED [ 65%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_argument_and_keyword_argument PASSED [ 65%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_encoded_argument_and_keyword_argument PASSED [ 65%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_explicit_kwargs PASSED [ 65%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument PASSED [ 65%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_keyword_argument_with_encoded_url PASSED [ 66%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_kwargs_from_root PASSED [ 66%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_many_remainders PASSED [ 66%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_args_with_url_encoded_kwargs PASSED [ 66%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_encoded_variable_args PASSED [ 66%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_kwargs PASSED [ 67%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional PASSED [ 67%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_encoded_kwarg PASSED [ 67%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_last_kwarg PASSED [ 67%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_middle_arg PASSED [ 67%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_dict_kwargs PASSED [ 67%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_dict_kwargs PASSED [ 68%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_encoded_kwargs PASSED [ 68%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_args_with_multiple_kwargs PASSED [ 68%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_encoded_positional_args_and_dict_kwargs PASSED [ 68%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_missing PASSED [ 68%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args PASSED [ 69%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_args PASSED [ 69%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_all_url_encoded_args PASSED [ 69%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_and_dict_kwargs PASSED [ 69%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_arg PASSED [ 69%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_one_url_encoded_arg PASSED [ 70%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_too_many_args PASSED [ 70%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_dict_kwargs PASSED [ 70%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_dict_kwargs PASSED [ 70%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_encoded_str_kwargs PASSED [ 70%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_kwargs PASSED [ 70%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_string_kwargs PASSED [ 71%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_positional_args_with_url_encoded_kwargs PASSED [ 71%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_optional_url_encoded PASSED [ 71%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments PASSED [ 71%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_dictionary_kwargs PASSED [ 71%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_kwargs PASSED [ 72%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encode PASSED [ 72%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_arguments_with_url_encoded_kwargs PASSED [ 72%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_positional_url_encoded_arguments_with_kwargs PASSED [ 72%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_args PASSED [ 72%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs PASSED [ 72%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_dict_kwargs PASSED [ 73%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_encoded_dict_kwargs PASSED [ 73%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_encoded_kwargs PASSED [ 73%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_variable_kwargs_with_explicit_kwargs PASSED [ 73%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_kwargs PASSED [ 73%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_multiple_with_url_encoded_kwargs PASSED [ 74%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_no_remainder PASSED [ 74%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_one_remainder PASSED [ 74%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg PASSED [ 74%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_kwargs PASSED [ 74%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_dictionary_kwargs PASSED [ 75%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_kwargs PASSED [ 75%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_dictionary_kwargs PASSED [ 75%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_multiple_url_encoded_kwargs PASSED [ 75%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_optional_arg_with_url_encoded_kwargs PASSED [ 75%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_path_with_explicit_kwargs PASSED [ 75%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_dictionary_kwargs PASSED [ 76%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_positional_args_with_url_encoded_dictionary_kwargs PASSED [ 76%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders PASSED [ 76%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_many_remainders_with_many_kwargs PASSED [ 76%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder PASSED [ 76%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_remainder_with_kwargs PASSED [ 77%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_post_three_remainders PASSED [ 77%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_kwargs PASSED [ 77%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_remainder_with_many_kwargs PASSED [ 77%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_required_argument PASSED [ 77%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument PASSED [ 77%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_single_argument_with_encoded_url PASSED [ 78%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_arguments PASSED [ 78%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_two_remainders PASSED [ 78%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_url_encoded_positional_args PASSED [ 78%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all PASSED [ 78%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_one_extra PASSED [ 79%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_all_with_two_extras PASSED [ 79%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args PASSED [ 79%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_dict_kwargs PASSED [ 79%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_args_with_kwargs PASSED [ 79%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_kwargs PASSED [ 80%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed PASSED [ 80%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_mixed_explicit PASSED [ 80%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post PASSED [ 80%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_mixed PASSED [ 80%] 263s pecan/tests/test_no_thread_locals.py::TestControllerArguments::test_variable_post_with_kwargs PASSED [ 80%] 263s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_action PASSED [ 81%] 263s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type PASSED [ 81%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_custom_method_type_with_method_parameter PASSED [ 81%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_method PASSED [ 81%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter PASSED [ 81%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_delete_with_method_parameter_and_post PASSED [ 82%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_all PASSED [ 82%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_delete PASSED [ 82%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_get_one PASSED [ 82%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_invalid_custom_action PASSED [ 82%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_action PASSED [ 82%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_named_nested_action PASSED [ 83%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_with_trailing_slash PASSED [ 83%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_controller_without_trailing_slash PASSED [ 83%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_nested_post PASSED [ 83%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_options PASSED [ 83%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_options_with_method_parameter PASSED [ 84%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action PASSED [ 84%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_other_custom_action_with_method_parameter PASSED [ 84%] 264s pecan/tests/test_no_thread_locals.py::TestRestController::test_post PASSED [ 84%] 265s pecan/tests/test_no_thread_locals.py::TestRestController::test_put PASSED [ 84%] 265s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_get PASSED [ 85%] 265s pecan/tests/test_no_thread_locals.py::TestRestController::test_put_with_method_parameter_and_post PASSED [ 85%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_isolated_hook PASSED [ 85%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_multi_hook PASSED [ 85%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_basic_single_hook PASSED [ 85%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_isolated_hook_with_global_hook PASSED [ 85%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_on_error_response_hook PASSED [ 86%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_partial_hooks PASSED [ 86%] 265s pecan/tests/test_no_thread_locals.py::TestHooks::test_prioritized_hooks PASSED [ 86%] 265s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_default PASSED [ 86%] 265s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_extra_args PASSED [ 86%] 265s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_method PASSED [ 87%] 265s pecan/tests/test_no_thread_locals.py::TestGeneric::test_generics_with_im_self_with_path PASSED [ 87%] 265s pecan/tests/test_rest.py::TestRestController::test_405_with_lookup PASSED [ 87%] 265s pecan/tests/test_rest.py::TestRestController::test_bad_rest PASSED [ 87%] 265s pecan/tests/test_rest.py::TestRestController::test_basic_rest PASSED [ 87%] 265s pecan/tests/test_rest.py::TestRestController::test_complicated_nested_rest PASSED [ 87%] 265s pecan/tests/test_rest.py::TestRestController::test_custom_delete PASSED [ 88%] 265s pecan/tests/test_rest.py::TestRestController::test_custom_with_trailing_slash PASSED [ 88%] 265s pecan/tests/test_rest.py::TestRestController::test_dynamic_rest_lookup PASSED [ 88%] 265s pecan/tests/test_rest.py::TestRestController::test_get_with_var_args PASSED [ 88%] 265s pecan/tests/test_rest.py::TestRestController::test_getall_with_lookup PASSED [ 88%] 265s pecan/tests/test_rest.py::TestRestController::test_getall_with_trailing_slash PASSED [ 89%] 265s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_delete PASSED [ 89%] 265s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_get PASSED [ 89%] 265s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_post PASSED [ 89%] 265s pecan/tests/test_rest.py::TestRestController::test_method_not_allowed_put PASSED [ 89%] 265s pecan/tests/test_rest.py::TestRestController::test_nested_get_all PASSED [ 90%] 265s pecan/tests/test_rest.py::TestRestController::test_nested_get_all_with_lookup PASSED [ 90%] 265s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_default PASSED [ 90%] 265s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_lookup PASSED [ 90%] 265s pecan/tests/test_rest.py::TestRestController::test_nested_rest_with_missing_intermediate_id PASSED [ 90%] 265s pecan/tests/test_rest.py::TestRestController::test_post_with_kwargs_only PASSED [ 90%] 265s pecan/tests/test_rest.py::TestRestController::test_proper_allow_header_multiple_gets PASSED [ 91%] 265s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_endpoint PASSED [ 91%] 265s pecan/tests/test_rest.py::TestRestController::test_rest_with_utf8_uri PASSED [ 91%] 265s pecan/tests/test_rest.py::TestRestController::test_simple_nested_rest PASSED [ 91%] 265s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest PASSED [ 91%] 266s pecan/tests/test_rest.py::TestRestController::test_sub_nested_rest_with_overwrites PASSED [ 92%] 266s pecan/tests/test_rest.py::TestExplicitRoute::test_alternate_route PASSED [ 92%] 266s pecan/tests/test_scaffolds.py::TestPecanScaffold::test_normalize_pkg_name PASSED [ 92%] 266s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir PASSED [ 92%] 266s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_file_content_substitution PASSED [ 92%] 266s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_copy_dir_with_filename_substitution PASSED [ 92%] 266s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_already_exists PASSED [ 93%] 266s pecan/tests/test_scaffolds.py::TestScaffoldUtils::test_destination_directory_levels_deep PASSED [ 93%] 266s pecan/tests/test_secure.py::TestSecure::test_secure_attribute PASSED [ 93%] 266s pecan/tests/test_secure.py::TestSecure::test_secure_obj_only_failure PASSED [ 93%] 266s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller PASSED [ 93%] 266s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_lambda PASSED [ 94%] 266s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute PASSED [ 94%] 266s pecan/tests/test_secure.py::TestSecure::test_secured_generic_controller_secure_attribute_with_unlocked PASSED [ 94%] 266s pecan/tests/test_secure.py::TestSecure::test_simple_secure PASSED [ 94%] 266s pecan/tests/test_secure.py::TestSecure::test_state_attribute PASSED [ 94%] 266s pecan/tests/test_secure.py::TestSecure::test_unlocked_attribute PASSED [ 95%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_cyclical_protection PASSED [ 95%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_failure PASSED [ 95%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_independent_check_success PASSED [ 95%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_layered_protection PASSED [ 95%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_lookup_to_wrapped_attribute_on_self PASSED [ 95%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_mixed_protection PASSED [ 96%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_protected_lookup PASSED [ 96%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secret_through_lookup PASSED [ 96%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_secured_notfound_lookup PASSED [ 96%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_sub_of_both_not_secret PASSED [ 96%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_attribute_in_insecure PASSED [ 97%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_unlocked_lookup PASSED [ 97%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_failure PASSED [ 97%] 266s pecan/tests/test_secure.py::TestObjectPathSecurity::test_wrapped_attribute_success PASSED [ 97%] 266s pecan/tests/test_secure.py::SecureControllerSharedPermissionsRegression::test_inherited_security PASSED [ 97%] 266s pecan/tests/test_templating.py::TestTemplate::test_available PASSED [ 97%] 266s pecan/tests/test_templating.py::TestTemplate::test_create_bad PASSED [ 98%] 266s pecan/tests/test_templating.py::TestTemplate::test_extra_vars PASSED [ 98%] 266s pecan/tests/test_templating.py::TestTemplate::test_update_extra_vars PASSED [ 98%] 266s pecan/tests/test_templating.py::TestTemplateLineFormat::test_format_line_context PASSED [ 98%] 266s pecan/tests/test_util.py::TestArgSpec::test_class_based_decorator PASSED [ 98%] 266s pecan/tests/test_util.py::TestArgSpec::test_decorator_with_args PASSED [ 99%] 266s pecan/tests/test_util.py::TestArgSpec::test_multiple_decorators PASSED [ 99%] 266s pecan/tests/test_util.py::TestArgSpec::test_nested_cells PASSED [ 99%] 266s pecan/tests/test_util.py::TestArgSpec::test_no_decorator PASSED [ 99%] 266s pecan/tests/test_util.py::TestArgSpec::test_simple_decorator PASSED [ 99%] 266s pecan/tests/test_util.py::TestArgSpec::test_simple_wrapper PASSED [100%] 266s 266s =============================== warnings summary =============================== 266s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_closed 266s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_found 266s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_file_can_be_iterated_over 266s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_mime_type_works_for_png_files 266s pecan/tests/middleware/test_static.py::TestStaticFileMiddleware::test_separator_sanitization_still_finds_file 266s /tmp/autopkgtest.tJPvyc/build.WV2/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). 266s datetime.utcfromtimestamp(os.path.getmtime(filename)), 266s 266s pecan/tests/test_commands.py::TestCommandManager::test_commands 266s /tmp/autopkgtest.tJPvyc/build.WV2/src/pecan/commands/base.py:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 266s import pkg_resources 266s 266s pecan/tests/test_conf.py::TestConf::test_config_from_file 266s pecan/tests/test_conf.py::TestConf::test_config_illegal_ids 266s pecan/tests/test_conf.py::TestConf::test_config_with_bad_import 266s pecan/tests/test_conf.py::TestConf::test_update_force_dict 266s pecan/tests/test_conf.py::TestConf::test_update_set_config 266s pecan/tests/test_conf.py::TestConf::test_update_set_default_config 266s pecan/tests/test_conf.py::TestGlobalConfig::test_overwrite_from_file 266s pecan/tests/test_conf.py::TestGlobalConfig::test_paint_from_file 266s :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead 266s 266s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 266s =============== 540 passed, 3 deselected, 14 warnings in 14.72s ================ 267s autopkgtest [07:01:06]: test unittests: -----------------------] 268s autopkgtest [07:01:07]: test unittests: - - - - - - - - - - results - - - - - - - - - - 268s unittests PASS 269s autopkgtest [07:01:08]: test autodep8-python3: preparing testbed 287s Creating nova instance adt-resolute-s390x-python-pecan-20251206-065639-juju-7f2275-prod-proposed-migration-environment-20-a9e20ba5-56de-479f-896e-2645ef883ec7 from image adt/ubuntu-resolute-s390x-server-20251205.img (UUID e0f6ccba-b422-4dad-b382-fbc5a99524c4)... 380s autopkgtest [07:02:59]: testbed dpkg architecture: s390x 380s autopkgtest [07:02:59]: testbed apt version: 3.1.12 381s autopkgtest [07:03:00]: @@@@@@@@@@@@@@@@@@@@ test bed setup 381s autopkgtest [07:03:00]: testbed release detected to be: resolute 381s autopkgtest [07:03:00]: updating testbed package index (apt update) 382s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 382s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 382s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 382s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 382s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [139 kB] 382s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [837 kB] 382s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.8 kB] 382s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [220 kB] 382s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [687 kB] 382s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [6204 B] 383s Fetched 2036 kB in 1s (2108 kB/s) 385s Reading package lists... 386s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 386s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 386s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 386s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 388s Reading package lists... 388s Reading package lists... 388s Building dependency tree... 388s Reading state information... 388s Calculating upgrade... 388s The following packages will be upgraded: 388s libnftnl11 libpython3-stdlib lxd-installer python3 python3-attr python3-gdbm 388s python3-minimal 388s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 388s Need to get 201 kB of archives. 388s After this operation, 20.5 kB of additional disk space will be used. 388s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.13.9-2 [28.1 kB] 388s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.13.9-2 [23.0 kB] 388s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.13.9-2 [10.8 kB] 388s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libnftnl11 s390x 1.3.1-1 [68.7 kB] 388s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-gdbm s390x 3.13.9-2 [11.0 kB] 388s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x lxd-installer all 14ubuntu0 [5428 B] 388s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x python3-attr all 25.4.0-1 [53.6 kB] 388s dpkg-preconfigure: unable to re-open stdin: No such file or directory 388s Fetched 201 kB in 0s (9465 kB/s) 389s (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 ... 61321 files and directories currently installed.) 389s Preparing to unpack .../python3-minimal_3.13.9-2_s390x.deb ... 389s Unpacking python3-minimal (3.13.9-2) over (3.13.7-1) ... 389s Setting up python3-minimal (3.13.9-2) ... 389s (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 ... 61321 files and directories currently installed.) 389s Preparing to unpack .../0-python3_3.13.9-2_s390x.deb ... 389s running python pre-rtupdate hooks for python3.13... 389s Unpacking python3 (3.13.9-2) over (3.13.7-1) ... 389s Preparing to unpack .../1-libpython3-stdlib_3.13.9-2_s390x.deb ... 389s Unpacking libpython3-stdlib:s390x (3.13.9-2) over (3.13.7-1) ... 389s Preparing to unpack .../2-libnftnl11_1.3.1-1_s390x.deb ... 389s Unpacking libnftnl11:s390x (1.3.1-1) over (1.3.0-1) ... 389s Preparing to unpack .../3-python3-gdbm_3.13.9-2_s390x.deb ... 389s Unpacking python3-gdbm (3.13.9-2) over (3.13.9-1) ... 389s Preparing to unpack .../4-lxd-installer_14ubuntu0_all.deb ... 389s Unpacking lxd-installer (14ubuntu0) over (13ubuntu0) ... 389s Preparing to unpack .../5-python3-attr_25.4.0-1_all.deb ... 389s Unpacking python3-attr (25.4.0-1) over (25.3.0-1) ... 389s Setting up python3-gdbm (3.13.9-2) ... 389s Setting up libnftnl11:s390x (1.3.1-1) ... 389s Setting up lxd-installer (14ubuntu0) ... 390s Setting up libpython3-stdlib:s390x (3.13.9-2) ... 390s Setting up python3 (3.13.9-2) ... 390s running python rtupdate hooks for python3.13... 390s running python post-rtupdate hooks for python3.13... 390s Setting up python3-attr (25.4.0-1) ... 391s Processing triggers for man-db (2.13.1-1) ... 392s Processing triggers for libc-bin (2.42-2ubuntu2) ... 392s autopkgtest [07:03:11]: upgrading testbed (apt dist-upgrade and autopurge) 392s Reading package lists... 393s Building dependency tree... 393s Reading state information... 393s Calculating upgrade... 393s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 393s Reading package lists... 394s Building dependency tree... 394s Reading state information... 394s Solving dependencies... 395s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 395s autopkgtest [07:03:14]: rebooting testbed after setup commands that affected boot 428s Reading package lists... 428s Building dependency tree... 428s Reading state information... 428s Solving dependencies... 429s The following NEW packages will be installed: 429s libpython3.14-minimal libpython3.14-stdlib python3-all python3-legacy-cgi 429s python3-logutils python3-mako python3-pecan python3-simplegeneric 429s python3-webob python3.14 python3.14-minimal 429s 0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded. 429s Need to get 6875 kB of archives. 429s After this operation, 25.9 MB of additional disk space will be used. 429s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-minimal s390x 3.14.0-4 [904 kB] 429s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.0-4 [2509 kB] 429s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-stdlib s390x 3.14.0-4 [2373 kB] 429s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.0-4 [805 kB] 429s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-all s390x 3.13.9-2 [892 B] 429s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x python3-legacy-cgi all 2.6.4-1 [17.0 kB] 429s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x python3-logutils all 0.3.5-5 [17.8 kB] 429s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x python3-mako all 1.3.10-3 [63.8 kB] 429s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x python3-simplegeneric all 0.8.1-5build1 [11.0 kB] 429s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x python3-webob all 1:1.8.9-1 [86.8 kB] 429s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x python3-pecan all 1.5.1-6 [86.8 kB] 431s Fetched 6875 kB in 0s (17.4 MB/s) 431s Selecting previously unselected package libpython3.14-minimal:s390x. 431s (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 ... 61321 files and directories currently installed.) 431s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_s390x.deb ... 431s Unpacking libpython3.14-minimal:s390x (3.14.0-4) ... 431s Selecting previously unselected package python3.14-minimal. 431s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_s390x.deb ... 431s Unpacking python3.14-minimal (3.14.0-4) ... 431s Selecting previously unselected package libpython3.14-stdlib:s390x. 431s Preparing to unpack .../02-libpython3.14-stdlib_3.14.0-4_s390x.deb ... 431s Unpacking libpython3.14-stdlib:s390x (3.14.0-4) ... 431s Selecting previously unselected package python3.14. 431s Preparing to unpack .../03-python3.14_3.14.0-4_s390x.deb ... 431s Unpacking python3.14 (3.14.0-4) ... 431s Selecting previously unselected package python3-all. 431s Preparing to unpack .../04-python3-all_3.13.9-2_s390x.deb ... 431s Unpacking python3-all (3.13.9-2) ... 431s Selecting previously unselected package python3-legacy-cgi. 431s Preparing to unpack .../05-python3-legacy-cgi_2.6.4-1_all.deb ... 431s Unpacking python3-legacy-cgi (2.6.4-1) ... 431s Selecting previously unselected package python3-logutils. 431s Preparing to unpack .../06-python3-logutils_0.3.5-5_all.deb ... 431s Unpacking python3-logutils (0.3.5-5) ... 431s Selecting previously unselected package python3-mako. 431s Preparing to unpack .../07-python3-mako_1.3.10-3_all.deb ... 431s Unpacking python3-mako (1.3.10-3) ... 431s Selecting previously unselected package python3-simplegeneric. 431s Preparing to unpack .../08-python3-simplegeneric_0.8.1-5build1_all.deb ... 431s Unpacking python3-simplegeneric (0.8.1-5build1) ... 431s Selecting previously unselected package python3-webob. 431s Preparing to unpack .../09-python3-webob_1%3a1.8.9-1_all.deb ... 431s Unpacking python3-webob (1:1.8.9-1) ... 431s Selecting previously unselected package python3-pecan. 431s Preparing to unpack .../10-python3-pecan_1.5.1-6_all.deb ... 431s Unpacking python3-pecan (1.5.1-6) ... 431s Setting up libpython3.14-minimal:s390x (3.14.0-4) ... 431s Setting up python3-legacy-cgi (2.6.4-1) ... 433s Setting up python3-logutils (0.3.5-5) ... 434s Setting up python3-simplegeneric (0.8.1-5build1) ... 435s Setting up python3.14-minimal (3.14.0-4) ... 439s Setting up python3-mako (1.3.10-3) ... 440s Setting up python3-webob (1:1.8.9-1) ... 441s Setting up python3-pecan (1.5.1-6) ... 442s Setting up libpython3.14-stdlib:s390x (3.14.0-4) ... 442s Setting up python3.14 (3.14.0-4) ... 445s Setting up python3-all (3.13.9-2) ... 445s Processing triggers for man-db (2.13.1-1) ... 446s Processing triggers for systemd (257.9-0ubuntu2) ... 450s autopkgtest [07:04:09]: 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 450s autopkgtest [07:04:09]: test autodep8-python3: [----------------------- 451s Testing with python3.14: 452s 452s Testing with python3.13: 452s 453s autopkgtest [07:04:12]: test autodep8-python3: -----------------------] 453s autopkgtest [07:04:12]: test autodep8-python3: - - - - - - - - - - results - - - - - - - - - - 453s autodep8-python3 PASS (superficial) 458s autopkgtest [07:04:17]: @@@@@@@@@@@@@@@@@@@@ summary 458s unittests PASS 458s autodep8-python3 PASS (superficial)