0s autopkgtest [13:54:28]: starting date and time: 2025-01-09 13:54:28+0000 0s autopkgtest [13:54:28]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [13:54:28]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.ykp6inop/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pass-audit --apt-upgrade pass-audit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=pass-audit/1.2-1.2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-arm64-35.secgroup --name adt-plucky-arm64-pass-audit-20250109-135428-juju-7f2275-prod-proposed-migration-environment-2-dc1e953b-cc97-4a32-ac53-169bfdfd2ce3 --image adt/ubuntu-plucky-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration -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/ 108s autopkgtest [13:56:16]: testbed dpkg architecture: arm64 108s autopkgtest [13:56:16]: testbed apt version: 2.9.18 109s autopkgtest [13:56:17]: @@@@@@@@@@@@@@@@@@@@ test bed setup 109s autopkgtest [13:56:17]: testbed release detected to be: None 110s autopkgtest [13:56:18]: updating testbed package index (apt update) 110s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 110s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 110s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 110s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 111s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [127 kB] 111s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.6 kB] 111s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [760 kB] 111s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9708 B] 111s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 Packages [243 kB] 111s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted arm64 Packages [57.8 kB] 111s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 Packages [978 kB] 111s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 Packages [11.7 kB] 111s Fetched 2278 kB in 1s (1718 kB/s) 113s Reading package lists... 113s + lsb_release --codename --short 113s + RELEASE=plucky 113s + cat 113s + [ plucky != trusty ] 113s + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y --allow-downgrades -o Dpkg::Options::=--force-confnew dist-upgrade 113s Reading package lists... 114s Building dependency tree... 114s Reading state information... 114s Calculating upgrade... 115s The following packages will be upgraded: 115s libgpgme11t64 python3-oauthlib 115s 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 115s Need to get 232 kB of archives. 115s After this operation, 0 B of additional disk space will be used. 115s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 libgpgme11t64 arm64 1.24.1-2ubuntu1 [142 kB] 115s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-oauthlib all 3.2.2-3 [89.9 kB] 116s Fetched 232 kB in 0s (536 kB/s) 116s (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 ... 80185 files and directories currently installed.) 116s Preparing to unpack .../libgpgme11t64_1.24.1-2ubuntu1_arm64.deb ... 116s Unpacking libgpgme11t64:arm64 (1.24.1-2ubuntu1) over (1.24.0-2ubuntu1) ... 116s Preparing to unpack .../python3-oauthlib_3.2.2-3_all.deb ... 116s Unpacking python3-oauthlib (3.2.2-3) over (3.2.2-2) ... 116s Setting up python3-oauthlib (3.2.2-3) ... 117s Setting up libgpgme11t64:arm64 (1.24.1-2ubuntu1) ... 117s Processing triggers for libc-bin (2.40-4ubuntu1) ... 117s + rm /etc/apt/preferences.d/force-downgrade-to-release.pref 117s + /usr/lib/apt/apt-helper analyze-pattern ?true 117s + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y purge --autoremove ?obsolete 117s Reading package lists... 117s Building dependency tree... 117s Reading state information... 118s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 118s + grep -q trusty /etc/lsb-release 118s + [ ! -d /usr/share/doc/unattended-upgrades ] 118s + [ ! -d /usr/share/doc/lxd ] 118s + [ ! -d /usr/share/doc/lxd-client ] 118s + [ ! -d /usr/share/doc/snapd ] 118s + type iptables 118s + cat 118s + chmod 755 /etc/rc.local 118s + . /etc/rc.local 118s + iptables -w -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 118s + iptables -A OUTPUT -d 10.255.255.1/32 -p tcp -j DROP 118s + iptables -A OUTPUT -d 10.255.255.2/32 -p tcp -j DROP 118s + uname -m 118s + [ aarch64 = ppc64le ] 118s + [ -d /run/systemd/system ] 118s + systemd-detect-virt --quiet --vm 118s + mkdir -p /etc/systemd/system/systemd-random-seed.service.d/ 118s + cat 118s + grep -q lz4 /etc/initramfs-tools/initramfs.conf 118s + echo COMPRESS=lz4 118s autopkgtest [13:56:26]: upgrading testbed (apt dist-upgrade and autopurge) 118s Reading package lists... 119s Building dependency tree... 119s Reading state information... 120s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 121s Starting 2 pkgProblemResolver with broken count: 0 121s Done 122s Entering ResolveByKeep 123s 124s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 125s Reading package lists... 126s Building dependency tree... 126s Reading state information... 127s Starting pkgProblemResolver with broken count: 0 127s Starting 2 pkgProblemResolver with broken count: 0 127s Done 129s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 132s autopkgtest [13:56:40]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 14:19:41 UTC 2024 132s autopkgtest [13:56:40]: @@@@@@@@@@@@@@@@@@@@ apt-source pass-audit 134s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (dsc) [2160 B] 134s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (tar) [56.6 kB] 134s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (asc) [963 B] 134s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (diff) [4328 B] 134s gpgv: Signature made Sun Sep 8 17:32:35 2024 UTC 134s gpgv: using RSA key 406220C8B8552802378CCE411F5C7A8B45564314 134s gpgv: issuer "bage@debian.org" 134s gpgv: Can't check signature: No public key 134s dpkg-source: warning: cannot verify inline signature for ./pass-audit_1.2-1.2.dsc: no acceptable signature found 134s autopkgtest [13:56:42]: testing package pass-audit version 1.2-1.2 134s autopkgtest [13:56:42]: build not needed 135s autopkgtest [13:56:43]: test unittests: preparing testbed 135s Reading package lists... 136s Building dependency tree... 136s Reading state information... 136s Starting pkgProblemResolver with broken count: 0 137s Starting 2 pkgProblemResolver with broken count: 0 137s Done 138s The following NEW packages will be installed: 138s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 138s libjs-jquery-metadata libjs-jquery-tablesorter 138s libjs-jquery-throttle-debounce libpython3.13-minimal libpython3.13-stdlib 138s pass pass-extension-audit python3-all python3-coverage python3-iniconfig 138s python3-packaging python3-pluggy python3-pytest python3-pytest-cov 138s python3-python-zxcvbn-rs-py python3.13 python3.13-minimal tree 138s 0 upgraded, 21 newly installed, 0 to remove and 0 not upgraded. 138s Need to get 8284 kB of archives. 138s After this operation, 36.1 MB of additional disk space will be used. 138s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3.13-minimal arm64 3.13.1-2 [879 kB] 139s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.13-minimal arm64 3.13.1-2 [2262 kB] 139s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 139s Get:4 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 139s Get:5 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-metadata all 12-4 [6582 B] 139s Get:6 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 139s Get:7 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 139s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3.13-stdlib arm64 3.13.1-2 [2061 kB] 140s Get:9 http://ftpmaster.internal/ubuntu plucky/universe arm64 tree arm64 2.1.1-2ubuntu3 [46.0 kB] 140s Get:10 http://ftpmaster.internal/ubuntu plucky/universe arm64 pass all 1.7.4-7 [34.7 kB] 140s Get:11 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-python-zxcvbn-rs-py arm64 0.2.0-1 [1202 kB] 140s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 pass-extension-audit all 1.2-1.2 [15.8 kB] 140s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.13 arm64 3.13.1-2 [729 kB] 140s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-all arm64 3.12.8-1 [892 B] 140s Get:15 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-coverage arm64 7.4.4+dfsg1-0ubuntu3 [150 kB] 140s Get:16 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-iniconfig all 1.1.1-2 [6024 B] 140s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-packaging all 24.2-1 [51.5 kB] 140s Get:18 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pluggy all 1.5.0-1 [21.0 kB] 140s Get:19 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest all 8.3.4-1 [252 kB] 140s Get:20 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 140s Get:21 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 141s Fetched 8284 kB in 2s (4167 kB/s) 141s Selecting previously unselected package libpython3.13-minimal:arm64. 141s (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 ... 80185 files and directories currently installed.) 141s Preparing to unpack .../00-libpython3.13-minimal_3.13.1-2_arm64.deb ... 141s Unpacking libpython3.13-minimal:arm64 (3.13.1-2) ... 141s Selecting previously unselected package python3.13-minimal. 141s Preparing to unpack .../01-python3.13-minimal_3.13.1-2_arm64.deb ... 141s Unpacking python3.13-minimal (3.13.1-2) ... 141s Selecting previously unselected package libjs-jquery. 141s Preparing to unpack .../02-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 141s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 141s Selecting previously unselected package libjs-jquery-hotkeys. 141s Preparing to unpack .../03-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 141s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 141s Selecting previously unselected package libjs-jquery-metadata. 141s Preparing to unpack .../04-libjs-jquery-metadata_12-4_all.deb ... 141s Unpacking libjs-jquery-metadata (12-4) ... 141s Selecting previously unselected package libjs-jquery-tablesorter. 141s Preparing to unpack .../05-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 141s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 141s Selecting previously unselected package libjs-jquery-throttle-debounce. 141s Preparing to unpack .../06-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 141s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 141s Selecting previously unselected package libpython3.13-stdlib:arm64. 141s Preparing to unpack .../07-libpython3.13-stdlib_3.13.1-2_arm64.deb ... 141s Unpacking libpython3.13-stdlib:arm64 (3.13.1-2) ... 142s Selecting previously unselected package tree. 142s Preparing to unpack .../08-tree_2.1.1-2ubuntu3_arm64.deb ... 142s Unpacking tree (2.1.1-2ubuntu3) ... 142s Selecting previously unselected package pass. 142s Preparing to unpack .../09-pass_1.7.4-7_all.deb ... 142s Unpacking pass (1.7.4-7) ... 142s Selecting previously unselected package python3-python-zxcvbn-rs-py. 142s Preparing to unpack .../10-python3-python-zxcvbn-rs-py_0.2.0-1_arm64.deb ... 142s Unpacking python3-python-zxcvbn-rs-py (0.2.0-1) ... 142s Selecting previously unselected package pass-extension-audit. 142s Preparing to unpack .../11-pass-extension-audit_1.2-1.2_all.deb ... 142s Unpacking pass-extension-audit (1.2-1.2) ... 142s Selecting previously unselected package python3.13. 142s Preparing to unpack .../12-python3.13_3.13.1-2_arm64.deb ... 142s Unpacking python3.13 (3.13.1-2) ... 142s Selecting previously unselected package python3-all. 142s Preparing to unpack .../13-python3-all_3.12.8-1_arm64.deb ... 142s Unpacking python3-all (3.12.8-1) ... 142s Selecting previously unselected package python3-coverage. 142s Preparing to unpack .../14-python3-coverage_7.4.4+dfsg1-0ubuntu3_arm64.deb ... 142s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 142s Selecting previously unselected package python3-iniconfig. 142s Preparing to unpack .../15-python3-iniconfig_1.1.1-2_all.deb ... 142s Unpacking python3-iniconfig (1.1.1-2) ... 142s Selecting previously unselected package python3-packaging. 142s Preparing to unpack .../16-python3-packaging_24.2-1_all.deb ... 142s Unpacking python3-packaging (24.2-1) ... 142s Selecting previously unselected package python3-pluggy. 142s Preparing to unpack .../17-python3-pluggy_1.5.0-1_all.deb ... 142s Unpacking python3-pluggy (1.5.0-1) ... 142s Selecting previously unselected package python3-pytest. 142s Preparing to unpack .../18-python3-pytest_8.3.4-1_all.deb ... 142s Unpacking python3-pytest (8.3.4-1) ... 142s Selecting previously unselected package libjs-jquery-isonscreen. 142s Preparing to unpack .../19-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 142s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 142s Selecting previously unselected package python3-pytest-cov. 142s Preparing to unpack .../20-python3-pytest-cov_5.0.0-1_all.deb ... 142s Unpacking python3-pytest-cov (5.0.0-1) ... 142s Setting up python3-iniconfig (1.1.1-2) ... 143s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 143s Setting up libpython3.13-minimal:arm64 (3.13.1-2) ... 143s Setting up python3-packaging (24.2-1) ... 143s Setting up tree (2.1.1-2ubuntu3) ... 143s Setting up pass (1.7.4-7) ... 143s Setting up python3-pluggy (1.5.0-1) ... 144s Setting up python3.13-minimal (3.13.1-2) ... 145s Setting up python3-python-zxcvbn-rs-py (0.2.0-1) ... 145s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 145s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 145s Setting up libpython3.13-stdlib:arm64 (3.13.1-2) ... 145s Setting up python3.13 (3.13.1-2) ... 147s Setting up python3-pytest (8.3.4-1) ... 148s Setting up pass-extension-audit (1.2-1.2) ... 148s Setting up python3-all (3.12.8-1) ... 148s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 149s Setting up libjs-jquery-metadata (12-4) ... 149s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 149s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 149s Setting up python3-pytest-cov (5.0.0-1) ... 149s Processing triggers for man-db (2.13.0-1) ... 150s Processing triggers for systemd (257-2ubuntu1) ... 151s autopkgtest [13:56:59]: test unittests: [----------------------- 153s ============================= test session starts ============================== 153s platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 153s rootdir: /tmp/autopkgtest.gbBboj/autopkgtest_tmp 153s plugins: cov-5.0.0, typeguard-4.4.1 153s collected 42 items 153s 154s tests/test_audit.py .....FF [ 16%] 156s tests/test_main.py .....FFFFF.. [ 45%] 156s tests/test_msg.py ........ [ 64%] 157s tests/test_pass.py .............. [ 97%] 157s tests/test_pwned.py . [100%] 157s 157s =================================== FAILURES =================================== 157s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 157s 157s self = 157s 157s def test_zxcvbn_strong(self): 157s """Testing: pass audit for strong password with zxcvbn.""" 157s data = tests.getdata('Password/good') 157s audit = pass_audit.audit.PassAudit(data, True) 157s > weak = audit.zxcvbn() 157s 157s tests/test_audit.py:51: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ----------------------------- Captured stdout call ----------------------------- 157s Checking Password/good/1 157s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 157s 157s self = 157s 157s def test_zxcvbn_weak(self): 157s """Testing: pass audit for weak password with zxcvbn.""" 157s data = tests.getdata('Password/pwned/1') 157s audit = pass_audit.audit.PassAudit(data, True) 157s > weak = audit.zxcvbn() 157s 157s tests/test_audit.py:43: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ----------------------------- Captured stdout call ----------------------------- 157s Checking Password/pwned/1 157s _______________________ TestMain.test_main_passwords_all _______________________ 157s 157s self = 157s 157s @mock.patch('requests.get', tests.mock_request) 157s def test_main_passwords_all(self): 157s """Testing: pass audit .""" 157s cmd = [''] 157s > self.main(cmd) 157s 157s tests/test_main.py:104: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s tests/__init__.py:129: in main 157s pass_audit.__main__.main() 157s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 157s weak = audit.zxcvbn() 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ----------------------------- Captured stdout call ----------------------------- 157s  . Auditing whole store - this may take some time 157s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.gbBboj/autopkgtest_tmp/tests/assets/gnupg' 157s gpg: decrypt_message failed: Unknown system error 157s  157s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 157s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 157s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 157s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 157s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 157s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 157s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 157s ____________________ TestMain.test_main_passwords_duplicate ____________________ 157s 157s self = 157s 157s @mock.patch('requests.get', tests.mock_request) 157s def test_main_passwords_duplicate(self): 157s """Testing: pass audit for duplicates.""" 157s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 157s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 157s cmd = ['Password/good'] 157s > self.main(cmd) 157s 157s tests/test_main.py:91: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s tests/__init__.py:129: in main 157s pass_audit.__main__.main() 157s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 157s weak = audit.zxcvbn() 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ______________________ TestMain.test_main_passwords_good _______________________ 157s 157s self = 157s 157s @mock.patch('requests.get', tests.mock_request) 157s def test_main_passwords_good(self): 157s """Testing: pass audit Password/good.""" 157s cmd = ['Password/good'] 157s > self.main(cmd) 157s 157s tests/test_main.py:98: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s tests/__init__.py:129: in main 157s pass_audit.__main__.main() 157s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 157s weak = audit.zxcvbn() 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ____________________ TestMain.test_main_passwords_notpwned _____________________ 157s 157s self = 157s 157s @mock.patch('requests.get', tests.mock_request) 157s def test_main_passwords_notpwned(self): 157s """Testing: pass audit Password/notpwned.""" 157s cmd = ['Password/notpwned'] 157s > self.main(cmd) 157s 157s tests/test_main.py:77: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s tests/__init__.py:129: in main 157s pass_audit.__main__.main() 157s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 157s weak = audit.zxcvbn() 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ______________________ TestMain.test_main_passwords_pwned ______________________ 157s 157s self = 157s 157s @mock.patch('requests.get', tests.mock_request) 157s def test_main_passwords_pwned(self): 157s """Testing: pass audit Password/pwned.""" 157s cmd = ['Password/pwned'] 157s > self.main(cmd) 157s 157s tests/test_main.py:83: 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s tests/__init__.py:129: in main 157s pass_audit.__main__.main() 157s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 157s weak = audit.zxcvbn() 157s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157s 157s self = 157s 157s def zxcvbn(self): 157s """Password strength estimaton usuing Dropbox' zxcvbn.""" 157s if not ZXCVBN: 157s raise ImportError(name='zxcvbn') 157s 157s weak = [] 157s for path, entry in self.data.items(): 157s if self.verbose: 157s print(f"Checking {path}") 157s if entry.get('password', '') == '': 157s continue 157s password = entry['password'] 157s user_input = list(entry.values()) + path.split(os.sep) 157s if password in user_input: 157s user_input.remove(password) 157s results = zxcvbn(password, user_inputs=user_input) 157s > if results['score'] <= 2: 157s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 157s 157s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 157s ----------------------------- Captured stdout call ----------------------------- 157s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 157s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 157s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 157s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 157s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 157s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 157s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 157s 157s ---------- coverage: platform linux, python 3.13.1-final-0 ----------- 157s Name Stmts Miss Branch BrPart Cover Missing 157s -------------------------------------------------------------------------------------------------------- 157s /usr/lib/python3/dist-packages/pass_audit/__init__.py 10 0 0 0 100% 157s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 157s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 157s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 157s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 157s -------------------------------------------------------------------------------------------------------- 157s TOTAL 326 27 124 13 89% 157s 157s FAIL Required test coverage of 94% not reached. Total coverage: 89.33% 157s =========================== short test summary info ============================ 157s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 157s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 157s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 157s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 157s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 157s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 157s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 157s ========================= 7 failed, 35 passed in 4.85s ========================= 162s ============================= test session starts ============================== 162s platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 162s rootdir: /tmp/autopkgtest.gbBboj/autopkgtest_tmp 162s plugins: cov-5.0.0, typeguard-4.4.1 162s collected 42 items 162s 164s tests/test_audit.py .....FF [ 16%] 166s tests/test_main.py .....FFFFF.. [ 45%] 166s tests/test_msg.py ........ [ 64%] 166s tests/test_pass.py .............. [ 97%] 166s tests/test_pwned.py . [100%] 166s 166s =================================== FAILURES =================================== 166s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 166s 166s self = 166s 166s def test_zxcvbn_strong(self): 166s """Testing: pass audit for strong password with zxcvbn.""" 166s data = tests.getdata('Password/good') 166s audit = pass_audit.audit.PassAudit(data, True) 166s > weak = audit.zxcvbn() 166s 166s tests/test_audit.py:51: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ----------------------------- Captured stdout call ----------------------------- 166s Checking Password/good/1 166s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 166s 166s self = 166s 166s def test_zxcvbn_weak(self): 166s """Testing: pass audit for weak password with zxcvbn.""" 166s data = tests.getdata('Password/pwned/1') 166s audit = pass_audit.audit.PassAudit(data, True) 166s > weak = audit.zxcvbn() 166s 166s tests/test_audit.py:43: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ----------------------------- Captured stdout call ----------------------------- 166s Checking Password/pwned/1 166s _______________________ TestMain.test_main_passwords_all _______________________ 166s 166s self = 166s 166s @mock.patch('requests.get', tests.mock_request) 166s def test_main_passwords_all(self): 166s """Testing: pass audit .""" 166s cmd = [''] 166s > self.main(cmd) 166s 166s tests/test_main.py:104: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/__init__.py:129: in main 166s pass_audit.__main__.main() 166s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 166s weak = audit.zxcvbn() 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ----------------------------- Captured stdout call ----------------------------- 166s  . Auditing whole store - this may take some time 166s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.gbBboj/autopkgtest_tmp/tests/assets/gnupg' 166s gpg: decrypt_message failed: Unknown system error 166s  166s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 166s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 166s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 166s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 166s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 166s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 166s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 166s ____________________ TestMain.test_main_passwords_duplicate ____________________ 166s 166s self = 166s 166s @mock.patch('requests.get', tests.mock_request) 166s def test_main_passwords_duplicate(self): 166s """Testing: pass audit for duplicates.""" 166s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 166s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 166s cmd = ['Password/good'] 166s > self.main(cmd) 166s 166s tests/test_main.py:91: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/__init__.py:129: in main 166s pass_audit.__main__.main() 166s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 166s weak = audit.zxcvbn() 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ______________________ TestMain.test_main_passwords_good _______________________ 166s 166s self = 166s 166s @mock.patch('requests.get', tests.mock_request) 166s def test_main_passwords_good(self): 166s """Testing: pass audit Password/good.""" 166s cmd = ['Password/good'] 166s > self.main(cmd) 166s 166s tests/test_main.py:98: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/__init__.py:129: in main 166s pass_audit.__main__.main() 166s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 166s weak = audit.zxcvbn() 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ____________________ TestMain.test_main_passwords_notpwned _____________________ 166s 166s self = 166s 166s @mock.patch('requests.get', tests.mock_request) 166s def test_main_passwords_notpwned(self): 166s """Testing: pass audit Password/notpwned.""" 166s cmd = ['Password/notpwned'] 166s > self.main(cmd) 166s 166s tests/test_main.py:77: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/__init__.py:129: in main 166s pass_audit.__main__.main() 166s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 166s weak = audit.zxcvbn() 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ______________________ TestMain.test_main_passwords_pwned ______________________ 166s 166s self = 166s 166s @mock.patch('requests.get', tests.mock_request) 166s def test_main_passwords_pwned(self): 166s """Testing: pass audit Password/pwned.""" 166s cmd = ['Password/pwned'] 166s > self.main(cmd) 166s 166s tests/test_main.py:83: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/__init__.py:129: in main 166s pass_audit.__main__.main() 166s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 166s weak = audit.zxcvbn() 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = 166s 166s def zxcvbn(self): 166s """Password strength estimaton usuing Dropbox' zxcvbn.""" 166s if not ZXCVBN: 166s raise ImportError(name='zxcvbn') 166s 166s weak = [] 166s for path, entry in self.data.items(): 166s if self.verbose: 166s print(f"Checking {path}") 166s if entry.get('password', '') == '': 166s continue 166s password = entry['password'] 166s user_input = list(entry.values()) + path.split(os.sep) 166s if password in user_input: 166s user_input.remove(password) 166s results = zxcvbn(password, user_inputs=user_input) 166s > if results['score'] <= 2: 166s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 166s 166s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 166s ----------------------------- Captured stdout call ----------------------------- 166s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 166s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 166s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 166s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 166s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 166s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 166s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 166s 166s ---------- coverage: platform linux, python 3.12.8-final-0 ----------- 166s Name Stmts Miss Branch BrPart Cover Missing 166s -------------------------------------------------------------------------------------------------------- 166s /usr/lib/python3/dist-packages/pass_audit/__init__.py 10 0 0 0 100% 166s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 166s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 166s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 166s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 166s -------------------------------------------------------------------------------------------------------- 166s TOTAL 326 27 124 13 89% 166s 166s FAIL Required test coverage of 94% not reached. Total coverage: 89.33% 166s =========================== short test summary info ============================ 166s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 166s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 166s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 166s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 166s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 166s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 166s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 166s ========================= 7 failed, 35 passed in 8.74s ========================= 167s autopkgtest [13:57:15]: test unittests: -----------------------] 168s autopkgtest [13:57:16]: test unittests: - - - - - - - - - - results - - - - - - - - - - 168s unittests FAIL non-zero exit status 1 168s autopkgtest [13:57:16]: @@@@@@@@@@@@@@@@@@@@ summary 168s unittests FAIL non-zero exit status 1 186s nova [W] Using flock in prodstack6-arm64 186s Creating nova instance adt-plucky-arm64-pass-audit-20250109-135428-juju-7f2275-prod-proposed-migration-environment-2-dc1e953b-cc97-4a32-ac53-169bfdfd2ce3 from image adt/ubuntu-plucky-arm64-server-20250108.img (UUID 053f5e9f-d810-4aac-9e57-cf8ac63865d2)... 186s nova [W] Timed out waiting for 5840e9b3-3662-4054-85cc-406f0d0eb668 to get deleted.