0s autopkgtest [20:46:42]: starting date and time: 2024-11-23 20:46:42+0000 0s autopkgtest [20:46:42]: git checkout: 6408f825 Correct logic in old-systemd fallback code 0s autopkgtest [20:46:42]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.3y6q_s2i/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:python3-defaults --apt-upgrade python-pyramid --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.12.7-1 -- lxd -r lxd-armhf-10.145.243.51 lxd-armhf-10.145.243.51:autopkgtest/ubuntu/plucky/armhf 54s autopkgtest [20:47:36]: testbed dpkg architecture: armhf 55s autopkgtest [20:47:37]: testbed apt version: 2.9.8 55s autopkgtest [20:47:37]: @@@@@@@@@@@@@@@@@@@@ test bed setup 64s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 64s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [13.6 kB] 64s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 64s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [53.2 kB] 64s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [925 kB] 64s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf Packages [61.7 kB] 64s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/restricted armhf Packages [756 B] 64s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe armhf Packages [721 kB] 64s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse armhf Packages [5924 B] 64s Fetched 1865 kB in 1s (2038 kB/s) 64s Reading package lists... 83s tee: /proc/self/fd/2: Permission denied 104s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 104s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 104s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 104s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 106s Reading package lists... 106s Reading package lists... 106s Building dependency tree... 106s Reading state information... 106s Calculating upgrade... 107s The following packages will be upgraded: 107s bash debconf debconf-i18n dracut-install libpython3-stdlib pinentry-curses 107s python3 python3-blinker python3-debconf python3-minimal vim-common vim-tiny 107s xxd 107s 13 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 107s Need to get 2311 kB of archives. 107s After this operation, 4096 B of additional disk space will be used. 107s Get:1 http://ftpmaster.internal/ubuntu plucky/main armhf bash armhf 5.2.32-1ubuntu2 [673 kB] 108s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf python3-minimal armhf 3.12.7-1 [27.4 kB] 108s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf python3 armhf 3.12.7-1 [24.0 kB] 108s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf libpython3-stdlib armhf 3.12.7-1 [10.0 kB] 108s Get:5 http://ftpmaster.internal/ubuntu plucky/main armhf debconf-i18n all 1.5.87ubuntu1 [204 kB] 108s Get:6 http://ftpmaster.internal/ubuntu plucky/main armhf python3-debconf all 1.5.87ubuntu1 [4156 B] 108s Get:7 http://ftpmaster.internal/ubuntu plucky/main armhf debconf all 1.5.87ubuntu1 [124 kB] 108s Get:8 http://ftpmaster.internal/ubuntu plucky/main armhf vim-tiny armhf 2:9.1.0861-1ubuntu1 [694 kB] 108s Get:9 http://ftpmaster.internal/ubuntu plucky/main armhf vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 108s Get:10 http://ftpmaster.internal/ubuntu plucky/main armhf xxd armhf 2:9.1.0861-1ubuntu1 [67.0 kB] 108s Get:11 http://ftpmaster.internal/ubuntu plucky/main armhf dracut-install armhf 105-2ubuntu2 [37.5 kB] 108s Get:12 http://ftpmaster.internal/ubuntu plucky/main armhf pinentry-curses armhf 1.3.1-0ubuntu2 [40.0 kB] 108s Get:13 http://ftpmaster.internal/ubuntu plucky/main armhf python3-blinker all 1.9.0-1 [10.7 kB] 108s Preconfiguring packages ... 108s Fetched 2311 kB in 1s (2696 kB/s) 108s (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 ... 59616 files and directories currently installed.) 108s Preparing to unpack .../bash_5.2.32-1ubuntu2_armhf.deb ... 108s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 108s Setting up bash (5.2.32-1ubuntu2) ... 108s update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode 109s (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 ... 59616 files and directories currently installed.) 109s Preparing to unpack .../python3-minimal_3.12.7-1_armhf.deb ... 109s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 109s Setting up python3-minimal (3.12.7-1) ... 109s (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 ... 59616 files and directories currently installed.) 109s Preparing to unpack .../python3_3.12.7-1_armhf.deb ... 109s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 109s Preparing to unpack .../libpython3-stdlib_3.12.7-1_armhf.deb ... 109s Unpacking libpython3-stdlib:armhf (3.12.7-1) over (3.12.6-0ubuntu1) ... 109s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 109s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 109s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 109s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 109s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 109s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 109s Setting up debconf (1.5.87ubuntu1) ... 109s (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 ... 59616 files and directories currently installed.) 109s Preparing to unpack .../0-vim-tiny_2%3a9.1.0861-1ubuntu1_armhf.deb ... 109s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 110s Preparing to unpack .../1-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 110s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 110s Preparing to unpack .../2-xxd_2%3a9.1.0861-1ubuntu1_armhf.deb ... 110s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 110s Preparing to unpack .../3-dracut-install_105-2ubuntu2_armhf.deb ... 110s Unpacking dracut-install (105-2ubuntu2) over (105-1ubuntu1) ... 110s Preparing to unpack .../4-pinentry-curses_1.3.1-0ubuntu2_armhf.deb ... 110s Unpacking pinentry-curses (1.3.1-0ubuntu2) over (1.2.1-3ubuntu5) ... 110s Preparing to unpack .../5-python3-blinker_1.9.0-1_all.deb ... 110s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 110s Setting up pinentry-curses (1.3.1-0ubuntu2) ... 110s Setting up debconf-i18n (1.5.87ubuntu1) ... 110s Setting up xxd (2:9.1.0861-1ubuntu1) ... 110s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 110s Setting up dracut-install (105-2ubuntu2) ... 110s Setting up libpython3-stdlib:armhf (3.12.7-1) ... 110s Setting up python3 (3.12.7-1) ... 110s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 110s Setting up python3-blinker (1.9.0-1) ... 110s Setting up python3-debconf (1.5.87ubuntu1) ... 111s Processing triggers for debianutils (5.21) ... 111s Processing triggers for install-info (7.1.1-1) ... 111s Processing triggers for man-db (2.13.0-1) ... 112s Reading package lists... 112s Building dependency tree... 112s Reading state information... 113s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 115s autopkgtest [20:48:37]: rebooting testbed after setup commands that affected boot 185s autopkgtest [20:49:47]: testbed running kernel: Linux 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 18:12:14 UTC 2 213s autopkgtest [20:50:15]: @@@@@@@@@@@@@@@@@@@@ apt-source python-pyramid 223s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-pyramid 2.0+dfsg-2 (dsc) [1838 B] 223s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-pyramid 2.0+dfsg-2 (tar) [406 kB] 223s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-pyramid 2.0+dfsg-2 (diff) [7500 B] 223s gpgv: Signature made Sun Dec 25 18:29:08 2022 UTC 223s gpgv: using EDDSA key EE9AD6F90520FA11F69F4824477B0DB0263A54D8 223s gpgv: issuer "stefanor@debian.org" 223s gpgv: Can't check signature: No public key 223s dpkg-source: warning: cannot verify inline signature for ./python-pyramid_2.0+dfsg-2.dsc: no acceptable signature found 224s autopkgtest [20:50:26]: testing package python-pyramid version 2.0+dfsg-2 225s autopkgtest [20:50:27]: build not needed 228s autopkgtest [20:50:30]: test command1: preparing testbed 239s Reading package lists... 239s Building dependency tree... 239s Reading state information... 239s Starting pkgProblemResolver with broken count: 0 240s Starting 2 pkgProblemResolver with broken count: 0 240s Done 240s The following additional packages will be installed: 240s libpython3.13-minimal libpython3.13-stdlib python3-all python3-hupper 240s python3-paste python3-pastedeploy python3-pastedeploy-tpl python3-plaster 240s python3-plaster-pastedeploy python3-pyramid python3-tempita 240s python3-translationstring python3-venusian python3-webob 240s python3-zope.deprecation python3-zope.interface python3.13 240s python3.13-minimal 240s Suggested packages: 240s libapache2-mod-python python-webob-doc python3-zope.testing python3.13-venv 240s python3.13-doc binfmt-support 240s Recommended packages: 240s python3-pastescript 240s The following NEW packages will be installed: 240s autopkgtest-satdep libpython3.13-minimal libpython3.13-stdlib python3-all 240s python3-hupper python3-paste python3-pastedeploy python3-pastedeploy-tpl 240s python3-plaster python3-plaster-pastedeploy python3-pyramid python3-tempita 240s python3-translationstring python3-venusian python3-webob 240s python3-zope.deprecation python3-zope.interface python3.13 240s python3.13-minimal 240s 0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded. 240s Need to get 6294 kB/6295 kB of archives. 240s After this operation, 23.2 MB of additional disk space will be used. 240s Get:1 /tmp/autopkgtest.2tYoMU/1-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [712 B] 241s Get:2 http://ftpmaster.internal/ubuntu plucky/main armhf libpython3.13-minimal armhf 3.13.0-2 [866 kB] 241s Get:3 http://ftpmaster.internal/ubuntu plucky/main armhf python3.13-minimal armhf 3.13.0-2 [1854 kB] 241s Get:4 http://ftpmaster.internal/ubuntu plucky/main armhf libpython3.13-stdlib armhf 3.13.0-2 [1972 kB] 241s Get:5 http://ftpmaster.internal/ubuntu plucky/main armhf python3.13 armhf 3.13.0-2 [719 kB] 241s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf python3-all armhf 3.12.7-1 [890 B] 241s Get:7 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-hupper all 1.12-1 [19.4 kB] 241s Get:8 http://ftpmaster.internal/ubuntu plucky/main armhf python3-tempita all 0.6.0-1 [14.8 kB] 241s Get:9 http://ftpmaster.internal/ubuntu plucky/main armhf python3-paste all 3.10.1-1 [210 kB] 241s Get:10 http://ftpmaster.internal/ubuntu plucky/main armhf python3-pastedeploy-tpl all 3.1-1 [5652 B] 241s Get:11 http://ftpmaster.internal/ubuntu plucky/main armhf python3-pastedeploy all 3.1-1 [13.5 kB] 241s Get:12 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-plaster all 1.0-4 [10.8 kB] 241s Get:13 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-plaster-pastedeploy all 0.5-6 [8686 B] 241s Get:14 http://ftpmaster.internal/ubuntu plucky/main armhf python3-webob all 1:1.8.7-1ubuntu1 [86.4 kB] 241s Get:15 http://ftpmaster.internal/ubuntu plucky/main armhf python3-zope.interface armhf 7.1.1-1build1 [138 kB] 241s Get:16 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-translationstring all 1.4-2 [14.4 kB] 242s Get:17 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-venusian all 3.1.0-2 [15.0 kB] 242s Get:18 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-zope.deprecation all 5.0-1 [9886 B] 242s Get:19 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-pyramid all 2.0+dfsg-2 [335 kB] 242s Fetched 6294 kB in 1s (5289 kB/s) 242s Selecting previously unselected package libpython3.13-minimal:armhf. 242s (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 ... 59616 files and directories currently installed.) 242s Preparing to unpack .../00-libpython3.13-minimal_3.13.0-2_armhf.deb ... 242s Unpacking libpython3.13-minimal:armhf (3.13.0-2) ... 242s Selecting previously unselected package python3.13-minimal. 242s Preparing to unpack .../01-python3.13-minimal_3.13.0-2_armhf.deb ... 242s Unpacking python3.13-minimal (3.13.0-2) ... 242s Selecting previously unselected package libpython3.13-stdlib:armhf. 242s Preparing to unpack .../02-libpython3.13-stdlib_3.13.0-2_armhf.deb ... 242s Unpacking libpython3.13-stdlib:armhf (3.13.0-2) ... 242s Selecting previously unselected package python3.13. 242s Preparing to unpack .../03-python3.13_3.13.0-2_armhf.deb ... 242s Unpacking python3.13 (3.13.0-2) ... 242s Selecting previously unselected package python3-all. 242s Preparing to unpack .../04-python3-all_3.12.7-1_armhf.deb ... 242s Unpacking python3-all (3.12.7-1) ... 242s Selecting previously unselected package python3-hupper. 242s Preparing to unpack .../05-python3-hupper_1.12-1_all.deb ... 242s Unpacking python3-hupper (1.12-1) ... 242s Selecting previously unselected package python3-tempita. 242s Preparing to unpack .../06-python3-tempita_0.6.0-1_all.deb ... 242s Unpacking python3-tempita (0.6.0-1) ... 242s Selecting previously unselected package python3-paste. 242s Preparing to unpack .../07-python3-paste_3.10.1-1_all.deb ... 242s Unpacking python3-paste (3.10.1-1) ... 242s Selecting previously unselected package python3-pastedeploy-tpl. 242s Preparing to unpack .../08-python3-pastedeploy-tpl_3.1-1_all.deb ... 242s Unpacking python3-pastedeploy-tpl (3.1-1) ... 242s Selecting previously unselected package python3-pastedeploy. 242s Preparing to unpack .../09-python3-pastedeploy_3.1-1_all.deb ... 242s Unpacking python3-pastedeploy (3.1-1) ... 242s Selecting previously unselected package python3-plaster. 243s Preparing to unpack .../10-python3-plaster_1.0-4_all.deb ... 243s Unpacking python3-plaster (1.0-4) ... 243s Selecting previously unselected package python3-plaster-pastedeploy. 243s Preparing to unpack .../11-python3-plaster-pastedeploy_0.5-6_all.deb ... 243s Unpacking python3-plaster-pastedeploy (0.5-6) ... 243s Selecting previously unselected package python3-webob. 243s Preparing to unpack .../12-python3-webob_1%3a1.8.7-1ubuntu1_all.deb ... 243s Unpacking python3-webob (1:1.8.7-1ubuntu1) ... 243s Selecting previously unselected package python3-zope.interface. 243s Preparing to unpack .../13-python3-zope.interface_7.1.1-1build1_armhf.deb ... 243s Unpacking python3-zope.interface (7.1.1-1build1) ... 243s Selecting previously unselected package python3-translationstring. 243s Preparing to unpack .../14-python3-translationstring_1.4-2_all.deb ... 243s Unpacking python3-translationstring (1.4-2) ... 243s Selecting previously unselected package python3-venusian. 243s Preparing to unpack .../15-python3-venusian_3.1.0-2_all.deb ... 243s Unpacking python3-venusian (3.1.0-2) ... 243s Selecting previously unselected package python3-zope.deprecation. 243s Preparing to unpack .../16-python3-zope.deprecation_5.0-1_all.deb ... 243s Unpacking python3-zope.deprecation (5.0-1) ... 243s Selecting previously unselected package python3-pyramid. 243s Preparing to unpack .../17-python3-pyramid_2.0+dfsg-2_all.deb ... 243s Unpacking python3-pyramid (2.0+dfsg-2) ... 243s Selecting previously unselected package autopkgtest-satdep. 243s Preparing to unpack .../18-1-autopkgtest-satdep.deb ... 243s Unpacking autopkgtest-satdep (0) ... 243s Setting up python3-translationstring (1.4-2) ... 243s Setting up python3-zope.interface (7.1.1-1build1) ... 244s Setting up libpython3.13-minimal:armhf (3.13.0-2) ... 244s Setting up python3-tempita (0.6.0-1) ... 244s Setting up python3-plaster (1.0-4) ... 244s Setting up python3-paste (3.10.1-1) ... 245s Setting up python3-pastedeploy-tpl (3.1-1) ... 245s Setting up python3-hupper (1.12-1) ... 245s Setting up python3.13-minimal (3.13.0-2) ... 246s Setting up python3-venusian (3.1.0-2) ... 246s Setting up libpython3.13-stdlib:armhf (3.13.0-2) ... 246s Setting up python3-zope.deprecation (5.0-1) ... 246s Setting up python3-webob (1:1.8.7-1ubuntu1) ... 246s Setting up python3.13 (3.13.0-2) ... 248s Setting up python3-pastedeploy (3.1-1) ... 248s Setting up python3-all (3.12.7-1) ... 248s Setting up python3-plaster-pastedeploy (0.5-6) ... 248s Setting up python3-pyramid (2.0+dfsg-2) ... 248s Setting up autopkgtest-satdep (0) ... 248s Processing triggers for man-db (2.13.0-1) ... 249s Processing triggers for systemd (256.5-2ubuntu4) ... 262s (Reading database ... 60793 files and directories currently installed.) 262s Removing autopkgtest-satdep (0) ... 268s autopkgtest [20:51:10]: test command1: cd $AUTOPKGTEST_TMP; for p in $(py3versions -s); do $p -c 'import pyramid; print(pyramid)'; done 268s autopkgtest [20:51:10]: test command1: [----------------------- 270s 270s 270s autopkgtest [20:51:12]: test command1: -----------------------] 275s command1 PASS (superficial) 275s autopkgtest [20:51:17]: test command1: - - - - - - - - - - results - - - - - - - - - - 278s autopkgtest [20:51:20]: test command2: preparing testbed 289s Reading package lists... 289s Building dependency tree... 289s Reading state information... 290s Starting pkgProblemResolver with broken count: 0 290s Starting 2 pkgProblemResolver with broken count: 0 290s Done 291s The following additional packages will be installed: 291s python3-bs4 python3-iniconfig python3-legacy-cgi python3-packaging 291s python3-pluggy python3-pytest python3-soupsieve python3-waitress 291s python3-webtest python3-zope.component python3-zope.event 291s python3-zope.hookable 291s Suggested packages: 291s python-waitress-doc python-webtest-doc 291s Recommended packages: 291s python3-lxml 291s The following NEW packages will be installed: 291s autopkgtest-satdep python3-bs4 python3-iniconfig python3-legacy-cgi 291s python3-packaging python3-pluggy python3-pytest python3-soupsieve 291s python3-waitress python3-webtest python3-zope.component python3-zope.event 291s python3-zope.hookable 291s 0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded. 291s Need to get 624 kB/624 kB of archives. 291s After this operation, 3371 kB of additional disk space will be used. 291s Get:1 /tmp/autopkgtest.2tYoMU/2-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [740 B] 291s Get:2 http://ftpmaster.internal/ubuntu plucky/main armhf python3-soupsieve all 2.6-1 [33.0 kB] 291s Get:3 http://ftpmaster.internal/ubuntu plucky/main armhf python3-bs4 all 4.12.3-3 [109 kB] 291s Get:4 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-iniconfig all 1.1.1-2 [6024 B] 291s Get:5 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-legacy-cgi all 2.6.1-2 [16.3 kB] 291s Get:6 http://ftpmaster.internal/ubuntu plucky/main armhf python3-packaging all 24.2-1 [51.5 kB] 291s Get:7 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-pluggy all 1.5.0-1 [21.0 kB] 291s Get:8 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-pytest all 8.3.3-1 [251 kB] 291s Get:9 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-waitress all 3.0.2-1 [46.3 kB] 291s Get:10 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-webtest all 3.0.0-4 [28.7 kB] 291s Get:11 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-zope.event all 5.0-0.1 [7512 B] 291s Get:12 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-zope.hookable armhf 6.0-3build1 [11.8 kB] 291s Get:13 http://ftpmaster.internal/ubuntu plucky/universe armhf python3-zope.component all 6.0-1 [40.8 kB] 292s Fetched 624 kB in 1s (1144 kB/s) 292s Selecting previously unselected package python3-soupsieve. 292s (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 ... 60793 files and directories currently installed.) 292s Preparing to unpack .../00-python3-soupsieve_2.6-1_all.deb ... 292s Unpacking python3-soupsieve (2.6-1) ... 292s Selecting previously unselected package python3-bs4. 292s Preparing to unpack .../01-python3-bs4_4.12.3-3_all.deb ... 292s Unpacking python3-bs4 (4.12.3-3) ... 292s Selecting previously unselected package python3-iniconfig. 292s Preparing to unpack .../02-python3-iniconfig_1.1.1-2_all.deb ... 292s Unpacking python3-iniconfig (1.1.1-2) ... 292s Selecting previously unselected package python3-legacy-cgi. 292s Preparing to unpack .../03-python3-legacy-cgi_2.6.1-2_all.deb ... 292s Unpacking python3-legacy-cgi (2.6.1-2) ... 292s Selecting previously unselected package python3-packaging. 292s Preparing to unpack .../04-python3-packaging_24.2-1_all.deb ... 292s Unpacking python3-packaging (24.2-1) ... 292s Selecting previously unselected package python3-pluggy. 292s Preparing to unpack .../05-python3-pluggy_1.5.0-1_all.deb ... 292s Unpacking python3-pluggy (1.5.0-1) ... 292s Selecting previously unselected package python3-pytest. 292s Preparing to unpack .../06-python3-pytest_8.3.3-1_all.deb ... 292s Unpacking python3-pytest (8.3.3-1) ... 292s Selecting previously unselected package python3-waitress. 292s Preparing to unpack .../07-python3-waitress_3.0.2-1_all.deb ... 292s Unpacking python3-waitress (3.0.2-1) ... 292s Selecting previously unselected package python3-webtest. 292s Preparing to unpack .../08-python3-webtest_3.0.0-4_all.deb ... 292s Unpacking python3-webtest (3.0.0-4) ... 292s Selecting previously unselected package python3-zope.event. 292s Preparing to unpack .../09-python3-zope.event_5.0-0.1_all.deb ... 292s Unpacking python3-zope.event (5.0-0.1) ... 292s Selecting previously unselected package python3-zope.hookable. 292s Preparing to unpack .../10-python3-zope.hookable_6.0-3build1_armhf.deb ... 292s Unpacking python3-zope.hookable (6.0-3build1) ... 292s Selecting previously unselected package python3-zope.component. 292s Preparing to unpack .../11-python3-zope.component_6.0-1_all.deb ... 292s Unpacking python3-zope.component (6.0-1) ... 292s Selecting previously unselected package autopkgtest-satdep. 292s Preparing to unpack .../12-2-autopkgtest-satdep.deb ... 292s Unpacking autopkgtest-satdep (0) ... 292s Setting up python3-iniconfig (1.1.1-2) ... 293s Setting up python3-waitress (3.0.2-1) ... 293s Setting up python3-zope.event (5.0-0.1) ... 293s Setting up python3-packaging (24.2-1) ... 293s Setting up python3-zope.hookable (6.0-3build1) ... 293s Setting up python3-pluggy (1.5.0-1) ... 294s Setting up python3-legacy-cgi (2.6.1-2) ... 294s Setting up python3-soupsieve (2.6-1) ... 294s Setting up python3-pytest (8.3.3-1) ... 295s Setting up python3-zope.component (6.0-1) ... 295s Setting up python3-bs4 (4.12.3-3) ... 296s Setting up python3-webtest (3.0.0-4) ... 296s Setting up autopkgtest-satdep (0) ... 296s Processing triggers for man-db (2.13.0-1) ... 309s (Reading database ... 61179 files and directories currently installed.) 309s Removing autopkgtest-satdep (0) ... 316s autopkgtest [20:51:58]: test command2: cp -a tests "$AUTOPKGTEST_TMP"; cd $AUTOPKGTEST_TMP; for p in $(py3versions -s); do $p -m pytest -v tests; done 316s autopkgtest [20:51:58]: test command2: [----------------------- 318s ============================= test session starts ============================== 318s platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 318s cachedir: .pytest_cache 318s rootdir: /tmp/autopkgtest.2tYoMU/autopkgtest_tmp 318s plugins: typeguard-4.4.1 320s collecting ... collected 2633 items 320s 320s tests/test_asset.py::Test_resolve_asset_spec::test_abs_spec PASSED [ 0%] 320s tests/test_asset.py::Test_resolve_asset_spec::test_abspath PASSED [ 0%] 320s tests/test_asset.py::Test_resolve_asset_spec::test_package_name_is_None PASSED [ 0%] 320s tests/test_asset.py::Test_resolve_asset_spec::test_package_name_is_package_object PASSED [ 0%] 320s tests/test_asset.py::Test_resolve_asset_spec::test_rel_spec PASSED [ 0%] 320s tests/test_asset.py::Test_abspath_from_asset_spec::test_pkgrelative PASSED [ 0%] 320s tests/test_asset.py::Test_abspath_from_asset_spec::test_pname_is_None_after_resolve_asset_spec PASSED [ 0%] 320s tests/test_asset.py::Test_abspath_from_asset_spec::test_pname_is_None_before_resolve_asset_spec PASSED [ 0%] 320s tests/test_asset.py::Test_asset_spec_from_abspath::test_abspath_doesnt_startwith_package_path PASSED [ 0%] 320s tests/test_asset.py::Test_asset_spec_from_abspath::test_abspath_startswith_package_path PASSED [ 0%] 320s tests/test_asset.py::Test_asset_spec_from_abspath::test_package_name_is_main PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_authenticated_userid_fails_cleaning_as_Authenticated PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_authenticated_userid_fails_cleaning_as_Everyone PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_authenticated_userid_no_callback PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_authenticated_userid_no_unauthenticated_userid PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_authenticated_userid_with_callback_fail PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_authenticated_userid_with_callback_success PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_effective_principals_no_callback PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_effective_principals_no_unauthenticated_userid PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_effective_principals_with_callback_fail PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_effective_principals_with_callback_success PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_effective_principals_with_unclean_principal_Authenticated PASSED [ 0%] 320s tests/test_authentication.py::TestCallbackAuthenticationPolicyDebugging::test_effective_principals_with_unclean_principal_Everyone PASSED [ 0%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid PASSED [ 0%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid_None PASSED [ 0%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid_repoze_who_userid_is_None PASSED [ 0%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid_unclean_principal_Authenticated PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid_unclean_principal_Everyone PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid_with_callback_returns_None PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_authenticated_userid_with_callback_returns_something PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_class_implements_IAuthenticationPolicy PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_None PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_repoze_who_userid_is_None PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_repoze_who_userid_is_unclean_Authenticated PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_repoze_who_userid_is_unclean_Everyone PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_userid_and_groups PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_userid_callback_returns_None PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_effective_principals_userid_only PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_forget PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_forget_no_plugins PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_instance_implements_IAuthenticationPolicy PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_remember PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_remember_kwargs PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_remember_no_plugins PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_unauthenticated_userid PASSED [ 1%] 320s tests/test_authentication.py::TestRepozeWho1AuthenticationPolicy::test_unauthenticated_userid_returns_None PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_authenticated_userid PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_authenticated_userid_None PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_class_implements_IAuthenticationPolicy PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_effective_principals PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_effective_principals_None PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_forget PASSED [ 1%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_instance_implements_IAuthenticationPolicy PASSED [ 2%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_remember PASSED [ 2%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_unauthenticated_userid PASSED [ 2%] 320s tests/test_authentication.py::TestRemoteUserAuthenticationPolicy::test_unauthenticated_userid_returns_None PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_allargs PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_authenticated_userid PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_authenticated_userid_callback_returns_None PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_authenticated_userid_no_cookie_identity PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_class_implements_IAuthenticationPolicy PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_effective_principals PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_effective_principals_callback_returns_None PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_effective_principals_no_cookie_identity PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_forget PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_hashalg_override PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_instance_implements_IAuthenticationPolicy PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_remember PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_remember_with_extra_kargs PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_unauthenticated_userid PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktAuthenticationPolicy::test_unauthenticated_userid_returns_None PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_forget PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_bad_cookie PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_reissue PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_reissue_already_reissued_this_request PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_reissue_notyet PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_reissue_revoked_by_forget PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_reissue_revoked_by_remember PASSED [ 2%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_reissue_with_tokens_default PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_str_reissue PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_str_timeout PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_timeout PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_timeout_aged PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_cookie_value_is_None PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_b64str_useridtype PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_b64unicode_useridtype PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_dont_include_ip PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_include_ip PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_include_ipv6 PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_int_useridtype PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_good_cookie_unknown_useridtype PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_nocookie PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_identify_nonuseridtype_user_data PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_init_cookie_str_max_age_invalid PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_init_cookie_str_reissue_invalid PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_init_cookie_str_timeout_invalid PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_None_samesite PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_binary_userid PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_domain_supercedes_parent_and_wild_domain PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_explicit_domain PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_http_only PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_include_ip PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_insane_userid PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_int_userid PASSED [ 3%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_invalid_token_format PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_max_age PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_nonascii_token PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_nondefault_samesite PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_parent_domain PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_parent_domain_supercedes_wild_domain PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_path PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_samesite_default PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_samesite_nondefault PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_secure PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_str_max_age PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_str_max_age_invalid PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_tokens PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_unicode_but_ascii_token PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_unicode_userid PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_wild_domain_disabled PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_cookie_value PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_ctor_with_time PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_ctor_with_tokens PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_digest PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_digest_sha512 PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_ipv4 PASSED [ 4%] 320s tests/test_authentication.py::TestAuthTicket::test_ipv6 PASSED [ 4%] 320s tests/test_authentication.py::TestBadTicket::test_it PASSED [ 4%] 320s tests/test_authentication.py::Test_parse_ticket::test_bad_timestamp PASSED [ 4%] 320s tests/test_authentication.py::Test_parse_ticket::test_bad_userid_or_data PASSED [ 4%] 320s tests/test_authentication.py::Test_parse_ticket::test_correct_with_user_data PASSED [ 5%] 320s tests/test_authentication.py::Test_parse_ticket::test_correct_with_user_data_sha512 PASSED [ 5%] 320s tests/test_authentication.py::Test_parse_ticket::test_digest_sig_incorrect PASSED [ 5%] 320s tests/test_authentication.py::Test_parse_ticket::test_ipv4 PASSED [ 5%] 320s tests/test_authentication.py::Test_parse_ticket::test_ipv6 PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_authenticated_userid PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_authenticated_userid_callback_returns_None PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_authenticated_userid_no_cookie_identity PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_class_implements_IAuthenticationPolicy PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_effective_principals PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_effective_principals_callback_returns_None PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_effective_principals_no_identity PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_forget PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_forget_no_identity PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_instance_implements_IAuthenticationPolicy PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_remember PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_unauthenticated_userid PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationPolicy::test_unauthenticated_userid_returns_None PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationHelper::test_authenticated_userid PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationHelper::test_authenticated_userid_none PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationHelper::test_authenticated_userid_with_prefix PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationHelper::test_forget PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationHelper::test_forget_no_identity PASSED [ 5%] 320s tests/test_authentication.py::TestSessionAuthenticationHelper::test_remember PASSED [ 5%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_authenticated_userid PASSED [ 5%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_authenticated_userid_latin1 PASSED [ 5%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_authenticated_userid_utf8 PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_class_implements_IAuthenticationPolicy PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_forget PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_remember PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_unauthenticated_bad_header PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_unauthenticated_userid PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_unauthenticated_userid_corrupt_base64 PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_unauthenticated_userid_invalid_payload PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_unauthenticated_userid_no_credentials PASSED [ 6%] 320s tests/test_authentication.py::TestBasicAuthAuthenticationPolicy::test_unauthenticated_userid_not_basic PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_invalid_payload PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_latin1_payload PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_namedtuple_return PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_no_auth_header PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_no_base64_encoding PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_not_a_basic_auth_scheme PASSED [ 6%] 320s tests/test_authentication.py::TestExtractHTTPBasicCredentials::test_utf8_payload PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_callable_acl PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_class_implements_IAuthorizationPolicy PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_instance_implements_IAuthorizationPolicy PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_permits PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_permits_no_acl PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_permits_string_permissions_in_acl PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission_callable_acl PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission_deny_not_permission_in_acl PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission_deny_permission_in_acl PASSED [ 6%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission_direct PASSED [ 7%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission_no_acls PASSED [ 7%] 320s tests/test_authorization.py::TestACLAuthorizationPolicy::test_principals_allowed_by_permission_string_permission PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_acl PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_callable_acl PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_no_acl PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission_callable_acl PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission_deny_not_permission_in_acl PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission_deny_permission_in_acl PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission_direct PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission_no_acls PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_principals_allowed_by_permission_string_permission PASSED [ 7%] 320s tests/test_authorization.py::TestACLHelper::test_string_permissions_in_acl PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_autocommit_with_introspectables PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_autocommit_with_introspectables_introspection_off PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_kw_is_None PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_kw_is_not_None PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_with_config_info PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_with_introspectables PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_without_config_info PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_nonautocommit_with_introspectables_introspection_off PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_autocommit_no_conflicts PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_resolved_with_include PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_resolved_with_two_includes_and_local PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_simple PASSED [ 7%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_with_two_includes PASSED [ 8%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_conflict_set_forbidden_view PASSED [ 8%] 320s tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_conflict_set_notfound_view PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_action_simple PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_action_with_includepath PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_action_with_includepath_and_info PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_action_with_info PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_action_with_introspectables PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_action_with_order PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_execute_actions_dicts PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_execute_actions_error PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_execute_actions_tuples PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_execute_actions_with_introspectable_no_callable PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_execute_actions_with_introspectables PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_executing_conflicting_action_across_orders PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_executing_conflicting_action_across_reentrant_orders PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_it PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_processSpec PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_reentrant_action PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_reentrant_action_error PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_reentrant_action_with_deferred_discriminator PASSED [ 8%] 320s tests/test_config/test_actions.py::TestActionState::test_reentrant_action_without_clear PASSED [ 8%] 320s tests/test_config/test_actions.py::Test_reentrant_action_functional::test_deferred_discriminator PASSED [ 8%] 320s tests/test_config/test_actions.py::Test_reentrant_action_functional::test_functional PASSED [ 8%] 320s tests/test_config/test_actions.py::Test_resolveConflicts::test_conflicts_across_orders PASSED [ 8%] 320s tests/test_config/test_actions.py::Test_resolveConflicts::test_it_conflict PASSED [ 8%] 320s tests/test_config/test_actions.py::Test_resolveConflicts::test_it_success_dicts PASSED [ 9%] 320s tests/test_config/test_actions.py::Test_resolveConflicts::test_it_success_tuples PASSED [ 9%] 320s tests/test_config/test_actions.py::Test_resolveConflicts::test_it_with_actions_grouped_by_order PASSED [ 9%] 320s tests/test_config/test_actions.py::Test_resolveConflicts::test_override_success_across_orders PASSED [ 9%] 320s tests/test_config/test_actions.py::TestActionInfo::test___str__ PASSED [ 9%] 320s tests/test_config/test_actions.py::TestActionInfo::test_class_conforms PASSED [ 9%] 320s tests/test_config/test_actions.py::TestActionInfo::test_ctor PASSED [ 9%] 320s tests/test_config/test_actions.py::TestActionInfo::test_instance_conforms PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_object_event_subscriber PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_adapter_dotted_names PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_adapter_introspectables PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_default_resource_iface_means_Interface PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_nodefault_resource_iface PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter_dottednames PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter_self PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_defaults PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_dottednames PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_iface_specified PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_predicate PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_default_type_predicates_False PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_default_type_predicates_True PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_specific_type_and_predicates_False PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_specific_type_and_predicates_True PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_default_iface_means_Interface PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_dotted_names PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_introspectables PASSED [ 9%] 320s tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_nondefault_iface PASSED [ 10%] 320s tests/test_config/test_adapters.py::Test_eventonly::test_defaults PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test__override_already_registered PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test__override_not_yet_registered PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_absdirectory PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_absfile PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_directory PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_file PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_package PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_absdirectory PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_absfile PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_directory PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_file PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_missing_abspath PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_package PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_absdirectory PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_directory PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_package PASSED [ 10%] 320s tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_samename PASSED [ 10%] 320s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_no_overrides PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_override_returns_None PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_override_returns_value PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_no_overrides PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_override_returns_None PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_override_returns_value PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_no_overrides PASSED [ 10%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_override_returns_None PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_override_returns_value PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_no_overrides PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_override_returns_None PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_override_returns_True PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_no_overrides PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_override_returns_False PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_override_returns_None PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_no_overrides PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_override_returns_None PASSED [ 11%] 321s tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_override_returns_values PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_class_conforms_to_IPEP302Loader PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_class_conforms_to_IPackageOverrides PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_package_already_has_loader_of_different_type PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_package_already_has_loader_of_same_type PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_registers_loader_type PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_sets_loader PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_sets_local_state PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_filtered_sources PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_code_pkg_has___loader__ PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_code_pkg_has_no___loader__ PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_data_pkg_has___loader__ PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_data_pkg_has_no___loader__ PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_filename PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_filename_file_doesnt_exist PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_source_pkg_has___loader__ PASSED [ 11%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_source_pkg_has_no___loader__ PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_stream PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_stream_file_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_string PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_get_string_file_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_has_resource PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_has_resource_file_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_insert_directory PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_insert_emptystring PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_insert_file PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_instance_conforms_to_IPEP302Loader PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_instance_conforms_to_IPackageOverrides PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_is_package_pkg_has___loader__ PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_is_package_pkg_has_no___loader__ PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_false PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_true PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_listdir PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageOverrides::test_listdir_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_exists PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_exists_file_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_exists_with_prefix PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename_file_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename_with_prefix PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream_file_doesnt_exist PASSED [ 12%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream_with_prefix PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string_file_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string_with_prefix PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_false PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_true PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_listdir PASSED [ 13%] 321s tests/test_config/test_assets.py::TestPackageAssetSource::test_listdir_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_exists PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_exists_file_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_exists_with_prefix PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename_file_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename_with_prefix PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream_file_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream_with_prefix PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_string PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_string_file_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_get_string_with_prefix PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_false PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_true PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_listdir PASSED [ 13%] 321s tests/test_config/test_assets.py::TestFSAssetSource::test_listdir_doesnt_exist PASSED [ 13%] 321s tests/test_config/test_assets.py::TestDirectoryOverride::test_it_match PASSED [ 14%] 321s tests/test_config/test_assets.py::TestDirectoryOverride::test_it_no_match PASSED [ 14%] 321s tests/test_config/test_assets.py::TestFileOverride::test_it_match PASSED [ 14%] 321s tests/test_config/test_assets.py::TestFileOverride::test_it_no_match PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable_and_no_name PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable_conflict PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_callable PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_text_name PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_unnamed_callable PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_execution_policy PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_execution_policy_to_None PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_multiple_request_methods_conflict PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_request_factory PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_request_factory_dottedname PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory_dottedname PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory_as_None PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory_dottedname PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory PASSED [ 14%] 321s tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory_dottedname PASSED [ 14%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_abspath PASSED [ 14%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_asset_spec PASSED [ 14%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_asset_spec_existing_translation_dirs PASSED [ 14%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_doesnt_use_override_w_autocommit PASSED [ 14%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_invalid_kwargs PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_missing_dir PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_multiple_specs PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_multiple_specs_multiple_calls PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_no_specs PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_override_multiple_specs_multiple_calls PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_uses_override_out_of_order PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_uses_override_w_autocommit PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator PASSED [ 15%] 321s tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator_dottedname PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test___getattr__matches PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test___getattr__matches_no_action_wrap PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test___getattr__missing_when_directives_dont_exist PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test___getattr__missing_when_directives_exist PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_adds__lock PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_adds_clear_view_lookup_cache PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_has_listeners PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_notify PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_queryAdapterOrSelf PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_registerSelfAdapter PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_already_absolute PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_notastring PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_relative PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_begin PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_begin_does_not_propagate_request_for_diff_registry PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_begin_overrides_request PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_begin_propagates_request_for_same_registry PASSED [ 15%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_begin_with_request PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_context_manager PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_alternate_renderers PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authorization_policy_only PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_permission PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_renderers PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_view_mapper PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_webob_response_adapter_registered PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_exceptionresponse_view_None PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_exceptionresponse_view_custom PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_httpexception_view_default PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_no_registry PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_no_root_factory PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_custom_settings PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_debug_logger_None_default PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_debug_logger_non_None PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_security_policy PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_session_factory PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_introspection PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_package_registry PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_root_factory PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_end PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_hook_zca PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_constant_root_package PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_threadlocals_active PASSED [ 16%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_dotted_name PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_missing_source_file PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_module_defaults_to_includeme PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_module_defaults_to_includeme_missing PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_nested_route_prefix PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_python_callable PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_include_with_route_prefix PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_introspector_decorator PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_make_wsgi_app PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_notstring_success PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_string_fail PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_string_success PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_conflict PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_dottedname_package PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_extra_kw PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_ignore PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_onerror PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_alternate_renderers PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_only PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_calls_fix_registry PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_custom_settings PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_None_default PASSED [ 17%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_name PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_non_None PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_default_permission PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_dottedname_root_factory PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_explicit_notfound_trumps_iexceptionresponse PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_includes PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_includes_spaces PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_locale_negotiator PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_locale_negotiator_dottedname PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_no_default_root_factory PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_exceptionresponse_views PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_view_predicates PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_webob_iresponse_adapter PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_request_factory PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_request_factory_dottedname PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_response_factory PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_tweens PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_unhook_zca PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_with_package PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_with_package_module PASSED [ 18%] 321s tests/test_config/test_init.py::ConfiguratorTests::test_with_package_package PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_add_directive_with_custom_callable PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_add_directive_with_partial PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_directive_persists_across_configurator_creations PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_action_method_successful PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_same_name_doesnt_conflict PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_with_dotted_name PASSED [ 18%] 321s tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_with_python_callable PASSED [ 19%] 321s tests/test_config/test_init.py::TestConfigurator__add_predicate::test_factory_as_dotted_name PASSED [ 19%] 321s tests/test_config/test_init.py::TestConfigurator__add_predicate::test_factory_as_object PASSED [ 19%] 321s tests/test_config/test_init.py::TestGlobalRegistriesIntegration::test_global_registries PASSED [ 19%] 321s tests/test_config/test_init.py::TestGlobalRegistriesIntegration::test_global_registries_empty PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_custom_predicates_can_affect_traversal PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_different_custom_predicates_with_same_hash PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_mixed PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_mixed_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_with_values PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_with_values_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_simple PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_simple_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value_fails_case PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_false_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_false_matches PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_true_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_true_matches PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_dict PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_dict_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_string PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_string_fails PASSED [ 19%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_notted PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_ordering_importance_and_number PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_ordering_importance_of_predicates PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_ordering_number_of_predicates PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_ordering_xhr_and_request_method_trump_only_containment PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_predicate_close_matches PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_predicate_text_is_correct PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_predicate_text_is_correct_when_multiple PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_request_method_ordering_hashes_same PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_request_method_sequence PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_traverse_has_remainder_already PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_traverse_matches PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_traverse_matches_with_highorder_chars PASSED [ 20%] 321s tests/test_config/test_predicates.py::TestPredicateList::test_unknown_predicate PASSED [ 20%] 321s tests/test_config/test_predicates.py::Test_sort_accept_offers::test_default_specificities PASSED [ 20%] 321s tests/test_config/test_predicates.py::Test_sort_accept_offers::test_params_inherit_type_prefs PASSED [ 20%] 321s tests/test_config/test_predicates.py::Test_sort_accept_offers::test_params_order PASSED [ 20%] 321s tests/test_config/test_predicates.py::Test_sort_accept_offers::test_specific_type_order PASSED [ 20%] 321s tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_default_renderers PASSED [ 20%] 321s tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_renderer PASSED [ 20%] 321s tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_renderer_dottedname_factory PASSED [ 20%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_defaults PASSED [ 20%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_discriminator PASSED [ 20%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_effective_principals_deprecated PASSED [ 20%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_path_no_pattern PASSED [ 20%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_pattern_with_path PASSED [ 20%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_attr PASSED [ 21%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_context PASSED [ 21%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_permission PASSED [ 21%] 321s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_renderer PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_accept PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_accept_list PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_custom_predicates PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_factory PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_factory_dottedname PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_header PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_inherit_errors PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_is_authenticated PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info_highorder PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info_regex PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_pregenerator PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_request_method PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_request_param PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_root_slash_with_route_prefix PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_route_prefix PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_route_prefix_with_inherit_slash PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_static PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_wildcard_accept_raises PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_xhr PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_get_routes_mapper_already_registered PASSED [ 21%] 322s tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_get_routes_mapper_not_yet_registered PASSED [ 21%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_add_permission PASSED [ 21%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_changing_set_default_csrf_options PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy_autocommit PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy_autocommit PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_security_policy PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy_autocommit PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy_autocommit PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_default_csrf_options PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_default_permission PASSED [ 22%] 322s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_security_policy PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_as_None PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_as_dictwithvalues PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_does_not_uses_original_dict PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_None PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_already_registered PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_not_yet_registered PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_get_settings_nosettings PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_get_settings_withsettings PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_settings_parameter_dict_is_never_updated PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettings::test_csrf_trusted_origins PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettings::test_debug_all PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettings::test_debug_authorization PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettings::test_debug_notfound PASSED [ 22%] 322s tests/test_config/test_settings.py::TestSettings::test_debug_routematch PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_debug_templates PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_default_locale_name PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_noargs PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_originals_kept PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_prevent_cachebust PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_prevent_http_cache PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_reload_all PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_reload_assets PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_reload_resources PASSED [ 23%] 322s tests/test_config/test_settings.py::TestSettings::test_reload_templates PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer_explicitrenderer PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer_twice PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_defaults PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_dottedname PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_multiple PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_single PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_template PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_resources PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy_forget_result PASSED [ 23%] 322s tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy_remember_result PASSED [ 23%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_dottedname PASSED [ 23%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_instance PASSED [ 23%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_name_ingress PASSED [ 23%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_name_main PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_over_ingress PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_over_ingress_iterable PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_under_main PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_under_main_iterable PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_unsuitable PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_conflict PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_distinct PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_over_nonstringoriter PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_under_nonstringoriter PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_underover PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test___call___explicit PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test___call___implicit PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_add_explicit PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_add_implicit PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_1 PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_2 PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_3 PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_4 PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_5 PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_conflict_direct PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_conflict_indirect PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_and_under_partials PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_partial PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_partial_with_fallback PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_under_partial PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_under_partial_with_fallback PASSED [ 24%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_missing_fallbacks PASSED [ 25%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_multiple_matching_fallbacks PASSED [ 25%] 322s tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_partial_fallbacks PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_override PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_throws_on_type_mismatch PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_throws_on_wildcard PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_exception_only PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_for_ PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_name PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_permission PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_require_csrf PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_with_subclass PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_with_view_defaults PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_allows_other_predicates PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_context PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_for_ PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_name PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_permission PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_require_csrf PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_no_view_argument PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_with_renderer PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_with_view_defaults PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_normal_and_exception_view_intr_derived_callable PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view PASSED [ 25%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_allows_other_predicates PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_append_slash PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_append_slash_custom_response PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_context PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_for_ PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_name PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_permission PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_require_csrf PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_no_view_argument PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_with_renderer PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_with_view_defaults PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_absolute PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_here_no_utility_registered PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_package_here_relative PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_package_relative PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instance PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instance_requestonly PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instancemethod PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instancemethod_requestonly PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_oldstyle_class PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_oldstyle_class_requestonly PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_class_method_no_attr PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_class PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_dottedname PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_iface PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_trumps_for PASSED [ 26%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_custom_more_preds_first_bests_fewer_preds_last PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_custom_predicate_bests_standard_predicate PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_default_phash_overrides_default_phash PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_default_phash_overrides_no_phash PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_does_not_accept_iterable_accept PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_default_phash_overrides_default_phash PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_default_phash_overrides_no_phash PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_existing_securedview PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_existing_view PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_multiviews PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_only_exc_multiview PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_mulview_replaces_existing_view_with___accept__ PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_same_phash_overrides_existing_single_view PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_with_accept_multiview_replaces_existing_view PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only_misconfiguration PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only_no_regular_view PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_register_secured_view PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for__as_dottedname PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for_as_class PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for_as_iface PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_mixed_case_replaces_existing_view PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview___discriminator__ PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_call_ordering PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_context_superclass_then_subclass PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_exception_superclass_then_subclass PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_securedview PASSED [ 27%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_view PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_view_with___accept__ PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_multiview PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_register_secured_view PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_same_phash_overrides_existing_single_view PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_same_predicates PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_None_no_renderer PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_None_with_renderer PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_dottedname PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_match PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_multiview_replaces_existing_view PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_nomatch PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_dottedname PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_false PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_true PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_csrf_header PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_csrf_param PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_custom_predicates_match PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_custom_predicates_nomatch PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_decorator PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_decorator_tuple PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_default_permission_no_explicit_permission PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_default_renderer PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_function_callable PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_function_callable_requestonly PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_badregex PASSED [ 28%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_noval_match PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_noval_nomatch PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_match PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_missing PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_nomatch PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_http_cache PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_false_matches PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_false_no_match PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_true_matches PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_true_no_match PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_mapper PASSED [ 29%] 322s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_missing_csrf_header PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_name PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_name_unicode PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_nonexistant_route_name PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_badregex PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_match PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_nomatch PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_permission PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_false PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_get_implies_head PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_conflict PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_false PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_true PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_true PASSED [ 29%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_noval_false PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_noval_true PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_val_false PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_val_true PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_and_route_name PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_as_iface PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_as_noniface PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_route_name PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_route_name_exception PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_template_renderer PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_template_renderer_no_callable PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_introspector_missing PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_no_renderer_factory PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_with_renderer_factory PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_config_and_view_defaults_conflicts PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_config_and_view_defaults_doesnt_conflict PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_kwarg PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_wildcard_accept_raises PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_xhr_false PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_xhr_true PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_wrapped_view_is_decorated PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_views_with_accept_multiview_replaces_existing PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_default_accept_view_order PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_dottedname PASSED [ 30%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_function PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_with_default_renderer_no_explicit_renderer PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_with_default_renderer_with_explicit_renderer PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_effective_principals_deprecated PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_set_view_mapper PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_set_view_mapper_dottedname PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_view_with_most_specific_predicate PASSED [ 31%] 323s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_view_with_most_specific_predicate_with_mismatch PASSED [ 31%] 323s tests/test_config/test_views.py::Test_runtime_exc_view::test_call PASSED [ 31%] 323s tests/test_config/test_views.py::Test_runtime_exc_view::test_call_dispatches_on_exception PASSED [ 31%] 323s tests/test_config/test_views.py::Test_runtime_exc_view::test_permitted PASSED [ 31%] 323s tests/test_config/test_views.py::Test_runtime_exc_view::test_permitted_dispatches_on_exception PASSED [ 31%] 323s tests/test_config/test_views.py::Test_requestonly::test_defaults PASSED [ 31%] 323s tests/test_config/test_views.py::Test_requestonly::test_otherattr PASSED [ 31%] 323s tests/test_config/test_views.py::Test_isexception::test_is_IException PASSED [ 31%] 323s tests/test_config/test_views.py::Test_isexception::test_is_IException_subinterface PASSED [ 31%] 323s tests/test_config/test_views.py::Test_isexception::test_is_exception_class PASSED [ 31%] 323s tests/test_config/test_views.py::Test_isexception::test_is_exception_instance PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test___call__ PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test___call__intermediate_not_found PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test___call__raise_not_found_isnt_interpreted_as_pred_mismatch PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test___call_permissive_has_call_permissive PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test___call_permissive_has_no_call_permissive PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test__call__not_found PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test__call__with_accept_match PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test__call__with_accept_miss PASSED [ 31%] 323s tests/test_config/test_views.py::TestMultiView::test__call_permissive__not_found PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_add PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_add_with_phash PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_add_with_phash_override_accept PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_add_with_phash_override_accept2 PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_class_implements_ISecuredView PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_get_views PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_get_views_best_match_returns_None PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_get_views_no_self_accepts PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_get_views_request_has_no_accept PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_instance_implements_ISecuredView PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_match_not_found PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_match_predicate_fails PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_match_predicate_succeeds PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_multiple_with_functions_as_views PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_permitted PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_permitted_no_match_with__permitted__ PASSED [ 32%] 323s tests/test_config/test_views.py::TestMultiView::test_permitted_no_views PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test__view_as_function_with_attr PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_context_and_request PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_requestonly PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_requestonly_with_attr PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_context_and_request PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_context_and_request_and_attr PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_requestonly PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_requestonly_with_attr PASSED [ 32%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_context_and_request PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_context_and_request_with_attr PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_requestonly PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_requestonly_with_attr PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_context_and_request PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_context_and_request_with_attr PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_requestonly PASSED [ 33%] 323s tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_requestonly_with_attr PASSED [ 33%] 323s tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_different PASSED [ 33%] 323s tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_different_with_existing_original_view PASSED [ 33%] 323s tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_same PASSED [ 33%] 323s tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_view_is_None PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_already_exists PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebust_prevented PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_abspath PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_for_more_specific_path PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_overwrite PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_overwrite_explicit PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_package_root PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_noendslash PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_noscheme PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_withendslash PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_context PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_for_ PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_permission PASSED [ 33%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_renderer PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_route_prefix PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_missing PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_quoting PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_registration_miss PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_route_url PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_slash_in_name1 PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_slash_in_name2 PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_abspath PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_nomatch PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_with_overrides PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_quoted_remote PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_unquoted_local PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_with_custom_anchor PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_with_custom_query PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_verifyClass PASSED [ 34%] 323s tests/test_config/test_views.py::TestStaticURLInfo::test_verifyObject PASSED [ 34%] 323s tests/test_config/test_views.py::Test_view_description::test_with_text PASSED [ 34%] 323s tests/test_config/test_views.py::Test_view_description::test_without_text PASSED [ 34%] 323s tests/test_csrf.py::TestLegacySessionCSRFStoragePolicy::test_check_csrf_token PASSED [ 34%] 323s tests/test_csrf.py::TestLegacySessionCSRFStoragePolicy::test_register_session_csrf_policy PASSED [ 34%] 323s tests/test_csrf.py::TestLegacySessionCSRFStoragePolicy::test_session_csrf_implementation_delegates_to_session PASSED [ 34%] 323s tests/test_csrf.py::TestSessionCSRFStoragePolicy::test_check_csrf_token PASSED [ 34%] 323s tests/test_csrf.py::TestSessionCSRFStoragePolicy::test_get_csrf_token_returns_the_new_token PASSED [ 34%] 323s tests/test_csrf.py::TestSessionCSRFStoragePolicy::test_it_creates_a_new_token PASSED [ 34%] 323s tests/test_csrf.py::TestSessionCSRFStoragePolicy::test_register_session_csrf_policy PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_check_csrf_token PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_existing_cookie_csrf_does_not_set_cookie PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_get_cookie_csrf_nondefault_samesite PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_get_cookie_csrf_with_no_existing_cookie_sets_cookies PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_get_csrf_token_returns_the_new_token PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_new_cookie_csrf_with_existing_cookie_sets_cookies PASSED [ 35%] 323s tests/test_csrf.py::TestCookieCSRFStoragePolicy::test_register_cookie_csrf_policy PASSED [ 35%] 323s tests/test_csrf.py::Test_get_csrf_token::test_no_override_csrf_utility_registered PASSED [ 35%] 323s tests/test_csrf.py::Test_get_csrf_token::test_success PASSED [ 35%] 323s tests/test_csrf.py::Test_new_csrf_token::test_no_override_csrf_utility_registered PASSED [ 35%] 323s tests/test_csrf.py::Test_new_csrf_token::test_success PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token::test_failure_no_raises PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token::test_failure_raises PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token::test_success_default_header PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token::test_success_default_token PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token::test_success_header PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token::test_success_token PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token_without_defaults_configured::test_failure_no_raises PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token_without_defaults_configured::test_failure_raises PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_token_without_defaults_configured::test_success_token PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_fail_with_null_origin PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_fails_when_http_to_https PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_fails_with_no_origin PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_fails_with_nonstandard_port PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_fails_with_wrong_host PASSED [ 35%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_additional_trusted_host PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_allow_no_origin PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_http PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_https_and_origin PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_https_and_referrer PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_multiple_origins PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_nonstandard_port PASSED [ 36%] 323s tests/test_csrf.py::Test_check_csrf_origin::test_success_with_null_origin_and_setting PASSED [ 36%] 323s tests/test_decorator.py::TestReify::test___get__noinst PASSED [ 36%] 323s tests/test_decorator.py::TestReify::test___get__withinst PASSED [ 36%] 323s tests/test_decorator.py::TestReify::test_copy_docstring PASSED [ 36%] 323s tests/test_decorator.py::TestReify::test_not_function PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_None_value PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_None_value_with_prefix PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_None_value_with_prefix_values PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_ascii_only PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_dict PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_int_val_multiple PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_quote_via PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_unicode_key PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_unicode_val_multiple PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_unicode_val_single PASSED [ 36%] 323s tests/test_encode.py::UrlEncodeTests::test_with_spaces PASSED [ 36%] 323s tests/test_encode.py::URLQuoteTests::test_it_bytes PASSED [ 36%] 323s tests/test_encode.py::URLQuoteTests::test_it_native PASSED [ 36%] 323s tests/test_encode.py::URLQuoteTests::test_it_with_nonstr_nonbinary PASSED [ 36%] 323s tests/test_encode.py::URLQuoteTests::test_it_with_safe PASSED [ 36%] 323s tests/test_events.py::NewRequestEventTests::test_class_conforms_to_INewRequest PASSED [ 37%] 323s tests/test_events.py::NewRequestEventTests::test_ctor PASSED [ 37%] 323s tests/test_events.py::NewRequestEventTests::test_instance_conforms_to_INewRequest PASSED [ 37%] 323s tests/test_events.py::NewResponseEventTests::test_class_conforms_to_INewResponse PASSED [ 37%] 323s tests/test_events.py::NewResponseEventTests::test_ctor PASSED [ 37%] 323s tests/test_events.py::NewResponseEventTests::test_instance_conforms_to_INewResponse PASSED [ 37%] 323s tests/test_events.py::ApplicationCreatedEventTests::test_class_conforms_to_IApplicationCreated PASSED [ 37%] 323s tests/test_events.py::ApplicationCreatedEventTests::test_object_conforms_to_IApplicationCreated PASSED [ 37%] 323s tests/test_events.py::WSGIApplicationCreatedEventTests::test_class_conforms_to_IApplicationCreated PASSED [ 37%] 323s tests/test_events.py::WSGIApplicationCreatedEventTests::test_class_conforms_to_IWSGIApplicationCreatedEvent PASSED [ 37%] 323s tests/test_events.py::WSGIApplicationCreatedEventTests::test_object_conforms_to_IApplicationCreated PASSED [ 37%] 323s tests/test_events.py::WSGIApplicationCreatedEventTests::test_object_conforms_to_IWSGIApplicationCreatedEvent PASSED [ 37%] 323s tests/test_events.py::ContextFoundEventTests::test_class_conforms_to_IContextFound PASSED [ 37%] 323s tests/test_events.py::ContextFoundEventTests::test_instance_conforms_to_IContextFound PASSED [ 37%] 323s tests/test_events.py::AfterTraversalEventTests::test_class_conforms_to_IAfterTraversal PASSED [ 37%] 323s tests/test_events.py::AfterTraversalEventTests::test_class_conforms_to_IContextFound PASSED [ 37%] 323s tests/test_events.py::AfterTraversalEventTests::test_instance_conforms_to_IAfterTraversal PASSED [ 37%] 323s tests/test_events.py::AfterTraversalEventTests::test_instance_conforms_to_IContextFound PASSED [ 37%] 323s tests/test_events.py::BeforeTraversalEventTests::test_class_conforms_to_IBeforeTraversal PASSED [ 37%] 323s tests/test_events.py::BeforeTraversalEventTests::test_instance_conforms_to_IBeforeTraversal PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test___call__ PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test___call___with_venusian_args PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test_register_multi PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test_register_none_means_all PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test_register_objectevent PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test_register_single PASSED [ 37%] 323s tests/test_events.py::TestSubscriber::test_regsister_with_predicates PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test__contains__False PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test__contains__True PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test__getitem__fail PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test__getitem__success PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_get_fail PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_get_success PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_instance_conforms PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_rendering_val PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_setdefault_fail PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_setdefault_success PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_setitem_success PASSED [ 38%] 323s tests/test_events.py::TestBeforeRender::test_update_success PASSED [ 38%] 323s tests/test_exceptions.py::TestBWCompat::test_bwcompat_forbidden PASSED [ 38%] 323s tests/test_exceptions.py::TestBWCompat::test_bwcompat_notfound PASSED [ 38%] 323s tests/test_exceptions.py::TestBadCSRFToken::test_response_equivalence PASSED [ 38%] 323s tests/test_exceptions.py::TestNotFound::test_it PASSED [ 38%] 323s tests/test_exceptions.py::TestNotFound::test_response_equivalence PASSED [ 38%] 323s tests/test_exceptions.py::TestForbidden::test_it PASSED [ 38%] 323s tests/test_exceptions.py::TestForbidden::test_response_equivalence PASSED [ 38%] 323s tests/test_exceptions.py::TestConfigurationConflictError::test_non_sortable_discriminators_in_str PASSED [ 38%] 323s tests/test_exceptions.py::TestConfigurationConflictError::test_str PASSED [ 38%] 323s tests/test_exceptions.py::TestConfigurationExecutionError::test_str PASSED [ 38%] 323s tests/test_exceptions.py::TestCyclicDependencyError::test___str__ PASSED [ 38%] 323s tests/test_httpexceptions.py::Test_exception_response::test_extra_kw PASSED [ 38%] 323s tests/test_httpexceptions.py::Test_exception_response::test_status_201 PASSED [ 38%] 323s tests/test_httpexceptions.py::Test_exception_response::test_status_400 PASSED [ 39%] 323s tests/test_httpexceptions.py::Test_exception_response::test_status_404 PASSED [ 39%] 323s tests/test_httpexceptions.py::Test_exception_response::test_status_500 PASSED [ 39%] 323s tests/test_httpexceptions.py::Test_default_exceptionresponse_view::test_call_with_exception PASSED [ 39%] 323s tests/test_httpexceptions.py::Test_default_exceptionresponse_view::test_call_with_nonexception PASSED [ 39%] 323s tests/test_httpexceptions.py::Test__no_escape::test_bytes PASSED [ 39%] 323s tests/test_httpexceptions.py::Test__no_escape::test_not_basestring PASSED [ 39%] 323s tests/test_httpexceptions.py::Test__no_escape::test_null PASSED [ 39%] 323s tests/test_httpexceptions.py::Test__no_escape::test_unicode PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__calls_start_response PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__content_type PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__content_type_application_json PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__content_type_default_is_html PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__content_type_invalid PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__content_type_text_html PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_no_comment_html PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_no_comment_plain PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_with_comment_ampersand PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_with_comment_html PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_with_comment_json PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_with_comment_plain PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__default_app_iter_with_custom_json PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__str__detail PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test__str__explanation PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test_allow_detail_non_str PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test_body_template_unicode PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test_call_returns_same_body_called_twice PASSED [ 39%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_calls_Exception_ctor PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_calls_Response_ctor PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_extends_headers PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_sets_body_template_obj PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_sets_comment PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_sets_detail PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_with_app_iter_doesnt_set_default_app_iter PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_with_body_doesnt_set_default_app_iter PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_with_body_sets_default_app_iter_html PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_with_body_sets_default_app_iter_text PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_with_empty_body PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_ctor_with_unicode_body_doesnt_set_default_app_iter PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_custom_body_template PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_custom_body_template_with_custom_variable_doesnt_choke PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_exception PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_implements_IExceptionResponse PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_implements_IResponse PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_provides_IExceptionResponse PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_provides_IResponse PASSED [ 40%] 323s tests/test_httpexceptions.py::TestHTTPException::test_wsgi_response PASSED [ 40%] 323s tests/test_httpexceptions.py::TestRenderAllExceptionsWithoutArguments::test_it_html PASSED [ 40%] 323s tests/test_httpexceptions.py::TestRenderAllExceptionsWithoutArguments::test_it_plain PASSED [ 40%] 323s tests/test_httpexceptions.py::Test_HTTPMove::test_it_call_with_default_body_tmpl PASSED [ 40%] 323s tests/test_httpexceptions.py::Test_HTTPMove::test_it_location_firstarg PASSED [ 40%] 323s tests/test_httpexceptions.py::Test_HTTPMove::test_it_location_none_valueerrors PASSED [ 40%] 323s tests/test_httpexceptions.py::Test_HTTPMove::test_it_location_not_passed PASSED [ 40%] 323s tests/test_httpexceptions.py::Test_HTTPMove::test_it_location_passed PASSED [ 41%] 323s tests/test_httpexceptions.py::TestHTTPForbidden::test_it_result_not_passed PASSED [ 41%] 323s tests/test_httpexceptions.py::TestHTTPForbidden::test_it_result_passed PASSED [ 41%] 323s tests/test_httpexceptions.py::TestHTTPMethodNotAllowed::test_it_with_default_body_tmpl PASSED [ 41%] 323s tests/test_i18n.py::TestTranslationString::test_it PASSED [ 41%] 323s tests/test_i18n.py::TestTranslationStringFactory::test_it PASSED [ 41%] 323s tests/test_i18n.py::TestLocalizer::test_ctor PASSED [ 41%] 323s tests/test_i18n.py::TestLocalizer::test_pluralize PASSED [ 41%] 323s tests/test_i18n.py::TestLocalizer::test_pluralize_default_translations PASSED [ 41%] 323s tests/test_i18n.py::TestLocalizer::test_pluralize_pluralizer_already_added PASSED [ 41%] 323s tests/test_i18n.py::TestLocalizer::test_translate PASSED [ 41%] 323s tests/test_i18n.py::Test_negotiate_locale_name::test_default_default PASSED [ 41%] 323s tests/test_i18n.py::Test_negotiate_locale_name::test_default_from_settings PASSED [ 41%] 323s tests/test_i18n.py::Test_negotiate_locale_name::test_no_registry_on_request PASSED [ 41%] 323s tests/test_i18n.py::Test_negotiate_locale_name::test_use_default_locale_negotiator PASSED [ 41%] 323s tests/test_i18n.py::Test_negotiate_locale_name::test_with_registry_on_request PASSED [ 41%] 323s tests/test_i18n.py::Test_get_locale_name::test_name_on_request PASSED [ 41%] 323s tests/test_i18n.py::Test_make_localizer::test_locale_from_mo PASSED [ 41%] 323s tests/test_i18n.py::Test_make_localizer::test_locale_from_mo_bad_mo PASSED [ 41%] 323s tests/test_i18n.py::Test_make_localizer::test_locale_from_mo_mo_isdir PASSED [ 41%] 323s tests/test_i18n.py::Test_make_localizer::test_territory_fallback PASSED [ 41%] 323s tests/test_i18n.py::Test_get_localizer::test_it PASSED [ 41%] 323s tests/test_i18n.py::Test_default_locale_negotiator::test_from_cookies PASSED [ 41%] 323s tests/test_i18n.py::Test_default_locale_negotiator::test_from_none PASSED [ 41%] 323s tests/test_i18n.py::Test_default_locale_negotiator::test_from_params PASSED [ 41%] 323s tests/test_i18n.py::Test_default_locale_negotiator::test_from_request_attr PASSED [ 41%] 323s tests/test_i18n.py::TestTranslations::test___repr__ PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_add_default_domain_replaces_plural_first_time PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_add_different_domain_merge_true_existing PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_add_different_domain_merge_true_notexisting PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_add_same_domain_merge_true PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_default_germanic_pluralization PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_dgettext PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_dngettext PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_dugettext PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_dungettext PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_ldgettext SKIPPED (droppd...) [ 42%] 323s tests/test_i18n.py::TestTranslations::test_ldngettext SKIPPED (dropp...) [ 42%] 323s tests/test_i18n.py::TestTranslations::test_load_domain_None PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_load_found_locale_and_domain PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_load_found_locale_and_domain_locale_is_string PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_load_locales_None PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_merge_gnutranslations PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_merge_gnutranslations_not_translations PASSED [ 42%] 323s tests/test_i18n.py::TestTranslations::test_merge_not_gnutranslations PASSED [ 42%] 323s tests/test_i18n.py::TestLocalizerRequestMixin::test_custom_localizer_for_custom_locale PASSED [ 42%] 323s tests/test_i18n.py::TestLocalizerRequestMixin::test_custom_localizer_for_default_locale PASSED [ 42%] 323s tests/test_i18n.py::TestLocalizerRequestMixin::test_default_localizer PASSED [ 42%] 323s tests/test_i18n.py::TestLocalizerRequestMixin::test_localizer_from_mo PASSED [ 42%] 323s tests/test_i18n.py::TestLocalizerRequestMixin::test_localizer_from_mo_bad_mo PASSED [ 42%] 323s tests/test_integration.py::WGSIAppPlusViewConfigTests::test_it PASSED [ 42%] 323s tests/test_integration.py::WGSIAppPlusViewConfigTests::test_scanned PASSED [ 42%] 323s tests/test_integration.py::TestEventOnlySubscribers::test_sendfoo PASSED [ 42%] 323s tests/test_integration.py::TestEventOnlySubscribers::test_sendfoobar PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_basic PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_directory_noslash_redir PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_directory_noslash_redir_preserves_qs PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_directory_noslash_redir_with_scriptname PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_directory_withslash PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_file_in_subdir PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_hidden PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_highchars_in_filename PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_highchars_in_pathelement PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_not_modified PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_notfound PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_oob_dotdotslash PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_oob_dotdotslash_encoded PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_oob_slash PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_range_inclusive PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_range_multiple PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_range_notbytes PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_range_oob PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAbsPath::test_range_tilend PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_basic PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_directory_noslash_redir PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_directory_noslash_redir_preserves_qs PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_directory_noslash_redir_with_scriptname PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_directory_withslash PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_file_in_subdir PASSED [ 43%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_hidden PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_highchars_in_filename PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_highchars_in_pathelement PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_not_modified PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_notfound PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_oob_dotdotslash PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_oob_dotdotslash_encoded PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_oob_slash PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_range_inclusive PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_range_multiple PASSED [ 44%] 323s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_range_notbytes PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_range_oob PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppUsingAssetSpec::test_range_tilend PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppWithEncodings::test_accept_gzip PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppWithEncodings::test_accept_gzip_returns_identity PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppWithEncodings::test_no_accept PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppWithEncodings::test_unsupported_accept PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppNoSubpath::test_basic PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppWithRoutePrefix::test_includelevel1 PASSED [ 44%] 324s tests/test_integration.py::TestStaticAppWithRoutePrefix::test_includelevel2 PASSED [ 44%] 324s tests/test_integration.py::TestFixtureApp::test_another PASSED [ 44%] 324s tests/test_integration.py::TestFixtureApp::test_dummyskin PASSED [ 44%] 324s tests/test_integration.py::TestFixtureApp::test_error PASSED [ 44%] 324s tests/test_integration.py::TestFixtureApp::test_protected PASSED [ 44%] 324s tests/test_integration.py::TestFixtureApp::test_root PASSED [ 44%] 324s tests/test_integration.py::TestStaticPermApp::test_allowed PASSED [ 44%] 324s tests/test_integration.py::TestStaticPermApp::test_allowed_via_acl_global_root_factory PASSED [ 45%] 324s tests/test_integration.py::TestStaticPermApp::test_allowed_via_acl_local_root_factory PASSED [ 45%] 324s tests/test_integration.py::TestStaticPermApp::test_denied_via_acl_global_root_factory PASSED [ 45%] 324s tests/test_integration.py::TestStaticPermApp::test_denied_via_acl_local_root_factory PASSED [ 45%] 324s tests/test_integration.py::TestCCBug::test_juri PASSED [ 45%] 324s tests/test_integration.py::TestCCBug::test_rdf PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_abc PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_def PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_error PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_error2 PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_error_sub PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_ghi PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_jkl PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_mno PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_pqr_global2 PASSED [ 45%] 324s tests/test_integration.py::TestHybridApp::test_root PASSED [ 45%] 324s tests/test_integration.py::TestRestBugApp::test_it PASSED [ 45%] 324s tests/test_integration.py::TestForbiddenAppHasResult::test_it PASSED [ 45%] 324s tests/test_integration.py::TestViewDecoratorApp::test_first PASSED [ 45%] 324s tests/test_integration.py::TestViewDecoratorApp::test_second PASSED [ 45%] 324s tests/test_integration.py::TestNotFoundView::test_it PASSED [ 45%] 324s tests/test_integration.py::TestForbiddenView::test_it PASSED [ 45%] 324s tests/test_integration.py::TestViewPermissionBug::test_test PASSED [ 45%] 324s tests/test_integration.py::TestViewPermissionBug::test_x PASSED [ 45%] 324s tests/test_integration.py::TestDefaultViewPermissionBug::test_x PASSED [ 45%] 324s tests/test_integration.py::TestDefaultViewPermissionBug::test_y PASSED [ 45%] 324s tests/test_integration.py::TestDefaultViewPermissionBug::test_z PASSED [ 45%] 324s tests/test_integration.py::TestExceptionViewsApp::test_anexception PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_notanexception PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_raise_httpexception PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_root PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_route_raise_exception PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_route_raise_exception2 PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_route_raise_exception3 PASSED [ 46%] 324s tests/test_integration.py::TestExceptionViewsApp::test_route_raise_exception4 PASSED [ 46%] 324s tests/test_integration.py::TestSecurityApp::test_inaccessible PASSED [ 46%] 324s tests/test_integration.py::TestSecurityApp::test_private_allowed PASSED [ 46%] 324s tests/test_integration.py::TestSecurityApp::test_private_denied PASSED [ 46%] 324s tests/test_integration.py::TestSecurityApp::test_public PASSED [ 46%] 324s tests/test_integration.py::TestLegacySecurityApp::test_inaccessible PASSED [ 46%] 324s tests/test_integration.py::TestLegacySecurityApp::test_private_allowed PASSED [ 46%] 324s tests/test_integration.py::TestLegacySecurityApp::test_private_denied PASSED [ 46%] 324s tests/test_integration.py::TestLegacySecurityApp::test_public PASSED [ 46%] 324s tests/test_integration.py::TestConflictApp::test_autoresolved_view PASSED [ 46%] 324s tests/test_integration.py::TestConflictApp::test_nonoverridden_authorization_policy PASSED [ 46%] 324s tests/test_integration.py::TestConflictApp::test_overridden_authorization_policy PASSED [ 46%] 324s tests/test_integration.py::TestConflictApp::test_overridden_autoresolved_view PASSED [ 46%] 324s tests/test_integration.py::TestConflictApp::test_overridden_route_view PASSED [ 46%] 324s tests/test_integration.py::ImperativeIncludeConfigurationTest::test_root PASSED [ 46%] 324s tests/test_integration.py::ImperativeIncludeConfigurationTest::test_three PASSED [ 46%] 324s tests/test_integration.py::ImperativeIncludeConfigurationTest::test_two PASSED [ 46%] 324s tests/test_integration.py::SelfScanAppTest::test_root PASSED [ 46%] 324s tests/test_integration.py::SelfScanAppTest::test_two PASSED [ 46%] 324s tests/test_integration.py::WSGIApp2AppTest::test_hello PASSED [ 47%] 324s tests/test_integration.py::SubrequestAppTest::test_five PASSED [ 47%] 324s tests/test_integration.py::SubrequestAppTest::test_one PASSED [ 47%] 324s tests/test_integration.py::SubrequestAppTest::test_three PASSED [ 47%] 324s tests/test_integration.py::RendererScanAppTest::test_rescan PASSED [ 47%] 324s tests/test_integration.py::RendererScanAppTest::test_root PASSED [ 47%] 324s tests/test_integration.py::RendererScanAppTest::test_two PASSED [ 47%] 324s tests/test_integration.py::UnicodeInURLTest::test_unicode_in_url_200 PASSED [ 47%] 324s tests/test_integration.py::UnicodeInURLTest::test_unicode_in_url_404 PASSED [ 47%] 324s tests/test_integration.py::AcceptContentTypeTest::test_client_side_ordering PASSED [ 47%] 324s tests/test_integration.py::AcceptContentTypeTest::test_custom_server_side_ordering PASSED [ 47%] 324s tests/test_integration.py::AcceptContentTypeTest::test_default_server_side_ordering PASSED [ 47%] 325s tests/test_integration.py::MemoryLeaksTest::test_memory_leaks PASSED [ 47%] 325s tests/test_location.py::TestInside::test_inside PASSED [ 47%] 325s tests/test_location.py::TestLineage::test_lineage PASSED [ 47%] 325s tests/test_paster.py::Test_get_app::test_it PASSED [ 47%] 325s tests/test_paster.py::Test_get_app::test_it_with_dummyapp_requiring_options PASSED [ 47%] 325s tests/test_paster.py::Test_get_appsettings::test_it PASSED [ 47%] 325s tests/test_paster.py::Test_get_appsettings::test_it_with_dummyapp_requiring_options PASSED [ 47%] 325s tests/test_paster.py::Test_setup_logging::test_it_global_conf_empty PASSED [ 47%] 325s tests/test_paster.py::Test_setup_logging::test_it_global_conf_not_empty PASSED [ 47%] 325s tests/test_paster.py::Test_setup_logging::test_it_no_global_conf PASSED [ 47%] 325s tests/test_paster.py::Test_bootstrap::test_it_request_with_registry PASSED [ 47%] 325s tests/test_path.py::TestCallerPath::test_isabs PASSED [ 47%] 325s tests/test_path.py::TestCallerPath::test_memoization_has_abspath PASSED [ 47%] 325s tests/test_path.py::TestCallerPath::test_memoization_success PASSED [ 47%] 325s tests/test_path.py::TestCallerPath::test_pkgrelative PASSED [ 48%] 325s tests/test_path.py::TestCallerModule::test_it_level_1 PASSED [ 48%] 325s tests/test_path.py::TestCallerModule::test_it_level_2 PASSED [ 48%] 325s tests/test_path.py::TestCallerModule::test_it_level_3 PASSED [ 48%] 325s tests/test_path.py::TestCallerModule::test_it_no___name__ PASSED [ 48%] 325s tests/test_path.py::TestCallerPackage::test_it_level_1 PASSED [ 48%] 325s tests/test_path.py::TestCallerPackage::test_it_level_2 PASSED [ 48%] 325s tests/test_path.py::TestCallerPackage::test_it_level_3 PASSED [ 48%] 325s tests/test_path.py::TestCallerPackage::test_it_package PASSED [ 48%] 325s tests/test_path.py::TestPackagePath::test_it_module PASSED [ 48%] 325s tests/test_path.py::TestPackagePath::test_it_package PASSED [ 48%] 325s tests/test_path.py::TestPackagePath::test_memoization_fail PASSED [ 48%] 325s tests/test_path.py::TestPackagePath::test_memoization_success PASSED [ 48%] 325s tests/test_path.py::TestPackageOf::test_it_module PASSED [ 48%] 325s tests/test_path.py::TestPackageOf::test_it_package PASSED [ 48%] 325s tests/test_path.py::TestPackageName::test_it_None PASSED [ 48%] 325s tests/test_path.py::TestPackageName::test_it_main PASSED [ 48%] 325s tests/test_path.py::TestPackageName::test_it_module PASSED [ 48%] 325s tests/test_path.py::TestPackageName::test_it_namespace_package PASSED [ 48%] 325s tests/test_path.py::TestPackageName::test_it_package PASSED [ 48%] 325s tests/test_path.py::TestResolver::test_get_package_caller_package PASSED [ 48%] 325s tests/test_path.py::TestResolver::test_get_package_name_caller_package PASSED [ 48%] 325s tests/test_path.py::TestResolver::test_get_package_name_string PASSED [ 48%] 325s tests/test_path.py::TestResolver::test_get_package_string PASSED [ 48%] 325s tests/test_path.py::TestAssetResolver::test_ctor_as_package PASSED [ 48%] 325s tests/test_path.py::TestAssetResolver::test_ctor_as_str PASSED [ 48%] 325s tests/test_path.py::TestAssetResolver::test_resolve_abspath PASSED [ 48%] 325s tests/test_path.py::TestAssetResolver::test_resolve_absspec PASSED [ 49%] 325s tests/test_path.py::TestAssetResolver::test_resolve_relspec_caller_package PASSED [ 49%] 325s tests/test_path.py::TestAssetResolver::test_resolve_relspec_no_package PASSED [ 49%] 325s tests/test_path.py::TestAssetResolver::test_resolve_relspec_with_pkg PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_abspath PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_absspec PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_class_conforms_to_IAssetDescriptor PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_exists PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_instance_conforms_to_IAssetDescriptor PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_isdir PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_listdir PASSED [ 49%] 325s tests/test_path.py::TestPkgResourcesAssetDescriptor::test_stream PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_abspath PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_absspec PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_class_conforms_to_IAssetDescriptor PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_exists PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_instance_conforms_to_IAssetDescriptor PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_isdir_False PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_isdir_True PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_listdir PASSED [ 49%] 325s tests/test_path.py::TestFSAssetDescriptor::test_stream PASSED [ 49%] 325s tests/test_path.py::TestDottedNameResolver::test__pkg_resources_style_irrresolveable_absolute PASSED [ 49%] 325s tests/test_path.py::TestDottedNameResolver::test__pkg_resources_style_irrresolveable_relative PASSED [ 49%] 325s tests/test_path.py::TestDottedNameResolver::test__pkg_resources_style_resolve_absolute PASSED [ 49%] 325s tests/test_path.py::TestDottedNameResolver::test__pkg_resources_style_resolve_relative PASSED [ 49%] 325s tests/test_path.py::TestDottedNameResolver::test__pkg_resources_style_resolve_relative_is_dot PASSED [ 49%] 325s tests/test_path.py::TestDottedNameResolver::test__pkg_resources_style_resolve_relative_nocurrentpackage PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_irresolveable_absolute PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_irresolveable_relative_is_dot PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_resolve_relative PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_resolve_relative_is_dot PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_resolve_relative_leading_dots PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_resolveable_absolute PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test__zope_dottedname_style_resolveable_relative PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_ctor_None PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_ctor_module PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_ctor_package PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_ctor_string_irresolveable PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_ctor_string_module_resolveable PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_ctor_string_package_resolveable PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_maybe_resolve_caller_package PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_resolve_caller_package PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_resolve_missing_raises PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_resolve_not_a_string PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_resolve_using_pkgresources_style PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_resolve_using_zope_dottedname_style PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_zope_dottedname_style_irrresolveable_absolute PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_zope_dottedname_style_irrresolveable_relative PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_zope_dottedname_style_resolve_absolute PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_zope_dottedname_style_resolve_builtin PASSED [ 50%] 325s tests/test_path.py::TestDottedNameResolver::test_zope_dottedname_style_resolve_relative_nocurrentpackage PASSED [ 50%] 325s tests/test_predicates.py::TestXHRPredicate::test___call___false PASSED [ 50%] 325s tests/test_predicates.py::TestXHRPredicate::test___call___true PASSED [ 51%] 325s tests/test_predicates.py::TestXHRPredicate::test_phash PASSED [ 51%] 325s tests/test_predicates.py::TestXHRPredicate::test_text PASSED [ 51%] 325s tests/test_predicates.py::TestRequestMethodPredicate::test___call___false PASSED [ 51%] 325s tests/test_predicates.py::TestRequestMethodPredicate::test___call___true_multi PASSED [ 51%] 325s tests/test_predicates.py::TestRequestMethodPredicate::test___call___true_single PASSED [ 51%] 325s tests/test_predicates.py::TestRequestMethodPredicate::test_ctor_get_but_no_head PASSED [ 51%] 325s tests/test_predicates.py::TestRequestMethodPredicate::test_phash PASSED [ 51%] 325s tests/test_predicates.py::TestRequestMethodPredicate::test_text PASSED [ 51%] 325s tests/test_predicates.py::TestPathInfoPredicate::test___call___false PASSED [ 51%] 325s tests/test_predicates.py::TestPathInfoPredicate::test___call___true PASSED [ 51%] 325s tests/test_predicates.py::TestPathInfoPredicate::test_ctor_compilefail PASSED [ 51%] 325s tests/test_predicates.py::TestPathInfoPredicate::test_phash PASSED [ 51%] 325s tests/test_predicates.py::TestPathInfoPredicate::test_text PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test___call___false PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test___call___false_multi PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test___call___true_exists PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test___call___true_multi PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test___call___true_withval PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_phash_exists PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_phash_exists_equal_sign PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_phash_withval PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_text_exists PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_text_exists_equal_sign PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_text_multi PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_text_multi_equal_sign PASSED [ 51%] 325s tests/test_predicates.py::TestRequestParamPredicate::test_text_withval PASSED [ 51%] 325s tests/test_predicates.py::TestMatchParamPredicate::test___call___false PASSED [ 52%] 325s tests/test_predicates.py::TestMatchParamPredicate::test___call___matchdict_is_None PASSED [ 52%] 325s tests/test_predicates.py::TestMatchParamPredicate::test___call___true_multi PASSED [ 52%] 325s tests/test_predicates.py::TestMatchParamPredicate::test___call___true_single PASSED [ 52%] 325s tests/test_predicates.py::TestMatchParamPredicate::test_phash PASSED [ 52%] 325s tests/test_predicates.py::TestMatchParamPredicate::test_text PASSED [ 52%] 325s tests/test_predicates.py::TestCustomPredicate::test___call___false PASSED [ 52%] 325s tests/test_predicates.py::TestCustomPredicate::test___call___true PASSED [ 52%] 325s tests/test_predicates.py::TestCustomPredicate::test_phash PASSED [ 52%] 325s tests/test_predicates.py::TestCustomPredicate::test_text_func_has___text__ PASSED [ 52%] 325s tests/test_predicates.py::TestCustomPredicate::test_text_func_repr PASSED [ 52%] 325s tests/test_predicates.py::TestTraversePredicate::test___call__traverse_has_remainder_already PASSED [ 52%] 325s tests/test_predicates.py::TestTraversePredicate::test___call__traverse_matches PASSED [ 52%] 325s tests/test_predicates.py::TestTraversePredicate::test___call__traverse_matches_with_highorder_chars PASSED [ 52%] 325s tests/test_predicates.py::TestTraversePredicate::test_phash PASSED [ 52%] 325s tests/test_predicates.py::TestTraversePredicate::test_text PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test___call___false PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test___call___false_withregex PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test___call___true_exists PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test___call___true_withregex PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test___call___true_withval PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test_phash_exists PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test_phash_withregex PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test_phash_withval PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test_text_exists PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test_text_withregex PASSED [ 52%] 325s tests/test_predicates.py::TestHeaderPredicate::test_text_withval PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_False PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_context_has_no_name PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_list_True PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_str_True PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_tuple_True PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_phash PASSED [ 53%] 325s tests/test_predicates.py::Test_PhysicalPathPredicate::test_text PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_doesnt_provide_superset PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset_implicit PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_no_authentication_policy PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_phash PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_text PASSED [ 53%] 325s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_text_noniter PASSED [ 53%] 325s tests/test_predicates.py::TestNotted::test_it_with_phash_val PASSED [ 53%] 325s tests/test_predicates.py::TestNotted::test_it_without_phash_val PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test___bool__ PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test__get_settings PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test__lock PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test__set_settings PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test_clear_view_cache_lookup PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test_default_package_name PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test_init_forwards_args PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test_init_forwards_kw PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test_package_name PASSED [ 53%] 325s tests/test_registry.py::TestRegistry::test_registerHandler_and_notify PASSED [ 54%] 325s tests/test_registry.py::TestRegistry::test_registerSubscriptionAdapter PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_add PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_categories PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_categorized PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_conformance PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_get_category PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_get_category_returns_default_on_miss PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_get_category_with_sortkey PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_get_fail PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_get_success PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_get_success_byhash PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_relate PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_relate_fail PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_related PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_related_fail PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_remove PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_remove_fail PASSED [ 54%] 325s tests/test_registry.py::TestIntrospector::test_unrelate PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test___bool__ PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test___hash__ PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test___repr__ PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test_conformance PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test_discriminator_hash PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test_register PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test_relate PASSED [ 54%] 325s tests/test_registry.py::TestIntrospectable::test_unrelate PASSED [ 54%] 325s tests/test_renderers.py::TestJSON::test_it PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_custom_adapter PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_custom_adapter2 PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_custom_serializer PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_object_adapter PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_object_adapter_no___json__ PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_request_content_type_notset PASSED [ 55%] 325s tests/test_renderers.py::TestJSON::test_with_request_content_type_set PASSED [ 55%] 325s tests/test_renderers.py::Test_string_renderer_factory::test_it_other PASSED [ 55%] 325s tests/test_renderers.py::Test_string_renderer_factory::test_it_str PASSED [ 55%] 325s tests/test_renderers.py::Test_string_renderer_factory::test_it_unicode PASSED [ 55%] 325s tests/test_renderers.py::Test_string_renderer_factory::test_with_request_content_type_notset PASSED [ 55%] 325s tests/test_renderers.py::Test_string_renderer_factory::test_with_request_content_type_set PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_request_is_None PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_request_is_None_response_factory_exists PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_result_is_None_existing_body_not_molested PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_result_is_None_no_body PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_result_is_iterable PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_result_is_other PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_result_is_str PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_result_is_unicode PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test__make_response_with_real_request PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test_clone_allargs PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test_clone_noargs PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test_get_renderer PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test_instance_conforms PASSED [ 55%] 325s tests/test_renderers.py::TestRendererHelper::test_render_explicit_registry PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_render_system_values_is_None PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_render_to_response PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_render_view PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_renderer_absolute_file PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_renderer_missing PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_renderer_with_package PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_settings_registry_name_is_None PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_settings_registry_settings_is_None PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_settings_registry_settings_is_not_None PASSED [ 56%] 325s tests/test_renderers.py::TestRendererHelper::test_with_alternate_response_factory PASSED [ 56%] 325s tests/test_renderers.py::TestNullRendererHelper::test_clone PASSED [ 56%] 325s tests/test_renderers.py::TestNullRendererHelper::test_instance_conforms PASSED [ 56%] 325s tests/test_renderers.py::TestNullRendererHelper::test_render PASSED [ 56%] 325s tests/test_renderers.py::TestNullRendererHelper::test_render_to_response PASSED [ 56%] 325s tests/test_renderers.py::TestNullRendererHelper::test_render_view PASSED [ 56%] 325s tests/test_renderers.py::Test_render::test_it_no_request PASSED [ 56%] 325s tests/test_renderers.py::Test_render::test_it_with_package PASSED [ 56%] 325s tests/test_renderers.py::Test_render::test_it_with_request PASSED [ 56%] 325s tests/test_renderers.py::Test_render::test_no_response_to_preserve PASSED [ 56%] 325s tests/test_renderers.py::Test_render::test_response_preserved PASSED [ 56%] 325s tests/test_renderers.py::Test_render_to_response::test_custom_response_object PASSED [ 56%] 325s tests/test_renderers.py::Test_render_to_response::test_it_no_request PASSED [ 56%] 325s tests/test_renderers.py::Test_render_to_response::test_it_with_package PASSED [ 56%] 325s tests/test_renderers.py::Test_render_to_response::test_it_with_request PASSED [ 56%] 325s tests/test_renderers.py::Test_render_to_response::test_no_response_to_preserve PASSED [ 56%] 325s tests/test_renderers.py::Test_render_to_response::test_response_preserved PASSED [ 57%] 325s tests/test_renderers.py::Test_get_renderer::test_it_no_package PASSED [ 57%] 325s tests/test_renderers.py::Test_get_renderer::test_it_with_isolated_registry PASSED [ 57%] 325s tests/test_renderers.py::Test_get_renderer::test_it_with_package PASSED [ 57%] 325s tests/test_renderers.py::Test_get_renderer::test_it_with_registry PASSED [ 57%] 325s tests/test_renderers.py::TestJSONP::test_render_to_json PASSED [ 57%] 325s tests/test_renderers.py::TestJSONP::test_render_to_jsonp PASSED [ 57%] 325s tests/test_renderers.py::TestJSONP::test_render_to_jsonp_invalid_callback PASSED [ 57%] 325s tests/test_renderers.py::TestJSONP::test_render_to_jsonp_with_dot PASSED [ 57%] 325s tests/test_renderers.py::TestJSONP::test_render_without_request PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_ResponseClass_is_pyramid_Response PASSED [ 57%] 325s tests/test_request.py::TestRequest::test__process_finished_callbacks PASSED [ 57%] 325s tests/test_request.py::TestRequest::test__process_response_callback_adding_response_callback PASSED [ 57%] 325s tests/test_request.py::TestRequest::test__process_response_callbacks PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_add_finished_callback PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_add_response_callback PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_charset_defaults_to_utf8 PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_class_conforms_to_IRequest PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_exception_defaults_to_None PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_implements_security_apis PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_instance_conforms_to_IRequest PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_is_response_adapter_true PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_is_response_false PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_is_response_false_adapter_is_not_self PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_is_response_true_ob_is_pyramid_response PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_json_body_GET_request PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_json_body_alternate_charset PASSED [ 57%] 325s tests/test_request.py::TestRequest::test_json_body_invalid_json PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_json_body_valid_json PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_matchdict_defaults_to_None PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_matched_route_defaults_to_None PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_params_decoded_from_utf_8_by_default PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_resource_url PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_route_path PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_route_url PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_session_configured PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_session_not_configured PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_set_property PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_set_property_reify PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_setattr_and_getattr PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_setattr_and_getattr_dotnotation PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_static_url PASSED [ 58%] 325s tests/test_request.py::TestRequest::test_tmpl_context PASSED [ 58%] 325s tests/test_request.py::Test_route_request_iface::test_it PASSED [ 58%] 325s tests/test_request.py::Test_route_request_iface::test_it_routename_with_spaces PASSED [ 58%] 325s tests/test_request.py::Test_add_global_response_headers::test_it PASSED [ 58%] 325s tests/test_request.py::Test_call_app_with_subpath_as_path_info::test_it_all_request_and_environment_data_missing PASSED [ 58%] 325s tests/test_request.py::Test_call_app_with_subpath_as_path_info::test_it_with_extra_slashes_in_path_info PASSED [ 58%] 325s tests/test_request.py::Test_call_app_with_subpath_as_path_info::test_it_with_subpath_and_path_info PASSED [ 58%] 325s tests/test_request.py::Test_call_app_with_subpath_as_path_info::test_it_with_subpath_and_path_info_extra_script_name PASSED [ 58%] 325s tests/test_request.py::Test_call_app_with_subpath_as_path_info::test_it_with_subpath_and_path_info_path_info_endswith_slash PASSED [ 58%] 325s tests/test_request.py::Test_call_app_with_subpath_as_path_info::test_subpath_path_info_and_script_name_have_utf8 PASSED [ 58%] 325s tests/test_request.py::Test_apply_request_extensions::test_it_override_extensions PASSED [ 58%] 325s tests/test_request.py::Test_apply_request_extensions::test_it_with_registry PASSED [ 59%] 325s tests/test_request.py::Test_subclassing_Request::test_subclass PASSED [ 59%] 325s tests/test_request.py::Test_subclassing_Request::test_subclass_mutate_before_providedBy PASSED [ 59%] 325s tests/test_request.py::Test_subclassing_Request::test_subclass_with_implementer PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_clear_works PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_creator_in_constructor PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_decorator_overrides_creator PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_get_or_create_overrides_creator PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_get_or_create_with_no_creator PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_get_works PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_it_works_with_functions PASSED [ 59%] 325s tests/test_request.py::TestRequestLocalCache::test_set_overrides_current_value PASSED [ 59%] 325s tests/test_response.py::TestResponse::test_implements_IResponse PASSED [ 59%] 325s tests/test_response.py::TestResponse::test_provides_IResponse PASSED [ 59%] 325s tests/test_response.py::TestFileResponse::test_python_277_bug_15207 PASSED [ 59%] 325s tests/test_response.py::TestFileResponse::test_with_image_content_type PASSED [ 59%] 325s tests/test_response.py::TestFileResponse::test_with_pdf_content_type PASSED [ 59%] 325s tests/test_response.py::TestFileResponse::test_with_xml_content_type PASSED [ 59%] 325s tests/test_response.py::TestFileResponse::test_without_content_type PASSED [ 59%] 325s tests/test_response.py::TestFileIter::test___iter__ PASSED [ 59%] 325s tests/test_response.py::TestFileIter::test_close PASSED [ 59%] 325s tests/test_response.py::TestFileIter::test_iteration PASSED [ 59%] 325s tests/test_response.py::TestResponseAdapter::test___call__ PASSED [ 59%] 325s tests/test_response.py::TestResponseAdapter::test___call___with_venusian_args PASSED [ 59%] 325s tests/test_response.py::TestResponseAdapter::test_register_multi PASSED [ 59%] 325s tests/test_response.py::TestResponseAdapter::test_register_single PASSED [ 59%] 325s tests/test_response.py::TestGetResponseFactory::test_get_factory PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_eventsends PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_newrequest_evllist_exc_can_be_caught_by_exceptionview PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_no_view_registered_debug_notfound_false PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_no_view_registered_debug_notfound_true PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_no_view_registered_no_isettings PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_request_factory_raises PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_request_has_response_callbacks PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_match_miss_debug_routematch PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_matches_and_has_factory PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_matches_doesnt_overwrite_subscriber_iface PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_exception_another_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_exception_view_another_route PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_exception_view_specializing PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_route_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_sub_exception_super_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_route_raises_super_exception_sub_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_traverser_default PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_exception_propagating PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_multiple_predicate_mismatches_dont_hide_views PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_predicate_mismatch_doesnt_find_unrelated_views PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_predicate_mismatch_doesnt_hide_views PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_raises_exception_another_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_raises_exception_route_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_raises_exception_view PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_raises_exception_view_route PASSED [ 60%] 325s tests/test_router.py::TestRouter::test_call_view_raises_forbidden PASSED [ 61%] 325s tests/test_router.py::TestRouter::test_call_view_raises_notfound PASSED [ 61%] 325s tests/test_router.py::TestRouter::test_call_view_raises_predicate_mismatch PASSED [ 61%] 325s tests/test_router.py::TestRouter::test_call_view_raises_response_cleared PASSED [ 61%] 325s tests/test_router.py::TestRouter::test_call_view_raises_sub_exception_super_exception_view PASSED [ 61%] 325s tests/test_router.py::TestRouter::test_call_view_raises_super_exception_sub_exception_view PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_view_registered_nonspecific_default_path PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_view_registered_nonspecific_nondefault_path_and_subpath PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_view_registered_specific_fail PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_view_registered_specific_success PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_view_returns_adapted_response PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_view_returns_non_iresponse PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_call_with_request_extensions PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_ctor_registry_has_no_settings PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_custom_execution_policy PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_exception_view_returns_non_iresponse PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_execution_policy_bubbles_exception PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_finish_request_when_view_raises PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_finish_request_when_view_succeeds PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_request_context_manually PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_request_context_with_statement PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_request_factory PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_root_factory_exception_propagating PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_root_factory_raises_exception_view PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_root_factory_raises_forbidden PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_root_factory_raises_notfound PASSED [ 61%] 326s tests/test_router.py::TestRouter::test_root_policy PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_traverser_exception_propagating PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_traverser_raises_exception_view PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_traverser_raises_forbidden_class PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_traverser_raises_forbidden_instance PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_traverser_raises_notfound_class PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_traverser_raises_notfound_instance PASSED [ 62%] 326s tests/test_router.py::TestRouter::test_tween_factories PASSED [ 62%] 326s tests/test_scripting.py::Test_get_root::test_it_norequest PASSED [ 62%] 326s tests/test_scripting.py::Test_get_root::test_it_withrequest PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_closer_invokes_finished_callbacks PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_is_a_context_manager PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_no_valid_apps PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_norequest PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_with_extensions PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_with_request_and_registry PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_with_request_context_already_set PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_withrequest_hasregistry PASSED [ 62%] 326s tests/test_scripting.py::Test_prepare::test_it_withrequest_noregistry PASSED [ 62%] 326s tests/test_scripting.py::Test__make_request::test_it_with_no_registry PASSED [ 62%] 326s tests/test_scripting.py::Test__make_request::test_it_with_registry PASSED [ 62%] 326s tests/test_scripts/test_common.py::TestParseVars::test_parse_vars_bad PASSED [ 62%] 326s tests/test_scripts/test_common.py::TestParseVars::test_parse_vars_good PASSED [ 62%] 326s tests/test_scripts/test_pdistreport.py::TestPDistReportCommand::test_no_dists PASSED [ 62%] 326s tests/test_scripts/test_pdistreport.py::TestPDistReportCommand::test_with_dists PASSED [ 62%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_display_headers PASSED [ 62%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_bad_config_header PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_content_type_header_var PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_good_header_var PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_multiple_header_vars PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_configures_logging PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_get PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_options PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_patch PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_post PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_propfind PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_put PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_not_enough_args PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_path_doesnt_start_with_slash PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_response_has_no_charset PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_two_args PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_w_basic_auth PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_with_query_string PASSED [ 63%] 326s tests/test_scripts/test_prequest.py::Test_main::test_it PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test__get_mapper PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_bad_args PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_bad_format PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_class_view PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_commas PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_newlines PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_spaces PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_good_args PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_good_format PASSED [ 63%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_no_mapper PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_no_routes PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_all_methods_view_only_post PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_only_post_view_all_methods PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_only_post_view_post_and_get PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_with_long_name_one_view_registered PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_as_wsgiapp PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_is_get_view_request_method_not_post PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_no_view PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_request_method_mismatch PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_static_views PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_with_no_slash_prefix PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_multiview_registered PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_no_route_registered PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_no_views_registered PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_one_view_registered PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_one_view_registered_with_factory PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_static_routes_included_in_list PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_view_glob PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_view_request_method_not_post PASSED [ 64%] 326s tests/test_scripts/test_proutes.py::Test_main::test_it PASSED [ 64%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_config_file_finds_open_url PASSED [ 64%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_config_file_finds_watch_files PASSED [ 64%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_guess_server_url PASSED [ 64%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_original_ignore_files PASSED [ 64%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_parse_vars_bad PASSED [ 64%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_parse_vars_good PASSED [ 65%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_reload_call_hupper_with_correct_args PASSED [ 65%] 326s tests/test_scripts/test_pserve.py::TestPServeCommand::test_run_no_args PASSED [ 65%] 326s tests/test_scripts/test_pserve.py::Test_main::test_it PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_custom_section_override PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_default_shell_option PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_errors_with_unknown_shell PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_check_variable_override_order PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_custom_items PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_default_shell PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_ipython PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_pythonstartup PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_setup_from_options PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_setup PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_setup_generator PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_list_shells PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_entry_points PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_ordering PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_override PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::Test_python_shell_runner::test_it PASSED [ 65%] 326s tests/test_scripts/test_pshell.py::Test_main::test_it PASSED [ 65%] 326s tests/test_scripts/test_ptweens.py::TestPTweensCommand::test__get_tweens PASSED [ 65%] 326s tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_implicit_and_explicit_tweens PASSED [ 65%] 326s tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_implicit_tweens_only PASSED [ 65%] 326s tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_no_tweens PASSED [ 65%] 326s tests/test_scripts/test_ptweens.py::Test_main::test_it PASSED [ 65%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_all_match PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_none_match PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_some_match PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_no_match PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_no_match_multiview_registered PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_multiview PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_multiview_no_view_registered PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_no_multiview PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_traversal PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_traversal_multiview PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multi_view_nested PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_permission PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_predicates PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_not_found PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_not_found_url_starts_without_slash PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_function_traversal PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route_with_route_predicates PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_permission PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_predicates PASSED [ 66%] 326s tests/test_scripts/test_pviews.py::Test_main::test_it PASSED [ 66%] 326s tests/test_security.py::TestAllPermissionsList::test_contains_w_object PASSED [ 66%] 326s tests/test_security.py::TestAllPermissionsList::test_contains_w_string PASSED [ 66%] 326s tests/test_security.py::TestAllPermissionsList::test_equality_miss PASSED [ 66%] 326s tests/test_security.py::TestAllPermissionsList::test_equality_w_other_instances_of_class PASSED [ 66%] 326s tests/test_security.py::TestAllPermissionsList::test_equality_w_self PASSED [ 67%] 326s tests/test_security.py::TestAllPermissionsList::test_iterable PASSED [ 67%] 326s tests/test_security.py::TestAllPermissionsList::test_singleton PASSED [ 67%] 326s tests/test_security.py::TestAllowed::test_it PASSED [ 67%] 326s tests/test_security.py::TestDenied::test_it PASSED [ 67%] 326s tests/test_security.py::TestACLAllowed::test_it PASSED [ 67%] 326s tests/test_security.py::TestACLDenied::test_it PASSED [ 67%] 326s tests/test_security.py::TestPrincipalsAllowedByPermission::test_no_authorization_policy PASSED [ 67%] 326s tests/test_security.py::TestPrincipalsAllowedByPermission::test_with_authorization_policy PASSED [ 67%] 326s tests/test_security.py::TestRemember::test_no_security_policy PASSED [ 67%] 326s tests/test_security.py::TestRemember::test_with_missing_arg PASSED [ 67%] 326s tests/test_security.py::TestRemember::test_with_security_policy PASSED [ 67%] 326s tests/test_security.py::TestForget::test_no_security_policy PASSED [ 67%] 326s tests/test_security.py::TestForget::test_with_security_policy PASSED [ 67%] 326s tests/test_security.py::TestViewExecutionPermitted::test_no_permission PASSED [ 67%] 326s tests/test_security.py::TestViewExecutionPermitted::test_no_view_registered PASSED [ 67%] 326s tests/test_security.py::TestViewExecutionPermitted::test_with_permission PASSED [ 67%] 326s tests/test_security.py::TestIdentity::test_identity PASSED [ 67%] 326s tests/test_security.py::TestIdentity::test_identity_no_security_policy PASSED [ 67%] 326s tests/test_security.py::TestAuthenticatedUserId::test_no_authentication_policy PASSED [ 67%] 326s tests/test_security.py::TestAuthenticatedUserId::test_security_policy_trumps_authentication_policy PASSED [ 67%] 326s tests/test_security.py::TestAuthenticatedUserId::test_with_authentication_policy PASSED [ 67%] 326s tests/test_security.py::TestAuthenticatedUserId::test_with_security_policy PASSED [ 67%] 326s tests/test_security.py::TestUnAuthenticatedUserId::test_legacy_authentication_policy PASSED [ 67%] 326s tests/test_security.py::TestUnAuthenticatedUserId::test_no_authentication_policy PASSED [ 67%] 326s tests/test_security.py::TestUnAuthenticatedUserId::test_security_policy_trumps_authentication_policy PASSED [ 67%] 326s tests/test_security.py::TestUnAuthenticatedUserId::test_with_security_policy PASSED [ 68%] 326s tests/test_security.py::TestIsAuthenticated::test_no_security_policy PASSED [ 68%] 326s tests/test_security.py::TestIsAuthenticated::test_with_legacy_security_policy PASSED [ 68%] 326s tests/test_security.py::TestIsAuthenticated::test_with_security_policy PASSED [ 68%] 326s tests/test_security.py::TestEffectivePrincipals::test_legacy_authentication_policy PASSED [ 68%] 326s tests/test_security.py::TestEffectivePrincipals::test_no_authentication_policy PASSED [ 68%] 326s tests/test_security.py::TestEffectivePrincipals::test_security_policy_trumps_authentication_policy PASSED [ 68%] 326s tests/test_security.py::TestEffectivePrincipals::test_with_security_policy PASSED [ 68%] 326s tests/test_security.py::TestHasPermission::test_no_security_policy PASSED [ 68%] 326s tests/test_security.py::TestHasPermission::test_with_no_context_passed PASSED [ 68%] 326s tests/test_security.py::TestHasPermission::test_with_no_context_passed_or_on_request PASSED [ 68%] 326s tests/test_security.py::TestHasPermission::test_with_security_registered PASSED [ 68%] 326s tests/test_security.py::TestLegacySecurityPolicy::test_forget PASSED [ 68%] 326s tests/test_security.py::TestLegacySecurityPolicy::test_forget_with_kwargs PASSED [ 68%] 326s tests/test_security.py::TestLegacySecurityPolicy::test_identity PASSED [ 68%] 326s tests/test_security.py::TestLegacySecurityPolicy::test_permits PASSED [ 68%] 326s tests/test_security.py::TestLegacySecurityPolicy::test_remember PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test__set_cookie_cookieval_too_long PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test__set_cookie_on_exception PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test__set_cookie_on_exception_no_request_exception PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test__set_cookie_options PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test__set_cookie_real_webob_response PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test_changed PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test_cookie_is_set PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test_cookie_max_age_invalid PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test_ctor_no_cookie PASSED [ 68%] 326s tests/test_session.py::TestBaseCookieSession::test_ctor_with_bad_cookie_cannot_deserialize PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_ctor_with_bad_cookie_not_tuple PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_ctor_with_cookie_expired PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_ctor_with_cookie_still_valid PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_flash_allow_duplicate_false PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_flash_allow_duplicate_false_and_msg_not_in_storage PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_flash_allow_duplicate_true_and_msg_not_in_storage PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_flash_default PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_flash_mixed PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_get_csrf_token PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_get_csrf_token_new PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_instance_conforms PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_invalidate PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_new_csrf_token PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_no_set_cookie_with_exception PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_peek_flash_default_queue PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_peek_flash_nodefault_queue PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_pop_flash_default_queue PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_pop_flash_nodefault_queue PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_reissue_invalid PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_reissue_never PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_reissue_not_triggered PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_reissue_str_triggered PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_reissue_triggered PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_set_cookie_with_exception PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_timeout PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_timeout_invalid PASSED [ 69%] 326s tests/test_session.py::TestBaseCookieSession::test_timeout_never PASSED [ 70%] 326s tests/test_session.py::TestBaseCookieSession::test_timeout_str PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test__set_cookie_cookieval_too_long PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test__set_cookie_on_exception PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test__set_cookie_on_exception_no_request_exception PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test__set_cookie_options PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test__set_cookie_real_webob_response PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_changed PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_cookie_is_set PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_cookie_max_age_invalid PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_ctor_no_cookie PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_ctor_with_bad_cookie_cannot_deserialize PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_ctor_with_bad_cookie_not_tuple PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_ctor_with_cookie_expired PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_ctor_with_cookie_still_valid PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_custom_hashalg PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_custom_salt PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_custom_serializer PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_flash_allow_duplicate_false PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_flash_allow_duplicate_false_and_msg_not_in_storage PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_flash_allow_duplicate_true_and_msg_not_in_storage PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_flash_default PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_flash_mixed PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_get_csrf_token PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_get_csrf_token_new PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_hashalg_mismatch PASSED [ 70%] 326s tests/test_session.py::TestSignedCookieSession::test_instance_conforms PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_invalid_data_size PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_invalidate PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_new_csrf_token PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_no_set_cookie_with_exception PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_peek_flash_default_queue PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_peek_flash_nodefault_queue PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_pop_flash_default_queue PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_pop_flash_nodefault_queue PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_reissue_invalid PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_reissue_never PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_reissue_not_triggered PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_reissue_str_triggered PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_reissue_triggered PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_salt_mismatch PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_secret_mismatch PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_set_cookie_with_exception PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_timeout PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_timeout_invalid PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_timeout_never PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_timeout_str PASSED [ 71%] 326s tests/test_session.py::TestSignedCookieSession::test_very_long_key PASSED [ 71%] 326s tests/test_session.py::Test_manage_accessed::test_accessed_set PASSED [ 71%] 326s tests/test_session.py::Test_manage_accessed::test_accessed_without_renew PASSED [ 71%] 326s tests/test_session.py::Test_manage_accessed::test_already_dirty PASSED [ 71%] 326s tests/test_session.py::Test_manage_changed::test_it PASSED [ 71%] 326s tests/test_session.py::TestPickleSerializer::test_dumps PASSED [ 72%] 326s tests/test_session.py::TestPickleSerializer::test_loads PASSED [ 72%] 326s tests/test_session.py::TestPickleSerializer::test_loads_raises_ValueError_on_bad_import PASSED [ 72%] 326s tests/test_session.py::TestPickleSerializer::test_loads_raises_ValueError_on_invalid_data PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_1 PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_False PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_None PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_True PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_false PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_on PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_true PASSED [ 72%] 326s tests/test_settings.py::Test_asbool::test_s_is_yes PASSED [ 72%] 326s tests/test_settings.py::Test_aslist_cronly::test_with_list PASSED [ 72%] 326s tests/test_settings.py::Test_aslist_cronly::test_with_string PASSED [ 72%] 326s tests/test_settings.py::Test_aslist_cronly::test_with_string_crsep PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_integer PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_integer_no_flatten PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_list PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_string PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_string_crsep PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_string_crsep_spacesep PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_string_crsep_spacesep_and_integer PASSED [ 72%] 326s tests/test_settings.py::Test_aslist::test_with_string_crsep_spacesep_no_flatten PASSED [ 72%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_call_adds_slash_path_info_empty PASSED [ 72%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_ctor_defaultargs PASSED [ 72%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_gz_resource_no_content_encoding PASSED [ 72%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_not_found PASSED [ 72%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_oob_dotdotslash PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_oob_dotdotslash_encoded PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_oob_emptyelement PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_oob_os_sep PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_oob_singledot PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_path_info_slash_means_index_html PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_doesnt_exist PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_is_file PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_is_file_with_cache_max_age PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_is_file_with_no_cache_max_age PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_is_file_with_wsgi_file_wrapper PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_isdir PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_no_content_encoding PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_False::test_resource_notmodified PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_call_adds_slash_path_info_empty PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_ctor_defaultargs PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_not_found PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_oob_dotdotslash PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_oob_dotdotslash_encoded PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_oob_emptyelement PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_oob_os_sep PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_oob_singledot PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_path_info_slash_means_index_html PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_resource_doesnt_exist PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_resource_is_file PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_resource_is_file_with_cache_max_age PASSED [ 73%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_resource_is_file_with_no_cache_max_age PASSED [ 74%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_resource_isdir PASSED [ 74%] 326s tests/test_static.py::Test_static_view_use_subpath_True::test_resource_notmodified PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_for_encoded_variant_without_unencoded_variant_no_accept PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_for_encoded_variant_without_unencoded_variant_with_accept PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_for_unencoded_variant_with_only_encoded_variant_bad_accept PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_for_unencoded_variant_with_only_encoded_variant_no_accept PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_for_unencoded_variant_with_only_encoded_variant_with_accept PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_get_possible_files_is_cached PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_get_possible_files_is_not_cached PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_with_accept_gzip PASSED [ 74%] 326s tests/test_static.py::Test_static_view_content_encodings::test_call_without_accept PASSED [ 74%] 326s tests/test_static.py::TestQueryStringConstantCacheBuster::test_change_param PASSED [ 74%] 326s tests/test_static.py::TestQueryStringConstantCacheBuster::test_it PASSED [ 74%] 326s tests/test_static.py::TestQueryStringConstantCacheBuster::test_query_is_already_tuples PASSED [ 74%] 326s tests/test_static.py::TestQueryStringConstantCacheBuster::test_query_is_tuple_of_tuples PASSED [ 74%] 326s tests/test_static.py::TestQueryStringConstantCacheBuster::test_token PASSED [ 74%] 326s tests/test_static.py::TestManifestCacheBuster::test_invalid_manifest PASSED [ 74%] 326s tests/test_static.py::TestManifestCacheBuster::test_invalid_manifest_with_reload PASSED [ 74%] 326s tests/test_static.py::TestManifestCacheBuster::test_it PASSED [ 74%] 326s tests/test_static.py::TestManifestCacheBuster::test_it_with_absspec PASSED [ 74%] 326s tests/test_static.py::TestManifestCacheBuster::test_it_with_relspec PASSED [ 74%] 326s tests/test_static.py::TestManifestCacheBuster::test_reload PASSED [ 74%] 326s tests/test_testing.py::TestDummyRootFactory::test_it PASSED [ 74%] 326s tests/test_testing.py::TestDummySecurityPolicy::test_authenticated_userid PASSED [ 74%] 326s tests/test_testing.py::TestDummySecurityPolicy::test_forget PASSED [ 74%] 326s tests/test_testing.py::TestDummySecurityPolicy::test_identity PASSED [ 75%] 326s tests/test_testing.py::TestDummySecurityPolicy::test_permits PASSED [ 75%] 326s tests/test_testing.py::TestDummySecurityPolicy::test_remember PASSED [ 75%] 326s tests/test_testing.py::TestDummyResource::test__setitem__and__getitem__and__delitem__and__contains__and_get PASSED [ 75%] 326s tests/test_testing.py::TestDummyResource::test_bool PASSED [ 75%] 326s tests/test_testing.py::TestDummyResource::test_clone PASSED [ 75%] 326s tests/test_testing.py::TestDummyResource::test_ctor_with__provides__ PASSED [ 75%] 326s tests/test_testing.py::TestDummyResource::test_extra_params PASSED [ 75%] 326s tests/test_testing.py::TestDummyResource::test_keys_items_values_len PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_accept__init__ PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_add_response_callback PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_cookies_explicit PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_default_accept PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_defaults PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_del_registry PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_environ_explicit PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_headers_explicit PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_kwargs PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_params PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_params_explicit PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_path_explicit PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_post_empty_shadows_params PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_post_explicit PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_registry_is_config_registry_when_setup_is_called_after_ctor PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_response_with_responsefactory PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_response_without_responsefactory PASSED [ 75%] 326s tests/test_testing.py::TestDummyRequest::test_set_registry PASSED [ 75%] 326s tests/test_testing.py::TestDummyTemplateRenderer::test_assert_ PASSED [ 76%] 326s tests/test_testing.py::TestDummyTemplateRenderer::test_getattr PASSED [ 76%] 326s tests/test_testing.py::TestDummyTemplateRenderer::test_implementation PASSED [ 76%] 326s tests/test_testing.py::TestDummyTemplateRenderer::test_nondefault_string_response PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_defaults PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_hook_zca_false PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_package PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_registry PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_request PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_settings_passed_explicit_registry PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_settings_passed_implicit_registry PASSED [ 76%] 326s tests/test_testing.py::Test_setUp::test_it_with_unpatched_registry PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_defaults PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_hook_zca_false PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_package PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_registry PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_request PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_settings_passed_explicit_registry PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_settings_passed_implicit_registry PASSED [ 76%] 326s tests/test_testing.py::Test_cleanUp::test_it_with_unpatched_registry PASSED [ 76%] 326s tests/test_testing.py::Test_tearDown::test_defaults PASSED [ 76%] 326s tests/test_testing.py::Test_tearDown::test_registry_cannot_be_inited PASSED [ 76%] 326s tests/test_testing.py::Test_tearDown::test_unhook_zc_false PASSED [ 76%] 326s tests/test_testing.py::TestDummyRendererFactory::test_add_no_colon PASSED [ 76%] 326s tests/test_testing.py::TestDummyRendererFactory::test_add_with_colon PASSED [ 76%] 326s tests/test_testing.py::TestDummyRendererFactory::test_call PASSED [ 76%] 326s tests/test_testing.py::TestDummyRendererFactory::test_call2 PASSED [ 77%] 326s tests/test_testing.py::TestDummyRendererFactory::test_call3 PASSED [ 77%] 326s tests/test_testing.py::TestDummyRendererFactory::test_call_miss PASSED [ 77%] 326s tests/test_testing.py::TestMockTemplate::test_call PASSED [ 77%] 326s tests/test_testing.py::TestMockTemplate::test_getattr PASSED [ 77%] 326s tests/test_testing.py::TestMockTemplate::test_getitem PASSED [ 77%] 326s tests/test_testing.py::Test_skip_on::test_ok_platform PASSED [ 77%] 326s tests/test_testing.py::Test_skip_on::test_wrong_platform PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_changed PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_flash_default PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_flash_mixed PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_get_csrf_token PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_get_csrf_token_generates_token PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_instance_conforms PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_invalidate PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_new_csrf_token PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_peek_flash_default_queue PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_peek_flash_nodefault_queue PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_pop_flash_default_queue PASSED [ 77%] 326s tests/test_testing.py::TestDummySession::test_pop_flash_nodefault_queue PASSED [ 77%] 326s tests/test_testing.py::Test_testConfig::test_ok_calls PASSED [ 77%] 326s tests/test_testing.py::Test_testConfig::test_ok_get_config PASSED [ 77%] 326s tests/test_testing.py::Test_testConfig::test_teardown_called_on_exception PASSED [ 77%] 326s tests/test_threadlocal.py::TestThreadLocalManager::test_default PASSED [ 77%] 326s tests/test_threadlocal.py::TestThreadLocalManager::test_init PASSED [ 77%] 326s tests/test_threadlocal.py::TestThreadLocalManager::test_push_and_pop PASSED [ 77%] 326s tests/test_threadlocal.py::TestThreadLocalManager::test_set_get_and_clear PASSED [ 78%] 326s tests/test_threadlocal.py::TestGetCurrentRequest::test_it PASSED [ 78%] 326s tests/test_threadlocal.py::TestGetCurrentRequest::test_it_None PASSED [ 78%] 326s tests/test_threadlocal.py::GetCurrentRegistryTests::test_it PASSED [ 78%] 326s tests/test_threadlocal.py::GetCurrentRegistryWithoutTestingRegistry::test_it PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathTests::test_element_urllquoted PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathTests::test_unicode_highorder_chars PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathTests::test_unicode_undecodeable_to_ascii PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathTests::test_utf16 PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathTests::test_utf8 PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_empty_elements PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_highorder PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_highorder_undecodeable PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_onedot PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_path_startswith_endswith PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_same_value_returned_if_cached PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_segments_are_unicode PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_twodots PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_twodots_at_start PASSED [ 78%] 326s tests/test_traversal.py::TraversalPathInfoTests::test_unicode_simple PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_pathel_with_no_getitem PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_empty_pathinfo PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_explicit_viewname PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_pathinfo_KeyError PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_pathinfo_highorder PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_vh_root PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_vh_root2 PASSED [ 78%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_vh_root3 PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_vh_root4 PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_vh_root_highorder PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_with_vh_root_path_root PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_withconn_getitem_emptypath_nosubpath PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_withconn_getitem_withpath_nosubpath PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_call_withconn_getitem_withpath_withsubpath PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_class_conforms_to_ITraverser PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_instance_conforms_to_ITraverser PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_path_info_raises_unicodedecodeerror PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_and_traverse_and_vroot PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_and_traverse_empty PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_and_traverse_string PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_and_traverse_tuple PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_nothingfancy PASSED [ 79%] 326s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_with_subpath_string PASSED [ 79%] 327s tests/test_traversal.py::ResourceTreeTraverserTests::test_withroute_with_subpath_tuple PASSED [ 79%] 327s tests/test_traversal.py::FindInterfaceTests::test_it_class PASSED [ 79%] 327s tests/test_traversal.py::FindInterfaceTests::test_it_interface PASSED [ 79%] 327s tests/test_traversal.py::FindRootTests::test_it PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_absolute_string_found PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_absolute_string_notfound PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_absolute_tuple_found PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_absolute_tuple_notfound PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_absolute_unicode_found PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_generator PASSED [ 79%] 327s tests/test_traversal.py::FindResourceTests::test_list PASSED [ 80%] 327s tests/test_traversal.py::FindResourceTests::test_relative_string_found PASSED [ 80%] 327s tests/test_traversal.py::FindResourceTests::test_relative_string_notfound PASSED [ 80%] 327s tests/test_traversal.py::FindResourceTests::test_relative_tuple_found PASSED [ 80%] 327s tests/test_traversal.py::FindResourceTests::test_relative_tuple_notfound PASSED [ 80%] 327s tests/test_traversal.py::FindResourceTests::test_self_string_found PASSED [ 80%] 327s tests/test_traversal.py::FindResourceTests::test_self_tuple_found PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_it PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_nonroot_default PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_path_with_None_itermediate_names PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_root_default PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_root_default_emptystring PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_root_object_nonnull_name_direct PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTests::test_root_object_nonnull_name_indirect PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTupleTests::test_it PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTupleTests::test_nonroot_default PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTupleTests::test_path_with_None_itermediate_names PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTupleTests::test_root_default PASSED [ 80%] 327s tests/test_traversal.py::ResourcePathTupleTests::test_root_default_emptystring_name PASSED [ 80%] 327s tests/test_traversal.py::QuotePathSegmentTests::test_int PASSED [ 80%] 327s tests/test_traversal.py::QuotePathSegmentTests::test_other PASSED [ 80%] 327s tests/test_traversal.py::QuotePathSegmentTests::test_string PASSED [ 80%] 327s tests/test_traversal.py::QuotePathSegmentTests::test_unicode PASSED [ 80%] 327s tests/test_traversal.py::ResourceURLTests::test_IResourceURL_attributes_no_vroot PASSED [ 80%] 327s tests/test_traversal.py::ResourceURLTests::test_IResourceURL_attributes_vroot_ends_with_slash PASSED [ 80%] 327s tests/test_traversal.py::ResourceURLTests::test_IResourceURL_attributes_with_vroot PASSED [ 80%] 327s tests/test_traversal.py::ResourceURLTests::test_instance_conforms_to_IResourceURL PASSED [ 81%] 327s tests/test_traversal.py::TestVirtualRoot::test_default PASSED [ 81%] 327s tests/test_traversal.py::TestVirtualRoot::test_default_no_registry_on_request PASSED [ 81%] 327s tests/test_traversal.py::TestVirtualRoot::test_virtual_root_no_virtual_root_path PASSED [ 81%] 327s tests/test_traversal.py::TestVirtualRoot::test_virtual_root_no_virtual_root_path_with_root_on_request PASSED [ 81%] 327s tests/test_traversal.py::TestVirtualRoot::test_virtual_root_with_virtual_root_path PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_absolute_string_found PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_absolute_tuple_found PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_default_traverser PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_empty_sequence PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_generator PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_list PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_relative_string_found PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_relative_tuple_found PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_request_has_registry PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_requestfactory_overridden PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_self_string_found PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_self_tuple_found PASSED [ 81%] 327s tests/test_traversal.py::TraverseTests::test_self_unicode_found PASSED [ 81%] 327s tests/test_traversal.py::TestDefaultRootFactory::test_it PASSED [ 81%] 327s tests/test_traversal.py::Test__join_path_tuple::test_empty_tuple PASSED [ 81%] 327s tests/test_traversal.py::Test__join_path_tuple::test_nonempty_tuple PASSED [ 81%] 327s tests/test_traversal.py::Test__join_path_tuple::test_segments_with_unsafes PASSED [ 81%] 327s tests/test_tweens.py::Test_excview_tween_factory::test_it_catches_notfound PASSED [ 81%] 327s tests/test_tweens.py::Test_excview_tween_factory::test_it_catches_with_predicate PASSED [ 81%] 327s tests/test_tweens.py::Test_excview_tween_factory::test_it_passthrough_no_exception PASSED [ 81%] 327s tests/test_tweens.py::Test_excview_tween_factory::test_it_reraises_on_mismatch PASSED [ 81%] 327s tests/test_tweens.py::Test_excview_tween_factory::test_it_reraises_on_no_match PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_path PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_url_current_request_has_no_route PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_url_with_elements_query_and_anchor PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_url_with_query_override PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_url_with_request_query PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_url_with_request_query_duplicate_entries PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_current_route_url_with_route_name PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_host_and_port PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_host_no_port PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_host_port_and_scheme PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_host_with_port PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_port PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_scheme_http_special_case PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_scheme_http_special_case_avoid PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_scheme_https_special_case PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_replace_scheme_https_special_case_avoid PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_no_http_host PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_with_custom_script_name PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_with_http_host_default_port_http PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_with_http_host_default_port_https PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_with_http_host_no_colon PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_with_http_host_nondefault_port_http PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_partial_application_url_with_http_host_nondefault_port_https PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_path PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_path_kwarg PASSED [ 82%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_anchor_is_None PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_anchor_is_after_elements_when_no_qs PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_anchor_is_after_qs_when_qs_is_present PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_anchor_is_after_root_when_no_elements PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_anchor_is_encoded_utf8_if_unicode PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_anchor_is_urlencoded_safe PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_at_sign_in_element_names PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_element_names_url_quoted PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_extra_args PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_no_IResourceURL_registered PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_no_registry_on_request PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_root_default PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_unicode_in_element_names PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_app_url PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_host PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_local_url PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_port PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_query_None PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_query_dict PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_query_empty PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_query_seq PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_query_str PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_and_app_url PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_and_elements PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_and_remainder_name PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_and_route_kwargs PASSED [ 83%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_and_scheme_host_port_etc PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_no_remainder_on_adapter PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_route_name_remainder_on_adapter PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_resource_url_with_scheme PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_path_with_elements PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_path_with_script_name PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_generate_doesnt_receive_query_or_anchor PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_generation_error PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_integration_with_real_request PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_no_elements PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_anchor_None PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_anchor_app_url_elements_and_query PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_anchor_binary PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_anchor_unicode PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_app_url PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_elements PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_elements_path_endswith_slash PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_empty_query PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_host PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_port PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_pregenerator PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_query PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_query_None PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_query_str PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_route_url_with_scheme PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_path PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_path_abs PASSED [ 84%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_path_abspath PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_path_found_rel PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_abs PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_abspath PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_abspath_integration_with_staticurlinfo PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_found_abs_no_registry_on_request PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_found_rel PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_noscheme_uses_scheme_from_request PASSED [ 85%] 327s tests/test_url.py::TestURLMethodsMixin::test_static_url_staticurlinfo_notfound PASSED [ 85%] 327s tests/test_url.py::Test_route_url::test_it PASSED [ 85%] 327s tests/test_url.py::Test_route_path::test_it PASSED [ 85%] 327s tests/test_url.py::Test_resource_url::test_it PASSED [ 85%] 327s tests/test_url.py::Test_static_url::test_it_abs PASSED [ 85%] 327s tests/test_url.py::Test_static_url::test_it_absspec PASSED [ 85%] 327s tests/test_url.py::Test_static_url::test_it_rel PASSED [ 85%] 327s tests/test_url.py::Test_static_path::test_it_abs PASSED [ 85%] 327s tests/test_url.py::Test_static_path::test_it_absspec PASSED [ 85%] 327s tests/test_url.py::Test_static_path::test_it_rel PASSED [ 85%] 327s tests/test_url.py::Test_current_route_url::test_it PASSED [ 85%] 327s tests/test_url.py::Test_current_route_path::test_it PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_external_url_with_route_prefix PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_generate_external_url PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_generate_external_url_route_path PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_generate_external_url_with_explicit_app_url PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_generate_external_url_with_explicit_scheme PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_generate_external_url_with_pregenerator PASSED [ 85%] 327s tests/test_url.py::Test_external_static_url_integration::test_generate_external_url_without_scheme PASSED [ 86%] 327s tests/test_url.py::Test_with_route_prefix::test_error_reset_prefix PASSED [ 86%] 327s tests/test_url.py::Test_with_route_prefix::test_old_route_is_preserved PASSED [ 86%] 327s tests/test_url.py::Test_with_route_prefix::test_route_does_not_have_prefix PASSED [ 86%] 327s tests/test_url.py::Test_with_route_prefix::test_route_has_prefix PASSED [ 86%] 327s tests/test_url.py::Test_with_route_prefix::test_route_prefix_empty PASSED [ 86%] 327s tests/test_url.py::Test_with_route_prefix::test_route_prefix_none PASSED [ 86%] 327s tests/test_urldispatch.py::TestRoute::test_ctor PASSED [ 86%] 327s tests/test_urldispatch.py::TestRoute::test_ctor_defaults PASSED [ 86%] 327s tests/test_urldispatch.py::TestRoute::test_generate PASSED [ 86%] 327s tests/test_urldispatch.py::TestRoute::test_match PASSED [ 86%] 327s tests/test_urldispatch.py::TestRoute::test_provides_IRoute PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__custom_predicate_gets_info PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__no_path_info PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__pathinfo_KeyError PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__pathinfo_cant_be_decoded PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__root_route_matches PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__root_route_matches2 PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__root_route_when_path_info_empty PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__root_route_when_path_info_notempty PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__route_fails_to_match_with_predicates PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__route_matches PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test___call__route_matches_with_predicates PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_cc_bug PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_connect_name_exists_removes_old PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_connect_static PASSED [ 86%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_connect_static_overridden PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_generate PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_get_route_matches PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_get_route_misses PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_get_routes PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_has_routes PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_no_route_matches PASSED [ 87%] 327s tests/test_urldispatch.py::RoutesMapperTests::test_provides_IRoutesMapper PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_custom_regex PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_custom_regex_with_colons PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_custom_regex_with_embedded_squigglies PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_custom_regex_with_embedded_squigglies2 PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_custom_regex_with_embedded_squigglies3 PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_docs_sample_generate PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_generate_with_mixedtype_values PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_generate_with_string_remainder_and_nonstring_replacement PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_generate_with_string_remainder_and_unicode_replacement PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_highorder_pattern_utf8 PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_mixed_newstyle_oldstyle_pattern_defaults_to_newstyle PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_no_beginning_slash PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_no_star PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_pattern_generate_with_high_order_dynamic PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_pattern_with_high_order_literal PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_with_bracket_star PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRoute::test_with_star PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRouteFunctional::test_generator_functional_newstyle PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRouteFunctional::test_generator_functional_notdynamic PASSED [ 87%] 327s tests/test_urldispatch.py::TestCompileRouteFunctional::test_generator_functional_oldstyle PASSED [ 88%] 327s tests/test_urldispatch.py::TestCompileRouteFunctional::test_matcher_functional_newstyle PASSED [ 88%] 327s tests/test_urldispatch.py::TestCompileRouteFunctional::test_matcher_functional_notdynamic PASSED [ 88%] 327s tests/test_urldispatch.py::TestCompileRouteFunctional::test_matcher_functional_oldstyle PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_add_property PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_apply_multiple_times PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_apply_properties_with_dict PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_apply_properties_with_iterable PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_callable PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_callable_with_name PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_callable_with_name_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_callable_with_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_make_property PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_make_property_unicode PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_override_property PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_override_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_property_with_name PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_property_with_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_property_without_name FAILED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_reset_property PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyHelper::test_reset_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_callable PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_callable_with_name PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_callable_with_name_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_callable_with_reify PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_new_class_keeps_parent_module_name PASSED [ 88%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_override_property PASSED [ 89%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_override_reify PASSED [ 89%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_property_with_name PASSED [ 89%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_property_with_reify PASSED [ 89%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_property_without_name FAILED [ 89%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_reset_property PASSED [ 89%] 327s tests/test_util.py::Test_InstancePropertyMixin::test_reset_reify PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_add_duplicate_items PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_add_item PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_add_multiple_items PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_ctor PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_empty PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_last_updated PASSED [ 89%] 327s tests/test_util.py::Test_WeakOrderedSet::test_weakref_removal PASSED [ 89%] 327s tests/test_util.py::Test_strings_differ::test_it PASSED [ 89%] 327s tests/test_util.py::Test_strings_differ::test_it_bytes PASSED [ 89%] 327s tests/test_util.py::Test_strings_differ::test_it_native_str PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_None PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_bool PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_class PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_dict PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_float PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_function PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_instance PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_int PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_list PASSED [ 89%] 327s tests/test_util.py::Test_object_description::test_method PASSED [ 90%] 327s tests/test_util.py::Test_object_description::test_module PASSED [ 90%] 327s tests/test_util.py::Test_object_description::test_nomodule PASSED [ 90%] 327s tests/test_util.py::Test_object_description::test_set PASSED [ 90%] 327s tests/test_util.py::Test_object_description::test_shortened_repr PASSED [ 90%] 327s tests/test_util.py::Test_object_description::test_string PASSED [ 90%] 327s tests/test_util.py::Test_object_description::test_tuple PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_add PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_remove PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_1 PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_2 PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_3 PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_4 PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_5 PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_conflict_direct PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_conflict_indirect PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_missing_after_partial PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_missing_after_partial_with_fallback PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_missing_before_and_after_partials PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_missing_before_partial PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_missing_before_partial_with_fallback PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_with_missing_fallbacks PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_with_multiple_matching_fallbacks PASSED [ 90%] 327s tests/test_util.py::TestTopologicalSorter::test_sorted_ordering_with_partial_fallbacks PASSED [ 90%] 327s tests/test_util.py::TestSentinel::test_repr PASSED [ 90%] 327s tests/test_util.py::TestCallableName::test_invalid_ascii PASSED [ 90%] 327s tests/test_util.py::TestCallableName::test_valid_ascii_bytes PASSED [ 90%] 327s tests/test_util.py::TestCallableName::test_valid_ascii_string PASSED [ 91%] 327s tests/test_util.py::Test_hide_attrs::test_deletes_attrs PASSED [ 91%] 327s tests/test_util.py::Test_hide_attrs::test_does_not_delete_attr_if_no_attr_to_delete PASSED [ 91%] 327s tests/test_util.py::Test_hide_attrs::test_restores_attrs PASSED [ 91%] 327s tests/test_util.py::Test_hide_attrs::test_restores_attrs_on_exception PASSED [ 91%] 327s tests/test_util.py::Test_hide_attrs::test_restores_attrs_to_none PASSED [ 91%] 327s tests/test_util.py::Test_is_same_domain::test_it PASSED [ 91%] 327s tests/test_util.py::Test_is_same_domain::test_with_port PASSED [ 91%] 327s tests/test_util.py::Test_is_same_domain::test_with_wildcard PASSED [ 91%] 327s tests/test_util.py::Test_make_contextmanager::test_with_None PASSED [ 91%] 327s tests/test_util.py::Test_make_contextmanager::test_with_generator PASSED [ 91%] 327s tests/test_util.py::Test_make_contextmanager::test_with_multiple_yield_generator PASSED [ 91%] 327s tests/test_util.py::Test_make_contextmanager::test_with_regular_fn PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_annotations PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_defaultargs_firstname_not_request PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_defaultargs_firstname_request PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_noargs PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_onearg_named_request PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_onearg_named_somethingelse PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_toomanyargs PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_with_attr_false PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_function_with_attr_true PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_instance_defaultargs_firstname_not_request PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_instance_defaultargs_firstname_request PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_instance_defaultargs_onearg_named_request PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_instance_defaultargs_onearg_named_somethingelse PASSED [ 91%] 327s tests/test_util.py::Test_takes_one_arg::test_instance_nocall PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_instance_toomanyargs PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_method_onearg_named_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_newstyle_class_init_defaultargs_firstname_not_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_newstyle_class_init_defaultargs_firstname_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_newstyle_class_init_firstname_request_with_secondname PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_newstyle_class_init_noargs PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_newstyle_class_init_onearg_named_somethingelse PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_defaultargs_firstname_not_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_defaultargs_firstname_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_noargs PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_onearg_named_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_onearg_named_somethingelse PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_toomanyargs PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_oldstyle_class_no_init PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_init_onearg_named_request PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_init_toomanyargs PASSED [ 92%] 327s tests/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_no_init PASSED [ 92%] 327s tests/test_util.py::TestSimpleSerializer::test_dumps PASSED [ 92%] 327s tests/test_util.py::TestSimpleSerializer::test_loads PASSED [ 92%] 327s tests/test_util.py::TestUnboundMethods::test_bound_method PASSED [ 92%] 327s tests/test_util.py::TestUnboundMethods::test_normal_func_unbound PASSED [ 92%] 327s tests/test_util.py::TestUnboundMethods::test_unbound_method PASSED [ 92%] 327s tests/test_util.py::TestReraise::test_it PASSED [ 92%] 327s tests/test_view.py::Test_notfound_view_config::test_call_with_venusian_args PASSED [ 92%] 327s tests/test_view.py::Test_notfound_view_config::test_ctor PASSED [ 92%] 327s tests/test_view.py::Test_notfound_view_config::test_it_class PASSED [ 93%] 327s tests/test_view.py::Test_notfound_view_config::test_it_function PASSED [ 93%] 327s tests/test_view.py::Test_forbidden_view_config::test_call_with_venusian_args PASSED [ 93%] 327s tests/test_view.py::Test_forbidden_view_config::test_ctor PASSED [ 93%] 327s tests/test_view.py::Test_forbidden_view_config::test_it_class PASSED [ 93%] 327s tests/test_view.py::Test_forbidden_view_config::test_it_function PASSED [ 93%] 327s tests/test_view.py::Test_exception_view_config::test_call_with_venusian_args PASSED [ 93%] 327s tests/test_view.py::Test_exception_view_config::test_ctor PASSED [ 93%] 327s tests/test_view.py::Test_exception_view_config::test_ctor_positional_exception PASSED [ 93%] 327s tests/test_view.py::Test_exception_view_config::test_ctor_positional_extras PASSED [ 93%] 327s tests/test_view.py::Test_exception_view_config::test_it_class PASSED [ 93%] 327s tests/test_view.py::Test_exception_view_config::test_it_function PASSED [ 93%] 327s tests/test_view.py::RenderViewToResponseTests::test_call_no_registry_on_request PASSED [ 93%] 327s tests/test_view.py::RenderViewToResponseTests::test_call_no_view_registered PASSED [ 93%] 327s tests/test_view.py::RenderViewToResponseTests::test_call_view_registered_insecure_no_call_permissive PASSED [ 93%] 327s tests/test_view.py::RenderViewToResponseTests::test_call_view_registered_insecure_with_call_permissive PASSED [ 93%] 327s tests/test_view.py::RenderViewToResponseTests::test_call_view_registered_secure PASSED [ 93%] 327s tests/test_view.py::RenderViewToResponseTests::test_call_view_with_request_iface_on_request PASSED [ 93%] 327s tests/test_view.py::RenderViewToIterableTests::test_call_no_view_registered PASSED [ 93%] 327s tests/test_view.py::RenderViewToIterableTests::test_call_request_has_no_registry PASSED [ 93%] 327s tests/test_view.py::RenderViewToIterableTests::test_call_view_registered_insecure_no_call_permissive PASSED [ 93%] 327s tests/test_view.py::RenderViewToIterableTests::test_call_view_registered_insecure_with_call_permissive PASSED [ 93%] 327s tests/test_view.py::RenderViewToIterableTests::test_call_view_registered_secure PASSED [ 93%] 327s tests/test_view.py::RenderViewToIterableTests::test_verify_output_bytestring PASSED [ 93%] 327s tests/test_view.py::RenderViewTests::test_call_no_view_registered PASSED [ 93%] 327s tests/test_view.py::RenderViewTests::test_call_view_registered_insecure_no_call_permissive PASSED [ 93%] 327s tests/test_view.py::RenderViewTests::test_call_view_registered_insecure_with_call_permissive PASSED [ 93%] 327s tests/test_view.py::RenderViewTests::test_call_view_registered_secure PASSED [ 94%] 327s tests/test_view.py::TestViewConfigDecorator::test_call_as_method PASSED [ 94%] 327s tests/test_view.py::TestViewConfigDecorator::test_call_class PASSED [ 94%] 327s tests/test_view.py::TestViewConfigDecorator::test_call_class_attr_already_set PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_function PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_with_renderer_IRendererInfo PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_with_renderer_dict PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_with_renderer_string PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_withcategory PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_withdepth PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_call_withoutcategory PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_context_trumps_for PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_decorator_tuple PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_defaults PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_for_trumps_context_None PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_info PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_info_depth PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_nondefaults PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_create_with_other_predicates PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_stacking PASSED [ 94%] 328s tests/test_view.py::TestViewConfigDecorator::test_with_custom_predicates PASSED [ 94%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_context_is_not_exception PASSED [ 94%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_mapper_path_already_slash_ending PASSED [ 94%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_matches PASSED [ 94%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_matches_with_script_name PASSED [ 94%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_no_mapper PASSED [ 94%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_no_path PASSED [ 95%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_no_route_matches PASSED [ 95%] 328s tests/test_view.py::Test_append_slash_notfound_view::test_with_query_string PASSED [ 95%] 328s tests/test_view.py::TestAppendSlashNotFoundViewFactory::test_custom_notfound_view PASSED [ 95%] 328s tests/test_view.py::Test_default_exceptionresponse_view::test_is_exception PASSED [ 95%] 328s tests/test_view.py::Test_default_exceptionresponse_view::test_is_not_exception_context_is_false_still_chose PASSED [ 95%] 328s tests/test_view.py::Test_default_exceptionresponse_view::test_is_not_exception_no_request_exception PASSED [ 95%] 328s tests/test_view.py::Test_default_exceptionresponse_view::test_is_not_exception_request_exception PASSED [ 95%] 328s tests/test_view.py::Test_view_defaults::test_it PASSED [ 95%] 328s tests/test_view.py::Test_view_defaults::test_it_inheritance_not_overridden PASSED [ 95%] 328s tests/test_view.py::Test_view_defaults::test_it_inheritance_overriden PASSED [ 95%] 328s tests/test_view.py::Test_view_defaults::test_it_inheritance_overriden_empty PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_allows_secured_view PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_hides_attrs PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_raises_if_no_registry PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_raises_if_not_found PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_raises_predicate_mismatch PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_rejects_secured_view PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_reraises_after_predicate_mismatch PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_reraises_if_not_found PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_supports_alternate_exc_info PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_supports_alternate_requests PASSED [ 95%] 328s tests/test_view.py::TestViewMethodsMixin::test_it_supports_threadlocal_registry PASSED [ 95%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_function_context_and_request PASSED [ 95%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_function_requestonly PASSED [ 95%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_instance_context_and_request PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_instance_context_and_request_attr_and_renderer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_instance_requestonly PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_instance_requestonly_attr_and_renderer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_newstyle_class_context_and_request PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_newstyle_class_context_and_request_attr_and_renderer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_newstyle_class_requestonly PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_newstyle_class_requestonly_attr_and_renderer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_oldstyle_class_context_and_request PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_oldstyle_class_requestonly PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_oldstyle_cls_context_request_attr_and_renderer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_as_oldstyle_cls_requestonly_attr_and_renderer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_attr_wrapped_view_branching_default_phash PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_attr_wrapped_view_branching_nondefault_phash PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_class_with_attr PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_class_without_attr PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_allow_no_origin PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_disabled_via_callback PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_disables_origin_check PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_enabled_by_default PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_enabled_via_callback PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_failed_on_explicit_exception_view PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_fails_on_bad_PUT_header PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_fails_on_bad_origin PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_fails_on_bad_referrer PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_fails_with_bad_POST_header PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_fails_with_bad_POST_token PASSED [ 96%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_https_domain PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_ignores_GET PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_passed_on_explicit_exception_view PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_passes_with_good_POST_header PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_passes_with_good_POST_token PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_skipped_by_default_on_exception_view PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_uses_custom_csrf_header PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_uses_custom_csrf_token PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_uses_custom_methods PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_csrf_view_uses_view_option_override PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_debug_auth_permission_authpol_denied PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_debug_auth_permission_authpol_denied2 PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_debug_auth_permission_authpol_overridden PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_debug_auth_permission_authpol_permitted PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_debug_auth_permission_authpol_permitted_excview PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_debug_auth_permission_authpol_permitted_no_request PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_function_returns_non_adaptable PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_function_returns_non_adaptable_dict PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_function_returns_true_Response_no_renderer PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_function_returns_true_Response_with_renderer PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_prevent_http_cache_in_settings PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_bad_tuple PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_integer PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_prevent_auto_set PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_timedelta PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_tuple PASSED [ 97%] 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_tuple_seconds_None PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_instance_returns_non_adaptable PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_predicate_mismatch_exception_has_text_in_detail PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_predicate_mismatch_view_has_name PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_predicate_mismatch_view_has_no_name PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_requestonly_default_method_returns_non_adaptable PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_requestonly_function PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_requestonly_function_with_renderer PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_requestonly_function_with_renderer_request_has_view PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_requestonly_function_with_renderer_request_override PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_requestonly_nondefault_method_returns_non_adaptable PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_secured_view_authn_policy_no_security_policy PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_secured_view_failed_on_explicit_exception_view PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_secured_view_passed_on_explicit_exception_view PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_secured_view_raises_forbidden_no_name PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_secured_view_raises_forbidden_with_name PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_secured_view_skipped_by_default_on_exception_view PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_debug_authorization_no_permission PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_debug_authorization_no_security_policy PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_predicates_all PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_predicates_checker PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_predicates_notall PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_view_mapper_config_specified PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_view_mapper_default_mapper_specified PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_view_mapper_view_specified PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_wrapper_viewname PASSED [ 98%] 328s tests/test_viewderivers.py::TestDeriveView::test_with_wrapper_viewname_notfound PASSED [ 99%] 328s tests/test_viewderivers.py::TestDerivationOrder::test_right_order_implicit PASSED [ 99%] 328s tests/test_viewderivers.py::TestDerivationOrder::test_right_order_under_rendered_view PASSED [ 99%] 328s tests/test_viewderivers.py::TestDerivationOrder::test_right_order_under_rendered_view_others PASSED [ 99%] 328s tests/test_viewderivers.py::TestDerivationOrder::test_right_order_user_sorted PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_deriver_enforces_ingress_is_first PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_deriver_enforces_mapped_view_is_last PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_deriver_enforces_view_is_last PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_deriver_reserves_ingress PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_deriver_without_name PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_multi_derivers_ordered PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_add_single_deriver PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_override_deriver PASSED [ 99%] 328s tests/test_viewderivers.py::TestAddDeriver::test_override_mapped_view PASSED [ 99%] 328s tests/test_viewderivers.py::TestDeriverIntegration::test_unexpected_view_options PASSED [ 99%] 328s tests/test_viewderivers.py::TestDeriverIntegration::test_view_options PASSED [ 99%] 328s tests/test_wsgi.py::WSGIAppTests::test_decorator PASSED [ 99%] 328s tests/test_wsgi.py::WSGIAppTests::test_decorator_object_instance PASSED [ 99%] 328s tests/test_wsgi.py::WSGIAppTests::test_wsgiapp_none PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_no_subpath_with_view_name PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_on_callable_object_instance PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_traversed_empty_no_view_name PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_traversed_empty_no_view_name_no_script_name PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_traversed_empty_with_view_name PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_with_subpath_and_view_name PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_decorator_with_subpath_no_view_name PASSED [ 99%] 328s tests/test_wsgi.py::WSGIApp2Tests::test_wsgiapp2_none PASSED [100%] 328s 328s =================================== FAILURES =================================== 328s ____________ Test_InstancePropertyHelper.test_property_without_name ____________ 328s 328s self = 328s 328s def test_property_without_name(self): 328s def worker(obj): # pragma: no cover 328s pass 328s 328s foo = Dummy() 328s helper = self._getTargetClass() 328s > self.assertRaises( 328s ValueError, helper.set_property, foo, property(worker) 328s ) 328s E AssertionError: ValueError not raised by set_property 328s 328s tests/test_util.py:74: AssertionError 328s ____________ Test_InstancePropertyMixin.test_property_without_name _____________ 328s 328s self = 328s 328s def test_property_without_name(self): 328s def worker(obj): # pragma: no cover 328s pass 328s 328s foo = self._makeOne() 328s > self.assertRaises(ValueError, foo.set_property, property(worker)) 328s E AssertionError: ValueError not raised by set_property 328s 328s tests/test_util.py:278: AssertionError 328s =============================== warnings summary =============================== 328s ../../../usr/lib/python3/dist-packages/pyramid/asset.py:2 328s /usr/lib/python3/dist-packages/pyramid/asset.py:2: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 328s import pkg_resources 328s 328s ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:3154 328s ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:3154 328s ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:3154 328s ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:3154 328s ../../../usr/lib/python3/dist-packages/pkg_resources/__init__.py:3154 328s /usr/lib/python3/dist-packages/pkg_resources/__init__.py:3154: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('zope')`. 328s Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages 328s declare_namespace(pkg) 328s 328s tests/test_integration.py:19 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_integration.py:19: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s fiveyrsfuture = datetime.datetime.utcnow() + datetime.timedelta(5 * 365) 328s 328s tests/test_integration.py:21 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_integration.py:21: DeprecationWarning: 'locale.getdefaultlocale' is deprecated and slated for removal in Python 3.15. Use setlocale(), getencoding() and getlocale() instead. 328s defaultlocale = locale.getdefaultlocale()[1] 328s 328s tests/test_static.py:8 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_static.py:8: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s fiveyrsfuture = datetime.datetime.utcnow() + datetime.timedelta(5 * 365) 328s 328s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_max_age 328s tests/test_authentication.py::TestAuthTktCookieHelper::test_remember_str_max_age 328s /usr/lib/python3/dist-packages/webob/cookies.py:238: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s v = datetime.utcnow() + v 328s 328s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy 328s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authorization_policy_only 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_only 328s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission 328s /usr/lib/python3/dist-packages/pyramid/config/__init__.py:405: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.set_authorization_policy(authorization_policy) 328s 328s tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname 328s tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname 328s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission 328s /usr/lib/python3/dist-packages/pyramid/config/__init__.py:408: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.set_authentication_policy(authentication_policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:37: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy_autocommit 328s /usr/lib/python3.13/unittest/case.py:238: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s callable_obj(*args, **kwargs) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:59: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy_autocommit 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:80: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_security_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:31: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:92: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy_autocommit 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:100: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:115: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy_autocommit 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_security.py:131: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_http_cache 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_config/test_views.py:318: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s when = datetime.datetime.utcnow() + datetime.timedelta(days=1) 328s 328s tests/test_config/test_views.py: 1 warning 328s tests/test_integration.py: 1 warning 328s tests/test_static.py: 20 warnings 328s tests/test_viewderivers.py: 3 warnings 328s /usr/lib/python3/dist-packages/webob/response.py:1206: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s self.expires = datetime.utcnow() + timedelta(seconds=seconds) 328s 328s tests/test_integration.py::TestStaticPermApp::test_allowed 328s tests/test_integration.py::TestStaticPermApp::test_allowed_via_acl_global_root_factory 328s tests/test_integration.py::TestStaticPermApp::test_allowed_via_acl_local_root_factory 328s tests/test_integration.py::TestStaticPermApp::test_denied_via_acl_global_root_factory 328s tests/test_integration.py::TestStaticPermApp::test_denied_via_acl_local_root_factory 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/staticpermapp/__init__.py:21: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_integration.py::TestStaticPermApp::test_allowed 328s tests/test_integration.py::TestStaticPermApp::test_allowed_via_acl_global_root_factory 328s tests/test_integration.py::TestStaticPermApp::test_allowed_via_acl_local_root_factory 328s tests/test_integration.py::TestStaticPermApp::test_denied_via_acl_global_root_factory 328s tests/test_integration.py::TestStaticPermApp::test_denied_via_acl_local_root_factory 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/staticpermapp/__init__.py:22: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_integration.py::TestForbiddenAppHasResult::test_it 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/forbiddenapp/__init__.py:26: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_integration.py::TestForbiddenAppHasResult::test_it 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/forbiddenapp/__init__.py:27: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_integration.py::TestForbiddenView::test_it 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/forbiddenview/__init__.py:30: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_integration.py::TestForbiddenView::test_it 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/forbiddenview/__init__.py:31: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_integration.py::TestViewPermissionBug::test_test 328s tests/test_integration.py::TestViewPermissionBug::test_x 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/permbugapp/__init__.py:25: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_integration.py::TestViewPermissionBug::test_test 328s tests/test_integration.py::TestViewPermissionBug::test_x 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/permbugapp/__init__.py:26: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_integration.py::TestDefaultViewPermissionBug::test_x 328s tests/test_integration.py::TestDefaultViewPermissionBug::test_y 328s tests/test_integration.py::TestDefaultViewPermissionBug::test_z 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/defpermbugapp/__init__.py:29: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(authn_policy) 328s 328s tests/test_integration.py::TestDefaultViewPermissionBug::test_x 328s tests/test_integration.py::TestDefaultViewPermissionBug::test_y 328s tests/test_integration.py::TestDefaultViewPermissionBug::test_z 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/defpermbugapp/__init__.py:30: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(authz_policy) 328s 328s tests/test_integration.py::TestLegacySecurityApp::test_inaccessible 328s tests/test_integration.py::TestLegacySecurityApp::test_private_allowed 328s tests/test_integration.py::TestLegacySecurityApp::test_private_denied 328s tests/test_integration.py::TestLegacySecurityApp::test_public 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/legacysecurityapp/__init__.py:30: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy(RemoteUserAuthenticationPolicy()) 328s 328s tests/test_integration.py::TestLegacySecurityApp::test_inaccessible 328s tests/test_integration.py::TestLegacySecurityApp::test_private_allowed 328s tests/test_integration.py::TestLegacySecurityApp::test_private_denied 328s tests/test_integration.py::TestLegacySecurityApp::test_public 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/legacysecurityapp/__init__.py:31: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(AuthorizationPolicy()) 328s 328s tests/test_integration.py::TestConflictApp::test_autoresolved_view 328s tests/test_integration.py::TestConflictApp::test_nonoverridden_authorization_policy 328s tests/test_integration.py::TestConflictApp::test_overridden_authorization_policy 328s tests/test_integration.py::TestConflictApp::test_overridden_autoresolved_view 328s tests/test_integration.py::TestConflictApp::test_overridden_route_view 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/conflictapp/__init__.py:25: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authentication_policy( 328s 328s tests/test_integration.py::TestConflictApp::test_autoresolved_view 328s tests/test_integration.py::TestConflictApp::test_nonoverridden_authorization_policy 328s tests/test_integration.py::TestConflictApp::test_overridden_authorization_policy 328s tests/test_integration.py::TestConflictApp::test_overridden_autoresolved_view 328s tests/test_integration.py::TestConflictApp::test_overridden_route_view 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/pkgs/conflictapp/__init__.py:28: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(ACLAuthorizationPolicy()) 328s 328s tests/test_integration.py::TestConflictApp::test_overridden_authorization_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_integration.py:681: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s config.set_authorization_policy(DummySecurityPolicy()) 328s 328s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_doesnt_provide_superset 328s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset 328s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset_implicit 328s tests/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_no_authentication_policy 328s /usr/lib/python3/dist-packages/pyramid/predicates.py:305: DeprecationWarning: The new security policy has deprecated effective_principals. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s req_principals = request.effective_principals 328s 328s tests/test_renderers.py::TestJSON::test_with_custom_adapter 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_renderers.py:46: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s now = datetime.utcnow() 328s 328s tests/test_renderers.py::TestJSON::test_with_custom_adapter2 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_renderers.py:60: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s now = datetime.utcnow() 328s 328s tests/test_security.py::TestAllPermissionsList::test_contains_w_object 328s tests/test_security.py::TestAllPermissionsList::test_contains_w_string 328s tests/test_security.py::TestAllPermissionsList::test_equality_miss 328s tests/test_security.py::TestAllPermissionsList::test_equality_w_other_instances_of_class 328s tests/test_security.py::TestAllPermissionsList::test_equality_w_other_instances_of_class 328s tests/test_security.py::TestAllPermissionsList::test_equality_w_self 328s tests/test_security.py::TestAllPermissionsList::test_iterable 328s tests/test_security.py::TestAllPermissionsList::test_singleton 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:14: DeprecationWarning: AllPermissionsList: "pyramid.security.AllPermissionsList" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.AllPermissionsList" 328s from pyramid.security import AllPermissionsList 328s 328s tests/test_security.py::TestAllPermissionsList::test_singleton 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:48: DeprecationWarning: ALL_PERMISSIONS: "pyramid.security.ALL_PERMISSIONS" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.ALL_PERMISSIONS" 328s from pyramid.security import ALL_PERMISSIONS 328s 328s tests/test_security.py::TestACLAllowed::test_it 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:95: DeprecationWarning: ACLAllowed: "pyramid.security.ACLAllowed" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.ACLAllowed" 328s from pyramid.security import ACLAllowed 328s 328s tests/test_security.py::TestACLDenied::test_it 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:124: DeprecationWarning: ACLDenied: "pyramid.security.ACLDenied" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.ACLDenied" 328s from pyramid.security import ACLDenied 328s 328s tests/test_security.py::TestPrincipalsAllowedByPermission::test_no_authorization_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:162: DeprecationWarning: Everyone: "pyramid.security.Everyone" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.Everyone" 328s from pyramid.security import Everyone 328s 328s tests/test_security.py::TestPrincipalsAllowedByPermission::test_no_authorization_policy 328s tests/test_security.py::TestPrincipalsAllowedByPermission::test_with_authorization_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:157: DeprecationWarning: principals_allowed_by_permission: The new security policy has removed the concept of principals. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s from pyramid.security import principals_allowed_by_permission 328s 328s tests/test_security.py::TestUnAuthenticatedUserId::test_legacy_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:386: DeprecationWarning: The new security policy has deprecated unauthenticated_userid. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.unauthenticated_userid, 'yo') 328s 328s tests/test_security.py::TestUnAuthenticatedUserId::test_no_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:375: DeprecationWarning: The new security policy has deprecated unauthenticated_userid. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.unauthenticated_userid, None) 328s 328s tests/test_security.py::TestUnAuthenticatedUserId::test_security_policy_trumps_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:392: DeprecationWarning: The new security policy has deprecated unauthenticated_userid. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.unauthenticated_userid, 'wat') 328s 328s tests/test_security.py::TestUnAuthenticatedUserId::test_with_security_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:380: DeprecationWarning: The new security policy has deprecated unauthenticated_userid. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.unauthenticated_userid, 'yo') 328s 328s tests/test_security.py::TestEffectivePrincipals::test_legacy_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:442: DeprecationWarning: The new security policy has deprecated effective_principals. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.effective_principals, 'yo') 328s 328s tests/test_security.py::TestEffectivePrincipals::test_no_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:426: DeprecationWarning: Everyone: "pyramid.security.Everyone" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.Everyone" 328s from pyramid.security import Everyone 328s 328s tests/test_security.py::TestEffectivePrincipals::test_no_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:429: DeprecationWarning: The new security policy has deprecated effective_principals. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.effective_principals, [Everyone]) 328s 328s tests/test_security.py::TestEffectivePrincipals::test_security_policy_trumps_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:445: DeprecationWarning: Everyone: "pyramid.security.Everyone" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.Everyone" 328s from pyramid.security import Everyone 328s 328s tests/test_security.py::TestEffectivePrincipals::test_security_policy_trumps_authentication_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:450: DeprecationWarning: The new security policy has deprecated effective_principals. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.effective_principals, [Everyone]) 328s 328s tests/test_security.py::TestEffectivePrincipals::test_with_security_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:432: DeprecationWarning: Everyone: "pyramid.security.Everyone" is deprecated in Pyramid 2.0. Adjust your import to "pyramid.authorization.Everyone" 328s from pyramid.security import Everyone 328s 328s tests/test_security.py::TestEffectivePrincipals::test_with_security_policy 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_security.py:436: DeprecationWarning: The new security policy has deprecated effective_principals. See "Upgrading Authentication/Authorization" in "What's New in Pyramid 2.0" of the documentation for more information. 328s self.assertEqual(request.effective_principals, [Everyone]) 328s 328s tests/test_session.py::TestPickleSerializer::test_dumps 328s tests/test_session.py::TestPickleSerializer::test_loads 328s tests/test_session.py::TestPickleSerializer::test_loads_raises_ValueError_on_bad_import 328s tests/test_session.py::TestPickleSerializer::test_loads_raises_ValueError_on_invalid_data 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_session.py:574: DeprecationWarning: PickleSerializer: pyramid.session.PickleSerializer is deprecated as of Pyramid 2.0 for security concerns. Use pyramid.session.JSONSerializer or reference the narrative documentation for information on building a migration tool. 328s from pyramid.session import PickleSerializer 328s 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_integer 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_viewderivers.py:1207: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s when = datetime.datetime.utcnow() + datetime.timedelta(hours=1) 328s 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_timedelta 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_viewderivers.py:1232: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s when = datetime.datetime.utcnow() + datetime.timedelta(hours=1) 328s 328s tests/test_viewderivers.py::TestDeriveView::test_http_cached_view_tuple 328s /tmp/autopkgtest.2tYoMU/autopkgtest_tmp/tests/test_viewderivers.py:1257: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 328s when = datetime.datetime.utcnow() + datetime.timedelta(hours=1) 328s 328s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 328s =========================== short test summary info ============================ 328s FAILED tests/test_util.py::Test_InstancePropertyHelper::test_property_without_name 328s FAILED tests/test_util.py::Test_InstancePropertyMixin::test_property_without_name 328s =========== 2 failed, 2629 passed, 2 skipped, 139 warnings in 9.99s ============ 329s autopkgtest [20:52:11]: test command2: -----------------------] 334s autopkgtest [20:52:16]: test command2: - - - - - - - - - - results - - - - - - - - - - 334s command2 FAIL non-zero exit status 1 337s autopkgtest [20:52:19]: @@@@@@@@@@@@@@@@@@@@ summary 337s command1 PASS (superficial) 337s command2 FAIL non-zero exit status 1