0s autopkgtest [14:07:34]: starting date and time: 2025-01-08 14:07:34+0000 0s autopkgtest [14:07:34]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [14:07:34]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.8pmzo6cn/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade pyjwt --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=python3-defaults/3.13.1-1~exp2' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-25.secgroup --name adt-plucky-amd64-pyjwt-20250108-140734-juju-7f2275-prod-proposed-migration-environment-2-6d0e6d87-fca5-406c-9fbe-f487c0bda162 --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_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,radosgw.ps5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 66s autopkgtest [14:08:40]: testbed dpkg architecture: amd64 66s autopkgtest [14:08:40]: testbed apt version: 2.9.18 67s autopkgtest [14:08:41]: @@@@@@@@@@@@@@@@@@@@ test bed setup 67s autopkgtest [14:08:41]: testbed release detected to be: None 68s autopkgtest [14:08:42]: updating testbed package index (apt update) 69s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 69s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 69s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 69s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 69s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [17.3 kB] 69s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [829 kB] 69s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [129 kB] 69s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9708 B] 69s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [263 kB] 69s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [170 kB] 69s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 Packages [40.1 kB] 69s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/restricted i386 Packages [2408 B] 69s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [423 kB] 69s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [1034 kB] 70s Get:15 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [4028 B] 70s Get:16 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [23.7 kB] 70s Fetched 3020 kB in 2s (1837 kB/s) 70s Reading package lists... 71s Reading package lists... 71s Building dependency tree... 71s Reading state information... 71s Calculating upgrade... 72s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 72s 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. 72s autopkgtest [14:08:46]: upgrading testbed (apt dist-upgrade and autopurge) 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 73s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 73s Starting 2 pkgProblemResolver with broken count: 0 73s Done 73s Entering ResolveByKeep 73s 73s The following packages were automatically installed and are no longer required: 73s python3.12 python3.12-minimal 73s Use 'sudo apt autoremove' to remove them. 73s The following NEW packages will be installed: 73s libpython3.13-minimal libpython3.13-stdlib python3.13 python3.13-minimal 73s The following packages will be upgraded: 73s libpython3-stdlib python3 python3-minimal 74s 3 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 74s Need to get 6118 kB of archives. 74s After this operation, 22.7 MB of additional disk space will be used. 74s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-minimal amd64 3.13.1-2 [881 kB] 74s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13-minimal amd64 3.13.1-2 [2358 kB] 74s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 python3-minimal amd64 3.13.1-1~exp2 [27.6 kB] 74s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 python3 amd64 3.13.1-1~exp2 [23.9 kB] 74s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-stdlib amd64 3.13.1-2 [2088 kB] 74s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13 amd64 3.13.1-2 [729 kB] 74s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 libpython3-stdlib amd64 3.13.1-1~exp2 [10.2 kB] 75s Fetched 6118 kB in 1s (7466 kB/s) 75s Selecting previously unselected package libpython3.13-minimal:amd64. 75s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75804 files and directories currently installed.) 75s Preparing to unpack .../libpython3.13-minimal_3.13.1-2_amd64.deb ... 75s Unpacking libpython3.13-minimal:amd64 (3.13.1-2) ... 75s Selecting previously unselected package python3.13-minimal. 75s Preparing to unpack .../python3.13-minimal_3.13.1-2_amd64.deb ... 75s Unpacking python3.13-minimal (3.13.1-2) ... 75s Setting up libpython3.13-minimal:amd64 (3.13.1-2) ... 75s Setting up python3.13-minimal (3.13.1-2) ... 76s (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 ... 76124 files and directories currently installed.) 76s Preparing to unpack .../python3-minimal_3.13.1-1~exp2_amd64.deb ... 76s Unpacking python3-minimal (3.13.1-1~exp2) over (3.12.8-1) ... 76s Setting up python3-minimal (3.13.1-1~exp2) ... 76s (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 ... 76124 files and directories currently installed.) 76s Preparing to unpack .../python3_3.13.1-1~exp2_amd64.deb ... 76s Unpacking python3 (3.13.1-1~exp2) over (3.12.8-1) ... 76s Selecting previously unselected package libpython3.13-stdlib:amd64. 76s Preparing to unpack .../libpython3.13-stdlib_3.13.1-2_amd64.deb ... 76s Unpacking libpython3.13-stdlib:amd64 (3.13.1-2) ... 76s Selecting previously unselected package python3.13. 76s Preparing to unpack .../python3.13_3.13.1-2_amd64.deb ... 76s Unpacking python3.13 (3.13.1-2) ... 76s Preparing to unpack .../libpython3-stdlib_3.13.1-1~exp2_amd64.deb ... 76s Unpacking libpython3-stdlib:amd64 (3.13.1-1~exp2) over (3.12.8-1) ... 76s Setting up libpython3.13-stdlib:amd64 (3.13.1-2) ... 76s Setting up libpython3-stdlib:amd64 (3.13.1-1~exp2) ... 76s Setting up python3.13 (3.13.1-2) ... 77s Setting up python3 (3.13.1-1~exp2) ... 77s /usr/bin/py3clean:101: DeprecationWarning: glob.glob1 is deprecated and will be removed in Python 3.15. Use glob.glob and pass a directory to its root_dir argument instead. 77s for fn in glob1(directory, "%s.*" % fname): 77s Processing triggers for man-db (2.13.0-1) ... 78s Processing triggers for systemd (257-2ubuntu1) ... 78s Reading package lists... 79s Building dependency tree... 79s Reading state information... 79s Starting pkgProblemResolver with broken count: 0 79s Starting 2 pkgProblemResolver with broken count: 0 79s Done 79s The following packages will be REMOVED: 79s python3.12* python3.12-minimal* 79s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 79s After this operation, 8926 kB disk space will be freed. 79s (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 ... 76541 files and directories currently installed.) 79s Removing python3.12 (3.12.8-3) ... 79s Removing python3.12-minimal (3.12.8-3) ... 80s /usr/bin/py3clean:125: DeprecationWarning: glob.glob1 is deprecated and will be removed in Python 3.15. Use glob.glob and pass a directory to its root_dir argument instead. 80s for fn in glob1(directory, "%s.%s.py[co]" % (fname, magic_tag)): 80s Processing triggers for man-db (2.13.0-1) ... 80s Processing triggers for systemd (257-2ubuntu1) ... 80s (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 ... 76513 files and directories currently installed.) 80s Purging configuration files for python3.12-minimal (3.12.8-3) ... 83s autopkgtest [14:08:57]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 83s autopkgtest [14:08:57]: @@@@@@@@@@@@@@@@@@@@ apt-source pyjwt 85s Get:1 http://ftpmaster.internal/ubuntu plucky/main pyjwt 2.7.0-1 (dsc) [2280 B] 85s Get:2 http://ftpmaster.internal/ubuntu plucky/main pyjwt 2.7.0-1 (tar) [77.9 kB] 85s Get:3 http://ftpmaster.internal/ubuntu plucky/main pyjwt 2.7.0-1 (diff) [4540 B] 85s gpgv: Signature made Thu Jun 15 03:10:18 2023 UTC 85s gpgv: using RSA key C65AEF9FE5BF8CCBD6EDB0198BAF522C0D6CCEDD 85s gpgv: issuer "eriol@debian.org" 85s gpgv: Can't check signature: No public key 85s dpkg-source: warning: cannot verify inline signature for ./pyjwt_2.7.0-1.dsc: no acceptable signature found 85s autopkgtest [14:08:59]: testing package pyjwt version 2.7.0-1 85s autopkgtest [14:08:59]: build not needed 86s autopkgtest [14:09:00]: test python3-jwt: preparing testbed 86s Reading package lists... 86s Building dependency tree... 86s Reading state information... 87s Starting pkgProblemResolver with broken count: 0 87s Starting 2 pkgProblemResolver with broken count: 0 87s Done 87s The following NEW packages will be installed: 87s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 87s libjs-jquery-metadata libjs-jquery-tablesorter 87s libjs-jquery-throttle-debounce python3-all python3-coverage 87s python3-exceptiongroup python3-iniconfig python3-packaging python3-pluggy 87s python3-pytest python3-pytest-cov python3-pytest-runner python3-tomli 87s python3.12 python3.12-minimal 87s 0 upgraded, 18 newly installed, 0 to remove and 0 not upgraded. 87s Need to get 4114 kB of archives. 87s After this operation, 13.8 MB of additional disk space will be used. 87s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12-minimal amd64 3.12.8-3 [2349 kB] 88s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 88s Get:3 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 88s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.12 amd64 3.12.8-3 [667 kB] 88s Get:5 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 88s Get:6 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 88s Get:7 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 88s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 python3-all amd64 3.13.1-1~exp2 [894 B] 88s Get:9 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu3 [150 kB] 88s Get:10 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-exceptiongroup all 1.2.2-1 [17.8 kB] 88s Get:11 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 88s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.2-1 [51.5 kB] 88s Get:13 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 88s Get:14 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-tomli all 2.0.1-2 [16.5 kB] 88s Get:15 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.4-1 [252 kB] 88s Get:16 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 88s Get:17 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 88s Get:18 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-runner all 2.11.1-4 [7450 B] 88s Fetched 4114 kB in 1s (4872 kB/s) 88s Selecting previously unselected package python3.12-minimal. 88s (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 ... 76513 files and directories currently installed.) 88s Preparing to unpack .../00-python3.12-minimal_3.12.8-3_amd64.deb ... 88s Unpacking python3.12-minimal (3.12.8-3) ... 88s Selecting previously unselected package libjs-jquery. 88s Preparing to unpack .../01-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 88s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 88s Selecting previously unselected package libjs-jquery-hotkeys. 88s Preparing to unpack .../02-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 88s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 88s Selecting previously unselected package python3.12. 88s Preparing to unpack .../03-python3.12_3.12.8-3_amd64.deb ... 88s Unpacking python3.12 (3.12.8-3) ... 88s Selecting previously unselected package libjs-jquery-metadata. 88s Preparing to unpack .../04-libjs-jquery-metadata_12-4_all.deb ... 88s Unpacking libjs-jquery-metadata (12-4) ... 88s Selecting previously unselected package libjs-jquery-tablesorter. 88s Preparing to unpack .../05-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 88s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 88s Selecting previously unselected package libjs-jquery-throttle-debounce. 88s Preparing to unpack .../06-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 88s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 88s Selecting previously unselected package python3-all. 88s Preparing to unpack .../07-python3-all_3.13.1-1~exp2_amd64.deb ... 88s Unpacking python3-all (3.13.1-1~exp2) ... 88s Selecting previously unselected package python3-coverage. 88s Preparing to unpack .../08-python3-coverage_7.4.4+dfsg1-0ubuntu3_amd64.deb ... 88s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 88s Selecting previously unselected package python3-exceptiongroup. 88s Preparing to unpack .../09-python3-exceptiongroup_1.2.2-1_all.deb ... 88s Unpacking python3-exceptiongroup (1.2.2-1) ... 88s Selecting previously unselected package python3-iniconfig. 88s Preparing to unpack .../10-python3-iniconfig_1.1.1-2_all.deb ... 88s Unpacking python3-iniconfig (1.1.1-2) ... 88s Selecting previously unselected package python3-packaging. 88s Preparing to unpack .../11-python3-packaging_24.2-1_all.deb ... 88s Unpacking python3-packaging (24.2-1) ... 88s Selecting previously unselected package python3-pluggy. 88s Preparing to unpack .../12-python3-pluggy_1.5.0-1_all.deb ... 88s Unpacking python3-pluggy (1.5.0-1) ... 88s Selecting previously unselected package python3-tomli. 88s Preparing to unpack .../13-python3-tomli_2.0.1-2_all.deb ... 88s Unpacking python3-tomli (2.0.1-2) ... 88s Selecting previously unselected package python3-pytest. 89s Preparing to unpack .../14-python3-pytest_8.3.4-1_all.deb ... 89s Unpacking python3-pytest (8.3.4-1) ... 89s Selecting previously unselected package libjs-jquery-isonscreen. 89s Preparing to unpack .../15-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 89s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 89s Selecting previously unselected package python3-pytest-cov. 89s Preparing to unpack .../16-python3-pytest-cov_5.0.0-1_all.deb ... 89s Unpacking python3-pytest-cov (5.0.0-1) ... 89s Selecting previously unselected package python3-pytest-runner. 89s Preparing to unpack .../17-python3-pytest-runner_2.11.1-4_all.deb ... 89s Unpacking python3-pytest-runner (2.11.1-4) ... 89s Setting up python3-iniconfig (1.1.1-2) ... 89s Setting up python3.12-minimal (3.12.8-3) ... 89s Setting up python3-tomli (2.0.1-2) ... 90s Setting up python3.12 (3.12.8-3) ... 90s Setting up python3-all (3.13.1-1~exp2) ... 90s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 91s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 91s Setting up python3-packaging (24.2-1) ... 91s Setting up python3-pluggy (1.5.0-1) ... 91s Setting up python3-exceptiongroup (1.2.2-1) ... 91s Setting up python3-pytest-runner (2.11.1-4) ... 92s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 92s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 92s Setting up python3-pytest (8.3.4-1) ... 92s Setting up libjs-jquery-metadata (12-4) ... 92s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 92s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 92s Setting up python3-pytest-cov (5.0.0-1) ... 92s Processing triggers for man-db (2.13.0-1) ... 92s Processing triggers for systemd (257-2ubuntu1) ... 93s autopkgtest [14:09:07]: test python3-jwt: [----------------------- 94s ============================= test session starts ============================== 94s platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 -- /usr/bin/python3.12 94s cachedir: .pytest_cache 94s rootdir: /tmp/autopkgtest.c2xuzK/build.qfS/src 94s configfile: tox.ini 94s testpaths: tests 94s plugins: cov-5.0.0, typeguard-4.4.1 94s collecting ... collected 256 items 94s 94s tests/test_advisory.py::TestAdvisory::test_ghsa_ffqj_6fqr_9h24 PASSED [ 0%] 94s tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_if_key_is_not_none PASSED [ 0%] 94s tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_on_to_jwk PASSED [ 1%] 94s tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_on_from_jwk PASSED [ 1%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_reject_nonstring_key PASSED [ 1%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_accept_unicode_key PASSED [ 2%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey2_rsa.pub.pem0] PASSED [ 2%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey2_rsa.pub.pem1] PASSED [ 3%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_pkcs1.pub.pem] PASSED [ 3%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_rsa.cer] PASSED [ 3%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_rsa.pub] PASSED [ 4%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_jwk_should_parse_and_verify PASSED [ 4%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_to_jwk_returns_correct_values[False] PASSED [ 5%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_to_jwk_returns_correct_values[True] PASSED [ 5%] 94s tests/test_algorithms.py::TestAlgorithms::test_hmac_from_jwk_should_raise_exception_if_not_hmac_key PASSED [ 5%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_parse_pem_public_key PASSED [ 6%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_accept_pem_private_key_bytes PASSED [ 6%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_accept_unicode_key PASSED [ 7%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_reject_non_string_key PASSED [ 7%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_verify_should_return_false_if_signature_invalid PASSED [ 7%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_jwk_public_and_private_keys_should_parse_and_verify PASSED [ 8%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_jwk_fails_on_invalid_json PASSED [ 8%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_private_key_to_jwk_works_with_from_jwk PASSED [ 8%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_public_key_to_jwk_works_with_from_jwk PASSED [ 9%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_public_key[False] PASSED [ 9%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_public_key[True] PASSED [ 10%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_private_key[False] PASSED [ 10%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_private_key[True] PASSED [ 10%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_raises_exception_on_invalid_key PASSED [ 11%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_valid_curves[False] PASSED [ 11%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_valid_curves[True] PASSED [ 12%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_invalid_curve PASSED [ 12%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_public_and_private_keys_should_parse_and_verify PASSED [ 12%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_private_key_to_jwk_works_with_from_jwk PASSED [ 13%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_public_key_to_jwk_works_with_from_jwk PASSED [ 13%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_other_primes_is_invalid PASSED [ 14%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_missing_values_is_invalid PASSED [ 14%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_can_recover_prime_factors PASSED [ 14%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_missing_required_values_is_invalid PASSED [ 15%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_raises_exception_if_not_a_valid_key PASSED [ 15%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_public_key[False] PASSED [ 16%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_public_key[True] PASSED [ 16%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_private_key[False] PASSED [ 16%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_private_key[True] PASSED [ 17%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_raises_exception_on_invalid_key PASSED [ 17%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_from_jwk_raises_exception_on_invalid_key PASSED [ 17%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_should_reject_non_string_key PASSED [ 18%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_should_accept_pem_private_key_bytes PASSED [ 18%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_should_accept_ssh_public_key_bytes PASSED [ 19%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_verify_should_return_false_if_signature_invalid PASSED [ 19%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_verify_should_return_false_if_signature_wrong_length PASSED [ 19%] 94s tests/test_algorithms.py::TestAlgorithms::test_ec_should_throw_exception_on_wrong_key PASSED [ 20%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_pss_sign_then_verify_should_return_true PASSED [ 20%] 94s tests/test_algorithms.py::TestAlgorithms::test_rsa_pss_verify_should_return_false_if_signature_invalid PASSED [ 21%] 94s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_hmac_verify_should_return_true_for_test_vector PASSED [ 21%] 94s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_rsa_verify_should_return_true_for_test_vector PASSED [ 21%] 94s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_rsapss_verify_should_return_true_for_test_vector PASSED [ 22%] 94s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_ec_verify_should_return_true_for_test_vector PASSED [ 22%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_should_reject_non_string_key PASSED [ 23%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_sign_should_generate_correct_signature_value PASSED [ 23%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_verify_should_return_false_if_signature_invalid PASSED [ 23%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_verify_should_return_true_if_signature_valid PASSED [ 24%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_prepare_key_should_be_idempotent PASSED [ 24%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_private_key_should_parse_and_verify PASSED [ 25%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_private_key_should_parse_and_verify_with_private_key_as_is PASSED [ 25%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_public_key_should_parse_and_verify PASSED [ 25%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_fails_on_invalid_json PASSED [ 26%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_to_jwk_works_with_from_jwk[False] PASSED [ 26%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_to_jwk_works_with_from_jwk[True] PASSED [ 26%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_to_jwk_raises_exception_on_invalid_key PASSED [ 27%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_private_key_should_parse_and_verify PASSED [ 27%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_private_key_should_parse_and_verify_with_private_key_as_is PASSED [ 28%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_public_key_should_parse_and_verify PASSED [ 28%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_fails_on_invalid_json PASSED [ 28%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_to_jwk_works_with_from_jwk[False] PASSED [ 29%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_to_jwk_works_with_from_jwk[True] PASSED [ 29%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_rsa_can_compute_digest PASSED [ 30%] 94s tests/test_algorithms.py::TestOKPAlgorithms::test_hmac_can_compute_digest PASSED [ 30%] 94s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_jwk_data_dict PASSED [ 30%] 94s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_jwk_data_json_string PASSED [ 31%] 94s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_without_alg_from_dict PASSED [ 31%] 94s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_dict_with_algorithm PASSED [ 32%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p256_from_dict PASSED [ 32%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p384_from_dict PASSED [ 32%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p521_from_dict PASSED [ 33%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_secp256k1_from_dict PASSED [ 33%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_hmac_from_dict PASSED [ 33%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_hmac_without_alg_from_dict PASSED [ 34%] 95s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_okp_without_alg_from_dict PASSED [ 34%] 95s tests/test_api_jwk.py::TestPyJWK::test_from_dict_should_throw_exception_if_arg_is_invalid PASSED [ 35%] 95s tests/test_api_jwk.py::TestPyJWK::test_missing_crypto_library_good_error_message SKIPPED [ 35%] 95s tests/test_api_jwk.py::TestPyJWKSet::test_should_load_keys_from_jwk_data_dict PASSED [ 35%] 95s tests/test_api_jwk.py::TestPyJWKSet::test_should_load_keys_from_jwk_data_json_string PASSED [ 36%] 95s tests/test_api_jwk.py::TestPyJWKSet::test_keyset_should_index_by_kid PASSED [ 36%] 95s tests/test_api_jwk.py::TestPyJWKSet::test_keyset_with_unknown_alg PASSED [ 37%] 95s tests/test_api_jwk.py::TestPyJWKSet::test_invalid_keys_list PASSED [ 37%] 95s tests/test_api_jwk.py::TestPyJWKSet::test_empty_keys_list PASSED [ 37%] 95s tests/test_api_jws.py::TestJWS::test_register_algo_does_not_allow_duplicate_registration PASSED [ 38%] 95s tests/test_api_jws.py::TestJWS::test_register_algo_rejects_non_algorithm_obj PASSED [ 38%] 95s tests/test_api_jws.py::TestJWS::test_unregister_algo_removes_algorithm PASSED [ 39%] 95s tests/test_api_jws.py::TestJWS::test_unregister_algo_throws_error_if_not_registered PASSED [ 39%] 95s tests/test_api_jws.py::TestJWS::test_algo_parameter_removes_alg_from_algorithms_list PASSED [ 39%] 95s tests/test_api_jws.py::TestJWS::test_override_options PASSED [ 40%] 95s tests/test_api_jws.py::TestJWS::test_non_object_options_dont_persist PASSED [ 40%] 95s tests/test_api_jws.py::TestJWS::test_options_must_be_dict PASSED [ 41%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode PASSED [ 41%] 95s tests/test_api_jws.py::TestJWS::test_decode_fails_when_alg_is_not_on_method_algorithms_param PASSED [ 41%] 95s tests/test_api_jws.py::TestJWS::test_decode_works_with_unicode_token PASSED [ 42%] 95s tests/test_api_jws.py::TestJWS::test_decode_missing_segments_throws_exception PASSED [ 42%] 95s tests/test_api_jws.py::TestJWS::test_decode_invalid_token_type_is_none PASSED [ 42%] 95s tests/test_api_jws.py::TestJWS::test_decode_invalid_token_type_is_int PASSED [ 43%] 95s tests/test_api_jws.py::TestJWS::test_decode_with_non_mapping_header_throws_exception PASSED [ 43%] 95s tests/test_api_jws.py::TestJWS::test_encode_algorithm_param_should_be_case_sensitive PASSED [ 44%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_headers_alg_none PASSED [ 44%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_headers_alg_es256 PASSED [ 44%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_alg_hs256_and_headers_alg_es256 PASSED [ 45%] 95s tests/test_api_jws.py::TestJWS::test_decode_algorithm_param_should_be_case_sensitive PASSED [ 45%] 95s tests/test_api_jws.py::TestJWS::test_bad_secret PASSED [ 46%] 95s tests/test_api_jws.py::TestJWS::test_decodes_valid_jws PASSED [ 46%] 95s tests/test_api_jws.py::TestJWS::test_decodes_complete_valid_jws PASSED [ 46%] 95s tests/test_api_jws.py::TestJWS::test_decodes_valid_es384_jws PASSED [ 47%] 95s tests/test_api_jws.py::TestJWS::test_decodes_valid_rs384_jws PASSED [ 47%] 95s tests/test_api_jws.py::TestJWS::test_load_verify_valid_jws PASSED [ 48%] 95s tests/test_api_jws.py::TestJWS::test_allow_skip_verification PASSED [ 48%] 95s tests/test_api_jws.py::TestJWS::test_decode_with_optional_algorithms PASSED [ 48%] 95s tests/test_api_jws.py::TestJWS::test_decode_no_algorithms_verify_signature_false PASSED [ 49%] 95s tests/test_api_jws.py::TestJWS::test_load_no_verification PASSED [ 49%] 95s tests/test_api_jws.py::TestJWS::test_no_secret PASSED [ 50%] 95s tests/test_api_jws.py::TestJWS::test_verify_signature_with_no_secret PASSED [ 50%] 95s tests/test_api_jws.py::TestJWS::test_verify_signature_with_no_algo_header_throws_exception PASSED [ 50%] 95s tests/test_api_jws.py::TestJWS::test_invalid_crypto_alg PASSED [ 51%] 95s tests/test_api_jws.py::TestJWS::test_missing_crypto_library_better_error_messages SKIPPED [ 51%] 95s tests/test_api_jws.py::TestJWS::test_unicode_secret PASSED [ 51%] 95s tests/test_api_jws.py::TestJWS::test_nonascii_secret PASSED [ 52%] 95s tests/test_api_jws.py::TestJWS::test_bytes_secret PASSED [ 52%] 95s tests/test_api_jws.py::TestJWS::test_sorting_of_headers[False] PASSED [ 53%] 95s tests/test_api_jws.py::TestJWS::test_sorting_of_headers[True] PASSED [ 53%] 95s tests/test_api_jws.py::TestJWS::test_decode_invalid_header_padding PASSED [ 53%] 95s tests/test_api_jws.py::TestJWS::test_decode_invalid_header_string PASSED [ 54%] 95s tests/test_api_jws.py::TestJWS::test_decode_invalid_payload_padding PASSED [ 54%] 95s tests/test_api_jws.py::TestJWS::test_decode_invalid_crypto_padding PASSED [ 55%] 95s tests/test_api_jws.py::TestJWS::test_decode_with_algo_none_should_fail PASSED [ 55%] 95s tests/test_api_jws.py::TestJWS::test_decode_with_algo_none_and_verify_false_should_pass PASSED [ 55%] 95s tests/test_api_jws.py::TestJWS::test_get_unverified_header_returns_header_values PASSED [ 56%] 95s tests/test_api_jws.py::TestJWS::test_get_unverified_header_fails_on_bad_header_types PASSED [ 56%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS256] PASSED [ 57%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS384] PASSED [ 57%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS512] PASSED [ 57%] 95s tests/test_api_jws.py::TestJWS::test_rsa_related_algorithms PASSED [ 58%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES256] PASSED [ 58%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES256K] PASSED [ 58%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES384] PASSED [ 59%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES512] PASSED [ 59%] 95s tests/test_api_jws.py::TestJWS::test_ecdsa_related_algorithms PASSED [ 60%] 95s tests/test_api_jws.py::TestJWS::test_skip_check_signature PASSED [ 60%] 95s tests/test_api_jws.py::TestJWS::test_decode_options_must_be_dict PASSED [ 60%] 95s tests/test_api_jws.py::TestJWS::test_custom_json_encoder PASSED [ 61%] 95s tests/test_api_jws.py::TestJWS::test_encode_headers_parameter_adds_headers PASSED [ 61%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_typ PASSED [ 62%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_typ_empty_string PASSED [ 62%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_typ_none PASSED [ 62%] 95s tests/test_api_jws.py::TestJWS::test_encode_with_typ_without_keywords PASSED [ 63%] 95s tests/test_api_jws.py::TestJWS::test_encode_fails_on_invalid_kid_types PASSED [ 63%] 95s tests/test_api_jws.py::TestJWS::test_encode_decode_with_detached_content PASSED [ 64%] 95s tests/test_api_jws.py::TestJWS::test_encode_detached_content_with_b64_header PASSED [ 64%] 95s tests/test_api_jws.py::TestJWS::test_decode_detached_content_without_proper_argument PASSED [ 64%] 95s tests/test_api_jws.py::TestJWS::test_decode_warns_on_unsupported_kwarg PASSED [ 65%] 95s tests/test_api_jws.py::TestJWS::test_decode_complete_warns_on_unuspported_kwarg PASSED [ 65%] 95s tests/test_api_jwt.py::TestJWT::test_decodes_valid_jwt PASSED [ 66%] 95s tests/test_api_jwt.py::TestJWT::test_decodes_complete_valid_jwt PASSED [ 66%] 95s tests/test_api_jwt.py::TestJWT::test_load_verify_valid_jwt PASSED [ 66%] 95s tests/test_api_jwt.py::TestJWT::test_decode_invalid_payload_string PASSED [ 67%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_non_mapping_payload_throws_exception PASSED [ 67%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_audience_param_throws_exception PASSED [ 67%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_nonlist_aud_claim_throws_exception PASSED [ 68%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_aud_list_member_throws_exception PASSED [ 68%] 95s tests/test_api_jwt.py::TestJWT::test_encode_bad_type PASSED [ 69%] 95s tests/test_api_jwt.py::TestJWT::test_encode_with_typ PASSED [ 69%] 95s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_exp_is_not_int PASSED [ 69%] 95s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_iat_is_not_int PASSED [ 70%] 95s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_iat_is_greater_than_now PASSED [ 70%] 95s tests/test_api_jwt.py::TestJWT::test_decode_works_if_iat_is_str_of_a_number PASSED [ 71%] 95s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_nbf_is_not_int PASSED [ 71%] 95s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_aud_is_none PASSED [ 71%] 95s tests/test_api_jwt.py::TestJWT::test_encode_datetime PASSED [ 72%] 95s tests/test_api_jwt.py::TestJWT::test_decodes_valid_es256_jwt PASSED [ 72%] 95s tests/test_api_jwt.py::TestJWT::test_decodes_valid_rs384_jwt PASSED [ 73%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_expiration PASSED [ 73%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_notbefore PASSED [ 73%] 95s tests/test_api_jwt.py::TestJWT::test_decode_skip_expiration_verification PASSED [ 74%] 95s tests/test_api_jwt.py::TestJWT::test_decode_skip_notbefore_verification PASSED [ 74%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_expiration_with_leeway PASSED [ 75%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_notbefore_with_leeway PASSED [ 75%] 95s tests/test_api_jwt.py::TestJWT::test_check_audience_when_valid PASSED [ 75%] 95s tests/test_api_jwt.py::TestJWT::test_check_audience_list_when_valid PASSED [ 76%] 95s tests/test_api_jwt.py::TestJWT::test_check_audience_none_specified PASSED [ 76%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience_list PASSED [ 76%] 95s tests/test_api_jwt.py::TestJWT::test_check_audience_in_array_when_valid PASSED [ 77%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience PASSED [ 77%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_audience_as_bytes PASSED [ 78%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience_in_array PASSED [ 78%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_token_without_issuer PASSED [ 78%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_token_without_audience PASSED [ 79%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_token_with_aud_none_and_without_audience PASSED [ 79%] 95s tests/test_api_jwt.py::TestJWT::test_check_issuer_when_valid PASSED [ 80%] 95s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_issuer PASSED [ 80%] 95s tests/test_api_jwt.py::TestJWT::test_skip_check_audience PASSED [ 80%] 95s tests/test_api_jwt.py::TestJWT::test_skip_check_exp PASSED [ 81%] 95s tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_exp_required_but_not_present PASSED [ 81%] 95s tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_iat_required_but_not_present PASSED [ 82%] 95s tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_nbf_required_but_not_present PASSED [ 82%] 95s tests/test_api_jwt.py::TestJWT::test_skip_check_signature PASSED [ 82%] 95s tests/test_api_jwt.py::TestJWT::test_skip_check_iat PASSED [ 83%] 95s tests/test_api_jwt.py::TestJWT::test_skip_check_nbf PASSED [ 83%] 95s tests/test_api_jwt.py::TestJWT::test_custom_json_encoder PASSED [ 83%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_verify_exp_option PASSED [ 84%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_verify_exp_option_and_signature_off PASSED [ 84%] 95s tests/test_api_jwt.py::TestJWT::test_decode_with_optional_algorithms PASSED [ 85%] 95s tests/test_api_jwt.py::TestJWT::test_decode_no_algorithms_verify_signature_false PASSED [ 85%] 95s tests/test_api_jwt.py::TestJWT::test_decode_legacy_verify_warning PASSED [ 85%] 95s tests/test_api_jwt.py::TestJWT::test_decode_no_options_mutation PASSED [ 86%] 95s tests/test_api_jwt.py::TestJWT::test_decode_warns_on_unsupported_kwarg PASSED [ 86%] 95s tests/test_api_jwt.py::TestJWT::test_decode_complete_warns_on_unsupported_kwarg PASSED [ 87%] 95s tests/test_compressed_jwt.py::test_decodes_complete_valid_jwt_with_compressed_payload PASSED [ 87%] 95s tests/test_exceptions.py::test_missing_required_claim_error_has_proper_str PASSED [ 87%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_fetch_data_forwards_headers_to_correct_url PASSED [ 88%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwk_set PASSED [ 88%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys PASSED [ 89%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys_if_no_use_provided PASSED [ 89%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys_raises_if_none_found PASSED [ 89%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key PASSED [ 90%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_caches_result PASSED [ 90%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_does_not_cache_opt_out PASSED [ 91%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_from_jwt PASSED [ 91%] 95s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwk_set_caches_result PASSED [ 91%] 97s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_cache_expired_result PASSED [ 92%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_cache_disabled PASSED [ 92%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_failed_request_should_clear_cache PASSED [ 92%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_failed_request_should_raise_connection_error PASSED [ 93%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_refresh_cache PASSED [ 93%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_no_matching_kid_after_second_attempt PASSED [ 94%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_invalid_lifespan PASSED [ 94%] 99s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_timeout PASSED [ 94%] 99s tests/test_jwt.py::test_encode_decode PASSED [ 95%] 99s tests/test_utils.py::test_to_base64url_uint[0-AA] PASSED [ 95%] 99s tests/test_utils.py::test_to_base64url_uint[1-AQ] PASSED [ 96%] 99s tests/test_utils.py::test_to_base64url_uint[255-_w] PASSED [ 96%] 99s tests/test_utils.py::test_to_base64url_uint[65537-AQAB] PASSED [ 96%] 99s tests/test_utils.py::test_to_base64url_uint[123456789-B1vNFQ] PASSED [ 97%] 99s tests/test_utils.py::test_to_base64url_uint[-1-] XFAIL [ 97%] 99s tests/test_utils.py::test_from_base64url_uint[AA-0] PASSED [ 98%] 99s tests/test_utils.py::test_from_base64url_uint[AQ-1] PASSED [ 98%] 99s tests/test_utils.py::test_from_base64url_uint[_w-255] PASSED [ 98%] 99s tests/test_utils.py::test_from_base64url_uint[AQAB-65537] PASSED [ 99%] 99s tests/test_utils.py::test_from_base64url_uint[B1vNFQ-123456789] PASSED [ 99%] 99s tests/test_utils.py::test_force_bytes_raises_error_on_invalid_object PASSED [100%] 99s 99s =========================== short test summary info ============================ 99s SKIPPED [1] tests/test_api_jwk.py:200: Requires cryptography library not installed 99s SKIPPED [1] tests/test_api_jws.py:387: Requires cryptography library not installed 99s ================== 253 passed, 2 skipped, 1 xfailed in 5.34s =================== 99s ============================= test session starts ============================== 99s platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 -- /usr/bin/python3.13 99s cachedir: .pytest_cache 99s rootdir: /tmp/autopkgtest.c2xuzK/build.qfS/src 99s configfile: tox.ini 99s testpaths: tests 99s plugins: cov-5.0.0, typeguard-4.4.1 99s collecting ... collected 256 items 99s 99s tests/test_advisory.py::TestAdvisory::test_ghsa_ffqj_6fqr_9h24 PASSED [ 0%] 99s tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_if_key_is_not_none PASSED [ 0%] 99s tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_on_to_jwk PASSED [ 1%] 99s tests/test_algorithms.py::TestAlgorithms::test_none_algorithm_should_throw_exception_on_from_jwk PASSED [ 1%] 99s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_reject_nonstring_key PASSED [ 1%] 99s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_accept_unicode_key PASSED [ 2%] 99s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey2_rsa.pub.pem0] PASSED [ 2%] 99s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey2_rsa.pub.pem1] PASSED [ 3%] 99s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_pkcs1.pub.pem] PASSED [ 3%] 99s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_rsa.cer] PASSED [ 3%] 100s tests/test_algorithms.py::TestAlgorithms::test_hmac_should_throw_exception[testkey_rsa.pub] PASSED [ 4%] 100s tests/test_algorithms.py::TestAlgorithms::test_hmac_jwk_should_parse_and_verify PASSED [ 4%] 100s tests/test_algorithms.py::TestAlgorithms::test_hmac_to_jwk_returns_correct_values[False] PASSED [ 5%] 100s tests/test_algorithms.py::TestAlgorithms::test_hmac_to_jwk_returns_correct_values[True] PASSED [ 5%] 100s tests/test_algorithms.py::TestAlgorithms::test_hmac_from_jwk_should_raise_exception_if_not_hmac_key PASSED [ 5%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_parse_pem_public_key PASSED [ 6%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_accept_pem_private_key_bytes PASSED [ 6%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_accept_unicode_key PASSED [ 7%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_should_reject_non_string_key PASSED [ 7%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_verify_should_return_false_if_signature_invalid PASSED [ 7%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_jwk_public_and_private_keys_should_parse_and_verify PASSED [ 8%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_jwk_fails_on_invalid_json PASSED [ 8%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_private_key_to_jwk_works_with_from_jwk PASSED [ 8%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_public_key_to_jwk_works_with_from_jwk PASSED [ 9%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_public_key[False] PASSED [ 9%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_public_key[True] PASSED [ 10%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_private_key[False] PASSED [ 10%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_returns_correct_values_for_private_key[True] PASSED [ 10%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_raises_exception_on_invalid_key PASSED [ 11%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_valid_curves[False] PASSED [ 11%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_valid_curves[True] PASSED [ 12%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_to_jwk_with_invalid_curve PASSED [ 12%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_public_and_private_keys_should_parse_and_verify PASSED [ 12%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_private_key_to_jwk_works_with_from_jwk PASSED [ 13%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_public_key_to_jwk_works_with_from_jwk PASSED [ 13%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_other_primes_is_invalid PASSED [ 14%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_missing_values_is_invalid PASSED [ 14%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_can_recover_prime_factors PASSED [ 14%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_private_key_with_missing_required_values_is_invalid PASSED [ 15%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_jwk_raises_exception_if_not_a_valid_key PASSED [ 15%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_public_key[False] PASSED [ 16%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_public_key[True] PASSED [ 16%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_private_key[False] PASSED [ 16%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_returns_correct_values_for_private_key[True] PASSED [ 17%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_to_jwk_raises_exception_on_invalid_key PASSED [ 17%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_from_jwk_raises_exception_on_invalid_key PASSED [ 17%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_should_reject_non_string_key PASSED [ 18%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_should_accept_pem_private_key_bytes PASSED [ 18%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_should_accept_ssh_public_key_bytes PASSED [ 19%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_verify_should_return_false_if_signature_invalid PASSED [ 19%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_verify_should_return_false_if_signature_wrong_length PASSED [ 19%] 100s tests/test_algorithms.py::TestAlgorithms::test_ec_should_throw_exception_on_wrong_key PASSED [ 20%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_pss_sign_then_verify_should_return_true PASSED [ 20%] 100s tests/test_algorithms.py::TestAlgorithms::test_rsa_pss_verify_should_return_false_if_signature_invalid PASSED [ 21%] 100s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_hmac_verify_should_return_true_for_test_vector PASSED [ 21%] 100s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_rsa_verify_should_return_true_for_test_vector PASSED [ 21%] 100s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_rsapss_verify_should_return_true_for_test_vector PASSED [ 22%] 100s tests/test_algorithms.py::TestAlgorithmsRFC7520::test_ec_verify_should_return_true_for_test_vector PASSED [ 22%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_should_reject_non_string_key PASSED [ 23%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_sign_should_generate_correct_signature_value PASSED [ 23%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_verify_should_return_false_if_signature_invalid PASSED [ 23%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_verify_should_return_true_if_signature_valid PASSED [ 24%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_prepare_key_should_be_idempotent PASSED [ 24%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_private_key_should_parse_and_verify PASSED [ 25%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_private_key_should_parse_and_verify_with_private_key_as_is PASSED [ 25%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_public_key_should_parse_and_verify PASSED [ 25%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_jwk_fails_on_invalid_json PASSED [ 26%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_to_jwk_works_with_from_jwk[False] PASSED [ 26%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed25519_to_jwk_works_with_from_jwk[True] PASSED [ 26%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_to_jwk_raises_exception_on_invalid_key PASSED [ 27%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_private_key_should_parse_and_verify PASSED [ 27%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_private_key_should_parse_and_verify_with_private_key_as_is PASSED [ 28%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_public_key_should_parse_and_verify PASSED [ 28%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_jwk_fails_on_invalid_json PASSED [ 28%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_to_jwk_works_with_from_jwk[False] PASSED [ 29%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_okp_ed448_to_jwk_works_with_from_jwk[True] PASSED [ 29%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_rsa_can_compute_digest PASSED [ 30%] 100s tests/test_algorithms.py::TestOKPAlgorithms::test_hmac_can_compute_digest PASSED [ 30%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_jwk_data_dict PASSED [ 30%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_jwk_data_json_string PASSED [ 31%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_without_alg_from_dict PASSED [ 31%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_from_dict_with_algorithm PASSED [ 32%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p256_from_dict PASSED [ 32%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p384_from_dict PASSED [ 32%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_p521_from_dict PASSED [ 33%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_ec_secp256k1_from_dict PASSED [ 33%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_hmac_from_dict PASSED [ 33%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_hmac_without_alg_from_dict PASSED [ 34%] 100s tests/test_api_jwk.py::TestPyJWK::test_should_load_key_okp_without_alg_from_dict PASSED [ 34%] 100s tests/test_api_jwk.py::TestPyJWK::test_from_dict_should_throw_exception_if_arg_is_invalid PASSED [ 35%] 100s tests/test_api_jwk.py::TestPyJWK::test_missing_crypto_library_good_error_message SKIPPED [ 35%] 100s tests/test_api_jwk.py::TestPyJWKSet::test_should_load_keys_from_jwk_data_dict PASSED [ 35%] 100s tests/test_api_jwk.py::TestPyJWKSet::test_should_load_keys_from_jwk_data_json_string PASSED [ 36%] 100s tests/test_api_jwk.py::TestPyJWKSet::test_keyset_should_index_by_kid PASSED [ 36%] 100s tests/test_api_jwk.py::TestPyJWKSet::test_keyset_with_unknown_alg PASSED [ 37%] 100s tests/test_api_jwk.py::TestPyJWKSet::test_invalid_keys_list PASSED [ 37%] 100s tests/test_api_jwk.py::TestPyJWKSet::test_empty_keys_list PASSED [ 37%] 100s tests/test_api_jws.py::TestJWS::test_register_algo_does_not_allow_duplicate_registration PASSED [ 38%] 100s tests/test_api_jws.py::TestJWS::test_register_algo_rejects_non_algorithm_obj PASSED [ 38%] 100s tests/test_api_jws.py::TestJWS::test_unregister_algo_removes_algorithm PASSED [ 39%] 100s tests/test_api_jws.py::TestJWS::test_unregister_algo_throws_error_if_not_registered PASSED [ 39%] 100s tests/test_api_jws.py::TestJWS::test_algo_parameter_removes_alg_from_algorithms_list PASSED [ 39%] 100s tests/test_api_jws.py::TestJWS::test_override_options PASSED [ 40%] 100s tests/test_api_jws.py::TestJWS::test_non_object_options_dont_persist PASSED [ 40%] 100s tests/test_api_jws.py::TestJWS::test_options_must_be_dict PASSED [ 41%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode PASSED [ 41%] 100s tests/test_api_jws.py::TestJWS::test_decode_fails_when_alg_is_not_on_method_algorithms_param PASSED [ 41%] 100s tests/test_api_jws.py::TestJWS::test_decode_works_with_unicode_token PASSED [ 42%] 100s tests/test_api_jws.py::TestJWS::test_decode_missing_segments_throws_exception PASSED [ 42%] 100s tests/test_api_jws.py::TestJWS::test_decode_invalid_token_type_is_none PASSED [ 42%] 100s tests/test_api_jws.py::TestJWS::test_decode_invalid_token_type_is_int PASSED [ 43%] 100s tests/test_api_jws.py::TestJWS::test_decode_with_non_mapping_header_throws_exception PASSED [ 43%] 100s tests/test_api_jws.py::TestJWS::test_encode_algorithm_param_should_be_case_sensitive PASSED [ 44%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_headers_alg_none PASSED [ 44%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_headers_alg_es256 PASSED [ 44%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_alg_hs256_and_headers_alg_es256 PASSED [ 45%] 100s tests/test_api_jws.py::TestJWS::test_decode_algorithm_param_should_be_case_sensitive PASSED [ 45%] 100s tests/test_api_jws.py::TestJWS::test_bad_secret PASSED [ 46%] 100s tests/test_api_jws.py::TestJWS::test_decodes_valid_jws PASSED [ 46%] 100s tests/test_api_jws.py::TestJWS::test_decodes_complete_valid_jws PASSED [ 46%] 100s tests/test_api_jws.py::TestJWS::test_decodes_valid_es384_jws PASSED [ 47%] 100s tests/test_api_jws.py::TestJWS::test_decodes_valid_rs384_jws PASSED [ 47%] 100s tests/test_api_jws.py::TestJWS::test_load_verify_valid_jws PASSED [ 48%] 100s tests/test_api_jws.py::TestJWS::test_allow_skip_verification PASSED [ 48%] 100s tests/test_api_jws.py::TestJWS::test_decode_with_optional_algorithms PASSED [ 48%] 100s tests/test_api_jws.py::TestJWS::test_decode_no_algorithms_verify_signature_false PASSED [ 49%] 100s tests/test_api_jws.py::TestJWS::test_load_no_verification PASSED [ 49%] 100s tests/test_api_jws.py::TestJWS::test_no_secret PASSED [ 50%] 100s tests/test_api_jws.py::TestJWS::test_verify_signature_with_no_secret PASSED [ 50%] 100s tests/test_api_jws.py::TestJWS::test_verify_signature_with_no_algo_header_throws_exception PASSED [ 50%] 100s tests/test_api_jws.py::TestJWS::test_invalid_crypto_alg PASSED [ 51%] 100s tests/test_api_jws.py::TestJWS::test_missing_crypto_library_better_error_messages SKIPPED [ 51%] 100s tests/test_api_jws.py::TestJWS::test_unicode_secret PASSED [ 51%] 100s tests/test_api_jws.py::TestJWS::test_nonascii_secret PASSED [ 52%] 100s tests/test_api_jws.py::TestJWS::test_bytes_secret PASSED [ 52%] 100s tests/test_api_jws.py::TestJWS::test_sorting_of_headers[False] PASSED [ 53%] 100s tests/test_api_jws.py::TestJWS::test_sorting_of_headers[True] PASSED [ 53%] 100s tests/test_api_jws.py::TestJWS::test_decode_invalid_header_padding PASSED [ 53%] 100s tests/test_api_jws.py::TestJWS::test_decode_invalid_header_string PASSED [ 54%] 100s tests/test_api_jws.py::TestJWS::test_decode_invalid_payload_padding PASSED [ 54%] 100s tests/test_api_jws.py::TestJWS::test_decode_invalid_crypto_padding PASSED [ 55%] 100s tests/test_api_jws.py::TestJWS::test_decode_with_algo_none_should_fail PASSED [ 55%] 100s tests/test_api_jws.py::TestJWS::test_decode_with_algo_none_and_verify_false_should_pass PASSED [ 55%] 100s tests/test_api_jws.py::TestJWS::test_get_unverified_header_returns_header_values PASSED [ 56%] 100s tests/test_api_jws.py::TestJWS::test_get_unverified_header_fails_on_bad_header_types PASSED [ 56%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS256] PASSED [ 57%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS384] PASSED [ 57%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_rsa_related_algorithms[RS512] PASSED [ 57%] 100s tests/test_api_jws.py::TestJWS::test_rsa_related_algorithms PASSED [ 58%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES256] PASSED [ 58%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES256K] PASSED [ 58%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES384] PASSED [ 59%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_ecdsa_related_algorithms[ES512] PASSED [ 59%] 100s tests/test_api_jws.py::TestJWS::test_ecdsa_related_algorithms PASSED [ 60%] 100s tests/test_api_jws.py::TestJWS::test_skip_check_signature PASSED [ 60%] 100s tests/test_api_jws.py::TestJWS::test_decode_options_must_be_dict PASSED [ 60%] 100s tests/test_api_jws.py::TestJWS::test_custom_json_encoder PASSED [ 61%] 100s tests/test_api_jws.py::TestJWS::test_encode_headers_parameter_adds_headers PASSED [ 61%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_typ PASSED [ 62%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_typ_empty_string PASSED [ 62%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_typ_none PASSED [ 62%] 100s tests/test_api_jws.py::TestJWS::test_encode_with_typ_without_keywords PASSED [ 63%] 100s tests/test_api_jws.py::TestJWS::test_encode_fails_on_invalid_kid_types PASSED [ 63%] 100s tests/test_api_jws.py::TestJWS::test_encode_decode_with_detached_content PASSED [ 64%] 100s tests/test_api_jws.py::TestJWS::test_encode_detached_content_with_b64_header PASSED [ 64%] 100s tests/test_api_jws.py::TestJWS::test_decode_detached_content_without_proper_argument PASSED [ 64%] 100s tests/test_api_jws.py::TestJWS::test_decode_warns_on_unsupported_kwarg PASSED [ 65%] 100s tests/test_api_jws.py::TestJWS::test_decode_complete_warns_on_unuspported_kwarg PASSED [ 65%] 100s tests/test_api_jwt.py::TestJWT::test_decodes_valid_jwt PASSED [ 66%] 100s tests/test_api_jwt.py::TestJWT::test_decodes_complete_valid_jwt PASSED [ 66%] 100s tests/test_api_jwt.py::TestJWT::test_load_verify_valid_jwt PASSED [ 66%] 100s tests/test_api_jwt.py::TestJWT::test_decode_invalid_payload_string PASSED [ 67%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_non_mapping_payload_throws_exception PASSED [ 67%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_audience_param_throws_exception PASSED [ 67%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_nonlist_aud_claim_throws_exception PASSED [ 68%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_invalid_aud_list_member_throws_exception PASSED [ 68%] 100s tests/test_api_jwt.py::TestJWT::test_encode_bad_type PASSED [ 69%] 100s tests/test_api_jwt.py::TestJWT::test_encode_with_typ PASSED [ 69%] 100s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_exp_is_not_int PASSED [ 69%] 100s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_iat_is_not_int PASSED [ 70%] 100s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_iat_is_greater_than_now PASSED [ 70%] 100s tests/test_api_jwt.py::TestJWT::test_decode_works_if_iat_is_str_of_a_number PASSED [ 71%] 100s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_nbf_is_not_int PASSED [ 71%] 100s tests/test_api_jwt.py::TestJWT::test_decode_raises_exception_if_aud_is_none PASSED [ 71%] 100s tests/test_api_jwt.py::TestJWT::test_encode_datetime PASSED [ 72%] 100s tests/test_api_jwt.py::TestJWT::test_decodes_valid_es256_jwt PASSED [ 72%] 100s tests/test_api_jwt.py::TestJWT::test_decodes_valid_rs384_jwt PASSED [ 73%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_expiration PASSED [ 73%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_notbefore PASSED [ 73%] 100s tests/test_api_jwt.py::TestJWT::test_decode_skip_expiration_verification PASSED [ 74%] 100s tests/test_api_jwt.py::TestJWT::test_decode_skip_notbefore_verification PASSED [ 74%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_expiration_with_leeway PASSED [ 75%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_notbefore_with_leeway PASSED [ 75%] 100s tests/test_api_jwt.py::TestJWT::test_check_audience_when_valid PASSED [ 75%] 100s tests/test_api_jwt.py::TestJWT::test_check_audience_list_when_valid PASSED [ 76%] 100s tests/test_api_jwt.py::TestJWT::test_check_audience_none_specified PASSED [ 76%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience_list PASSED [ 76%] 100s tests/test_api_jwt.py::TestJWT::test_check_audience_in_array_when_valid PASSED [ 77%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience PASSED [ 77%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_audience_as_bytes PASSED [ 78%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_audience_in_array PASSED [ 78%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_token_without_issuer PASSED [ 78%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_token_without_audience PASSED [ 79%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_token_with_aud_none_and_without_audience PASSED [ 79%] 100s tests/test_api_jwt.py::TestJWT::test_check_issuer_when_valid PASSED [ 80%] 100s tests/test_api_jwt.py::TestJWT::test_raise_exception_invalid_issuer PASSED [ 80%] 100s tests/test_api_jwt.py::TestJWT::test_skip_check_audience PASSED [ 80%] 100s tests/test_api_jwt.py::TestJWT::test_skip_check_exp PASSED [ 81%] 100s tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_exp_required_but_not_present PASSED [ 81%] 100s tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_iat_required_but_not_present PASSED [ 82%] 100s tests/test_api_jwt.py::TestJWT::test_decode_should_raise_error_if_nbf_required_but_not_present PASSED [ 82%] 100s tests/test_api_jwt.py::TestJWT::test_skip_check_signature PASSED [ 82%] 100s tests/test_api_jwt.py::TestJWT::test_skip_check_iat PASSED [ 83%] 100s tests/test_api_jwt.py::TestJWT::test_skip_check_nbf PASSED [ 83%] 100s tests/test_api_jwt.py::TestJWT::test_custom_json_encoder PASSED [ 83%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_verify_exp_option PASSED [ 84%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_verify_exp_option_and_signature_off PASSED [ 84%] 100s tests/test_api_jwt.py::TestJWT::test_decode_with_optional_algorithms PASSED [ 85%] 100s tests/test_api_jwt.py::TestJWT::test_decode_no_algorithms_verify_signature_false PASSED [ 85%] 100s tests/test_api_jwt.py::TestJWT::test_decode_legacy_verify_warning PASSED [ 85%] 100s tests/test_api_jwt.py::TestJWT::test_decode_no_options_mutation PASSED [ 86%] 100s tests/test_api_jwt.py::TestJWT::test_decode_warns_on_unsupported_kwarg PASSED [ 86%] 100s tests/test_api_jwt.py::TestJWT::test_decode_complete_warns_on_unsupported_kwarg PASSED [ 87%] 100s tests/test_compressed_jwt.py::test_decodes_complete_valid_jwt_with_compressed_payload PASSED [ 87%] 100s tests/test_exceptions.py::test_missing_required_claim_error_has_proper_str PASSED [ 87%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_fetch_data_forwards_headers_to_correct_url PASSED [ 88%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwk_set PASSED [ 88%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys PASSED [ 89%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys_if_no_use_provided PASSED [ 89%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_keys_raises_if_none_found PASSED [ 89%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key PASSED [ 90%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_caches_result PASSED [ 90%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_does_not_cache_opt_out PASSED [ 91%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_signing_key_from_jwt PASSED [ 91%] 100s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwk_set_caches_result PASSED [ 91%] 102s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_cache_expired_result PASSED [ 92%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_cache_disabled PASSED [ 92%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_failed_request_should_clear_cache PASSED [ 92%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_failed_request_should_raise_connection_error PASSED [ 93%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_refresh_cache PASSED [ 93%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_no_matching_kid_after_second_attempt PASSED [ 94%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_invalid_lifespan PASSED [ 94%] 104s tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_timeout PASSED [ 94%] 104s tests/test_jwt.py::test_encode_decode PASSED [ 95%] 104s tests/test_utils.py::test_to_base64url_uint[0-AA] PASSED [ 95%] 104s tests/test_utils.py::test_to_base64url_uint[1-AQ] PASSED [ 96%] 104s tests/test_utils.py::test_to_base64url_uint[255-_w] PASSED [ 96%] 104s tests/test_utils.py::test_to_base64url_uint[65537-AQAB] PASSED [ 96%] 104s tests/test_utils.py::test_to_base64url_uint[123456789-B1vNFQ] PASSED [ 97%] 104s tests/test_utils.py::test_to_base64url_uint[-1-] XFAIL [ 97%] 104s tests/test_utils.py::test_from_base64url_uint[AA-0] PASSED [ 98%] 104s tests/test_utils.py::test_from_base64url_uint[AQ-1] PASSED [ 98%] 104s tests/test_utils.py::test_from_base64url_uint[_w-255] PASSED [ 98%] 104s tests/test_utils.py::test_from_base64url_uint[AQAB-65537] PASSED [ 99%] 104s tests/test_utils.py::test_from_base64url_uint[B1vNFQ-123456789] PASSED [ 99%] 104s tests/test_utils.py::test_force_bytes_raises_error_on_invalid_object PASSED [100%] 104s 104s =========================== short test summary info ============================ 104s SKIPPED [1] tests/test_api_jwk.py:200: Requires cryptography library not installed 104s SKIPPED [1] tests/test_api_jws.py:387: Requires cryptography library not installed 104s ================== 253 passed, 2 skipped, 1 xfailed in 5.19s =================== 105s autopkgtest [14:09:19]: test python3-jwt: -----------------------] 105s python3-jwt PASS 105s autopkgtest [14:09:19]: test python3-jwt: - - - - - - - - - - results - - - - - - - - - - 106s autopkgtest [14:09:20]: @@@@@@@@@@@@@@@@@@@@ summary 106s python3-jwt PASS 136s nova [W] Skipping flock for amd64 136s Creating nova instance adt-plucky-amd64-pyjwt-20250108-140734-juju-7f2275-prod-proposed-migration-environment-2-6d0e6d87-fca5-406c-9fbe-f487c0bda162 from image adt/ubuntu-plucky-amd64-server-20250108.img (UUID 99ddef43-3911-4ae7-933a-ef999fcbb876)... 136s nova [W] Timed out waiting for 94f3836b-9d78-46e1-825d-cfa8fcf59b95 to get deleted.