0s autopkgtest [04:24:37]: starting date and time: 2025-02-19 04:24:37+0000 0s autopkgtest [04:24:37]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [04:24:37]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.9_pbj83g/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-15@bos03-arm64-42.secgroup --name adt-plucky-arm64-pass-audit-20250219-042436-juju-7f2275-prod-proposed-migration-environment-15-069d6f65-2ad6-429e-8111-b41ac443b215 --image adt/ubuntu-plucky-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --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/ 140s autopkgtest [04:26:57]: testbed dpkg architecture: arm64 140s autopkgtest [04:26:57]: testbed apt version: 2.9.29 141s autopkgtest [04:26:58]: @@@@@@@@@@@@@@@@@@@@ test bed setup 141s autopkgtest [04:26:58]: testbed release detected to be: None 142s autopkgtest [04:26:59]: updating testbed package index (apt update) 142s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [110 kB] 143s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 143s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 143s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 143s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [788 kB] 143s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [3120 B] 143s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [79.1 kB] 143s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [14.6 kB] 143s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 Packages [97.6 kB] 143s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted arm64 Packages [7960 B] 143s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 Packages [698 kB] 143s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 Packages [12.1 kB] 143s Fetched 1811 kB in 1s (1865 kB/s) 145s Reading package lists... 145s + lsb_release --codename --short 145s + RELEASE=plucky 145s + cat 145s + [ plucky != trusty ] 145s + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y --allow-downgrades -o Dpkg::Options::=--force-confnew dist-upgrade 145s Reading package lists... 146s Building dependency tree... 146s Reading state information... 148s Calculating upgrade... 149s The following packages will be upgraded: 149s dhcpcd-base 149s 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 149s Need to get 216 kB of archives. 149s After this operation, 0 B of additional disk space will be used. 149s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 dhcpcd-base arm64 1:10.1.0-7 [216 kB] 150s Fetched 216 kB in 0s (485 kB/s) 150s (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 ... 116620 files and directories currently installed.) 150s Preparing to unpack .../dhcpcd-base_1%3a10.1.0-7_arm64.deb ... 150s Unpacking dhcpcd-base (1:10.1.0-7) over (1:10.1.0-6) ... 150s Setting up dhcpcd-base (1:10.1.0-7) ... 150s Processing triggers for man-db (2.13.0-1) ... 152s + rm /etc/apt/preferences.d/force-downgrade-to-release.pref 152s + /usr/lib/apt/apt-helper analyze-pattern ?true 152s + uname -r 152s + sed s/\./\\./g 152s + running_kernel_pattern=^linux-.*6\.12\.0-15-generic.* 152s + apt list ?obsolete 152s + tail -n+2 152s + cut -d/ -f1 152s + grep -v ^linux-.*6\.12\.0-15-generic.* 152s + true 152s + obsolete_pkgs= 152s + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y purge --autoremove 152s Reading package lists... 153s Building dependency tree... 153s Reading state information... 154s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 154s + grep -q trusty /etc/lsb-release 154s + [ ! -d /usr/share/doc/unattended-upgrades ] 154s + [ ! -d /usr/share/doc/lxd ] 154s + [ ! -d /usr/share/doc/lxd-client ] 154s + [ ! -d /usr/share/doc/snapd ] 154s + type iptables 154s + cat 154s + chmod 755 /etc/rc.local 154s + . /etc/rc.local 154s + iptables -w -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 154s + iptables -A OUTPUT -d 10.255.255.1/32 -p tcp -j DROP 154s + iptables -A OUTPUT -d 10.255.255.2/32 -p tcp -j DROP 154s + uname -m 154s + [ aarch64 = ppc64le ] 154s + [ -d /run/systemd/system ] 154s + systemd-detect-virt --quiet --vm 154s + mkdir -p /etc/systemd/system/systemd-random-seed.service.d/ 154s + cat 154s + grep -q lz4 /etc/initramfs-tools/initramfs.conf 154s + echo COMPRESS=lz4 154s autopkgtest [04:27:11]: upgrading testbed (apt dist-upgrade and autopurge) 154s Reading package lists... 155s Building dependency tree... 155s Reading state information... 156s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 156s Starting 2 pkgProblemResolver with broken count: 0 156s Done 158s Entering ResolveByKeep 158s 159s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 160s Reading package lists... 160s Building dependency tree... 160s Reading state information... 161s Starting pkgProblemResolver with broken count: 0 161s Starting 2 pkgProblemResolver with broken count: 0 161s Done 163s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 166s autopkgtest [04:27:23]: testbed running kernel: Linux 6.12.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 4 15:49:33 UTC 2025 166s autopkgtest [04:27:23]: @@@@@@@@@@@@@@@@@@@@ apt-source pass-audit 168s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (dsc) [2160 B] 168s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (tar) [56.6 kB] 168s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (asc) [963 B] 168s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (diff) [4328 B] 168s gpgv: Signature made Sun Sep 8 17:32:35 2024 UTC 168s gpgv: using RSA key 406220C8B8552802378CCE411F5C7A8B45564314 168s gpgv: issuer "bage@debian.org" 168s gpgv: Can't check signature: No public key 168s dpkg-source: warning: cannot verify inline signature for ./pass-audit_1.2-1.2.dsc: no acceptable signature found 169s autopkgtest [04:27:26]: testing package pass-audit version 1.2-1.2 169s autopkgtest [04:27:26]: build not needed 169s autopkgtest [04:27:26]: test unittests: preparing testbed 170s Reading package lists... 170s Building dependency tree... 170s Reading state information... 171s Starting pkgProblemResolver with broken count: 0 171s Starting 2 pkgProblemResolver with broken count: 0 171s Done 173s The following NEW packages will be installed: 173s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 173s libjs-jquery-metadata libjs-jquery-tablesorter 173s libjs-jquery-throttle-debounce pass pass-extension-audit python3-all 173s python3-coverage python3-iniconfig python3-packaging python3-pluggy 173s python3-pytest python3-pytest-cov python3-python-zxcvbn-rs-py python3.12 173s python3.12-minimal tree 173s 0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded. 173s Need to get 5262 kB of archives. 173s After this operation, 20.4 MB of additional disk space will be used. 173s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.12-minimal arm64 3.12.9-1 [2236 kB] 174s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.12 arm64 3.12.9-1 [671 kB] 175s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 175s Get:4 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-metadata all 12-4 [6582 B] 175s Get:5 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 175s Get:6 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 175s Get:7 http://ftpmaster.internal/ubuntu plucky/universe arm64 tree arm64 2.1.1-2ubuntu3 [46.0 kB] 175s Get:8 http://ftpmaster.internal/ubuntu plucky/universe arm64 pass all 1.7.4-7 [34.7 kB] 175s Get:9 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-python-zxcvbn-rs-py arm64 0.2.0-1 [1202 kB] 175s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 pass-extension-audit all 1.2-1.2 [15.8 kB] 175s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-all arm64 3.13.1-1~exp2 [894 B] 175s Get:12 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-coverage arm64 7.4.4+dfsg1-0ubuntu3 [150 kB] 175s Get:13 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-iniconfig all 1.1.1-2 [6024 B] 175s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-packaging all 24.2-1 [51.5 kB] 175s Get:15 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pluggy all 1.5.0-1 [21.0 kB] 175s Get:16 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest all 8.3.4-1 [252 kB] 175s Get:17 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 175s Get:18 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 175s Get:19 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 176s Fetched 5262 kB in 2s (2594 kB/s) 176s Selecting previously unselected package python3.12-minimal. 176s (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 ... 116620 files and directories currently installed.) 176s Preparing to unpack .../00-python3.12-minimal_3.12.9-1_arm64.deb ... 176s Unpacking python3.12-minimal (3.12.9-1) ... 176s Selecting previously unselected package python3.12. 176s Preparing to unpack .../01-python3.12_3.12.9-1_arm64.deb ... 176s Unpacking python3.12 (3.12.9-1) ... 176s Selecting previously unselected package libjs-jquery. 176s Preparing to unpack .../02-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 176s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 176s Selecting previously unselected package libjs-jquery-metadata. 176s Preparing to unpack .../03-libjs-jquery-metadata_12-4_all.deb ... 176s Unpacking libjs-jquery-metadata (12-4) ... 176s Selecting previously unselected package libjs-jquery-tablesorter. 176s Preparing to unpack .../04-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 176s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 176s Selecting previously unselected package libjs-jquery-throttle-debounce. 176s Preparing to unpack .../05-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 176s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 176s Selecting previously unselected package tree. 176s Preparing to unpack .../06-tree_2.1.1-2ubuntu3_arm64.deb ... 176s Unpacking tree (2.1.1-2ubuntu3) ... 176s Selecting previously unselected package pass. 176s Preparing to unpack .../07-pass_1.7.4-7_all.deb ... 176s Unpacking pass (1.7.4-7) ... 177s Selecting previously unselected package python3-python-zxcvbn-rs-py. 177s Preparing to unpack .../08-python3-python-zxcvbn-rs-py_0.2.0-1_arm64.deb ... 177s Unpacking python3-python-zxcvbn-rs-py (0.2.0-1) ... 177s Selecting previously unselected package pass-extension-audit. 177s Preparing to unpack .../09-pass-extension-audit_1.2-1.2_all.deb ... 177s Unpacking pass-extension-audit (1.2-1.2) ... 177s Selecting previously unselected package python3-all. 177s Preparing to unpack .../10-python3-all_3.13.1-1~exp2_arm64.deb ... 177s Unpacking python3-all (3.13.1-1~exp2) ... 177s Selecting previously unselected package python3-coverage. 177s Preparing to unpack .../11-python3-coverage_7.4.4+dfsg1-0ubuntu3_arm64.deb ... 177s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 177s Selecting previously unselected package python3-iniconfig. 177s Preparing to unpack .../12-python3-iniconfig_1.1.1-2_all.deb ... 177s Unpacking python3-iniconfig (1.1.1-2) ... 177s Selecting previously unselected package python3-packaging. 177s Preparing to unpack .../13-python3-packaging_24.2-1_all.deb ... 177s Unpacking python3-packaging (24.2-1) ... 177s Selecting previously unselected package python3-pluggy. 177s Preparing to unpack .../14-python3-pluggy_1.5.0-1_all.deb ... 177s Unpacking python3-pluggy (1.5.0-1) ... 177s Selecting previously unselected package python3-pytest. 177s Preparing to unpack .../15-python3-pytest_8.3.4-1_all.deb ... 177s Unpacking python3-pytest (8.3.4-1) ... 177s Selecting previously unselected package libjs-jquery-hotkeys. 177s Preparing to unpack .../16-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 177s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 177s Selecting previously unselected package libjs-jquery-isonscreen. 177s Preparing to unpack .../17-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 177s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 177s Selecting previously unselected package python3-pytest-cov. 177s Preparing to unpack .../18-python3-pytest-cov_5.0.0-1_all.deb ... 177s Unpacking python3-pytest-cov (5.0.0-1) ... 178s Setting up python3-iniconfig (1.1.1-2) ... 178s Setting up python3.12-minimal (3.12.9-1) ... 179s Setting up python3.12 (3.12.9-1) ... 182s Setting up python3-all (3.13.1-1~exp2) ... 182s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 182s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 183s Setting up python3-packaging (24.2-1) ... 183s Setting up tree (2.1.1-2ubuntu3) ... 183s Setting up pass (1.7.4-7) ... 183s Setting up python3-pluggy (1.5.0-1) ... 183s Setting up python3-python-zxcvbn-rs-py (0.2.0-1) ... 184s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 184s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 184s Setting up python3-pytest (8.3.4-1) ... 185s Setting up pass-extension-audit (1.2-1.2) ... 186s Setting up libjs-jquery-metadata (12-4) ... 186s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 186s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 186s Setting up python3-pytest-cov (5.0.0-1) ... 186s Processing triggers for man-db (2.13.0-1) ... 186s Processing triggers for systemd (257.2-3ubuntu1) ... 208s autopkgtest [04:28:05]: test unittests: [----------------------- 216s ============================= test session starts ============================== 216s platform linux -- Python 3.12.9, pytest-8.3.4, pluggy-1.5.0 216s rootdir: /tmp/autopkgtest.mJlnQV/autopkgtest_tmp 216s plugins: typeguard-4.4.1, cov-5.0.0 216s collected 42 items 216s 216s tests/test_audit.py .....FF [ 16%] 217s tests/test_main.py .....FFFFF.. [ 45%] 217s tests/test_msg.py ........ [ 64%] 217s tests/test_pass.py .............. [ 97%] 218s tests/test_pwned.py . [100%] 218s 218s =================================== FAILURES =================================== 218s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 218s 218s self = 218s 218s def test_zxcvbn_strong(self): 218s """Testing: pass audit for strong password with zxcvbn.""" 218s data = tests.getdata('Password/good') 218s audit = pass_audit.audit.PassAudit(data, True) 218s > weak = audit.zxcvbn() 218s 218s tests/test_audit.py:51: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ----------------------------- Captured stdout call ----------------------------- 218s Checking Password/good/1 218s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 218s 218s self = 218s 218s def test_zxcvbn_weak(self): 218s """Testing: pass audit for weak password with zxcvbn.""" 218s data = tests.getdata('Password/pwned/1') 218s audit = pass_audit.audit.PassAudit(data, True) 218s > weak = audit.zxcvbn() 218s 218s tests/test_audit.py:43: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ----------------------------- Captured stdout call ----------------------------- 218s Checking Password/pwned/1 218s _______________________ TestMain.test_main_passwords_all _______________________ 218s 218s self = 218s 218s @mock.patch('requests.get', tests.mock_request) 218s def test_main_passwords_all(self): 218s """Testing: pass audit .""" 218s cmd = [''] 218s > self.main(cmd) 218s 218s tests/test_main.py:104: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s tests/__init__.py:129: in main 218s pass_audit.__main__.main() 218s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 218s weak = audit.zxcvbn() 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ----------------------------- Captured stdout call ----------------------------- 218s  . Auditing whole store - this may take some time 218s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.mJlnQV/autopkgtest_tmp/tests/assets/gnupg' 218s gpg: decrypt_message failed: Unknown system error 218s  218s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 218s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 218s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 218s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 218s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 218s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 218s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 218s ____________________ TestMain.test_main_passwords_duplicate ____________________ 218s 218s self = 218s 218s @mock.patch('requests.get', tests.mock_request) 218s def test_main_passwords_duplicate(self): 218s """Testing: pass audit for duplicates.""" 218s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 218s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 218s cmd = ['Password/good'] 218s > self.main(cmd) 218s 218s tests/test_main.py:91: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s tests/__init__.py:129: in main 218s pass_audit.__main__.main() 218s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 218s weak = audit.zxcvbn() 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ______________________ TestMain.test_main_passwords_good _______________________ 218s 218s self = 218s 218s @mock.patch('requests.get', tests.mock_request) 218s def test_main_passwords_good(self): 218s """Testing: pass audit Password/good.""" 218s cmd = ['Password/good'] 218s > self.main(cmd) 218s 218s tests/test_main.py:98: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s tests/__init__.py:129: in main 218s pass_audit.__main__.main() 218s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 218s weak = audit.zxcvbn() 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ____________________ TestMain.test_main_passwords_notpwned _____________________ 218s 218s self = 218s 218s @mock.patch('requests.get', tests.mock_request) 218s def test_main_passwords_notpwned(self): 218s """Testing: pass audit Password/notpwned.""" 218s cmd = ['Password/notpwned'] 218s > self.main(cmd) 218s 218s tests/test_main.py:77: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s tests/__init__.py:129: in main 218s pass_audit.__main__.main() 218s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 218s weak = audit.zxcvbn() 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ______________________ TestMain.test_main_passwords_pwned ______________________ 218s 218s self = 218s 218s @mock.patch('requests.get', tests.mock_request) 218s def test_main_passwords_pwned(self): 218s """Testing: pass audit Password/pwned.""" 218s cmd = ['Password/pwned'] 218s > self.main(cmd) 218s 218s tests/test_main.py:83: 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s tests/__init__.py:129: in main 218s pass_audit.__main__.main() 218s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 218s weak = audit.zxcvbn() 218s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218s 218s self = 218s 218s def zxcvbn(self): 218s """Password strength estimaton usuing Dropbox' zxcvbn.""" 218s if not ZXCVBN: 218s raise ImportError(name='zxcvbn') 218s 218s weak = [] 218s for path, entry in self.data.items(): 218s if self.verbose: 218s print(f"Checking {path}") 218s if entry.get('password', '') == '': 218s continue 218s password = entry['password'] 218s user_input = list(entry.values()) + path.split(os.sep) 218s if password in user_input: 218s user_input.remove(password) 218s results = zxcvbn(password, user_inputs=user_input) 218s > if results['score'] <= 2: 218s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 218s 218s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 218s ----------------------------- Captured stdout call ----------------------------- 218s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 218s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 218s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 218s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 218s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 218s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 218s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 218s 218s ---------- coverage: platform linux, python 3.12.9-final-0 ----------- 218s Name Stmts Miss Branch BrPart Cover Missing 218s -------------------------------------------------------------------------------------------------------- 218s /usr/lib/python3/dist-packages/pass_audit/__init__.py 10 0 0 0 100% 218s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 218s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 218s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 218s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 218s -------------------------------------------------------------------------------------------------------- 218s TOTAL 326 27 124 13 89% 218s 218s FAIL Required test coverage of 94% not reached. Total coverage: 89.33% 218s =========================== short test summary info ============================ 218s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 218s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 218s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 218s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 218s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 218s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 218s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 218s ========================= 7 failed, 35 passed in 8.43s ========================= 219s ============================= test session starts ============================== 219s platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0 219s rootdir: /tmp/autopkgtest.mJlnQV/autopkgtest_tmp 219s plugins: typeguard-4.4.1, cov-5.0.0 219s collected 42 items 219s 220s tests/test_audit.py .....FF [ 16%] 221s tests/test_main.py .....FFFFF.. [ 45%] 222s tests/test_msg.py ........ [ 64%] 222s tests/test_pass.py .............. [ 97%] 222s tests/test_pwned.py . [100%] 222s 222s =================================== FAILURES =================================== 222s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 222s 222s self = 222s 222s def test_zxcvbn_strong(self): 222s """Testing: pass audit for strong password with zxcvbn.""" 222s data = tests.getdata('Password/good') 222s audit = pass_audit.audit.PassAudit(data, True) 222s > weak = audit.zxcvbn() 222s 222s tests/test_audit.py:51: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ----------------------------- Captured stdout call ----------------------------- 222s Checking Password/good/1 222s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 222s 222s self = 222s 222s def test_zxcvbn_weak(self): 222s """Testing: pass audit for weak password with zxcvbn.""" 222s data = tests.getdata('Password/pwned/1') 222s audit = pass_audit.audit.PassAudit(data, True) 222s > weak = audit.zxcvbn() 222s 222s tests/test_audit.py:43: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ----------------------------- Captured stdout call ----------------------------- 222s Checking Password/pwned/1 222s _______________________ TestMain.test_main_passwords_all _______________________ 222s 222s self = 222s 222s @mock.patch('requests.get', tests.mock_request) 222s def test_main_passwords_all(self): 222s """Testing: pass audit .""" 222s cmd = [''] 222s > self.main(cmd) 222s 222s tests/test_main.py:104: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s tests/__init__.py:129: in main 222s pass_audit.__main__.main() 222s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 222s weak = audit.zxcvbn() 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ----------------------------- Captured stdout call ----------------------------- 222s  . Auditing whole store - this may take some time 222s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.mJlnQV/autopkgtest_tmp/tests/assets/gnupg' 222s gpg: decrypt_message failed: Unknown system error 222s  222s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 222s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 222s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 222s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 222s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 222s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 222s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 222s ____________________ TestMain.test_main_passwords_duplicate ____________________ 222s 222s self = 222s 222s @mock.patch('requests.get', tests.mock_request) 222s def test_main_passwords_duplicate(self): 222s """Testing: pass audit for duplicates.""" 222s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 222s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 222s cmd = ['Password/good'] 222s > self.main(cmd) 222s 222s tests/test_main.py:91: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s tests/__init__.py:129: in main 222s pass_audit.__main__.main() 222s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 222s weak = audit.zxcvbn() 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ______________________ TestMain.test_main_passwords_good _______________________ 222s 222s self = 222s 222s @mock.patch('requests.get', tests.mock_request) 222s def test_main_passwords_good(self): 222s """Testing: pass audit Password/good.""" 222s cmd = ['Password/good'] 222s > self.main(cmd) 222s 222s tests/test_main.py:98: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s tests/__init__.py:129: in main 222s pass_audit.__main__.main() 222s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 222s weak = audit.zxcvbn() 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ____________________ TestMain.test_main_passwords_notpwned _____________________ 222s 222s self = 222s 222s @mock.patch('requests.get', tests.mock_request) 222s def test_main_passwords_notpwned(self): 222s """Testing: pass audit Password/notpwned.""" 222s cmd = ['Password/notpwned'] 222s > self.main(cmd) 222s 222s tests/test_main.py:77: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s tests/__init__.py:129: in main 222s pass_audit.__main__.main() 222s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 222s weak = audit.zxcvbn() 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ______________________ TestMain.test_main_passwords_pwned ______________________ 222s 222s self = 222s 222s @mock.patch('requests.get', tests.mock_request) 222s def test_main_passwords_pwned(self): 222s """Testing: pass audit Password/pwned.""" 222s cmd = ['Password/pwned'] 222s > self.main(cmd) 222s 222s tests/test_main.py:83: 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s tests/__init__.py:129: in main 222s pass_audit.__main__.main() 222s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 222s weak = audit.zxcvbn() 222s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222s 222s self = 222s 222s def zxcvbn(self): 222s """Password strength estimaton usuing Dropbox' zxcvbn.""" 222s if not ZXCVBN: 222s raise ImportError(name='zxcvbn') 222s 222s weak = [] 222s for path, entry in self.data.items(): 222s if self.verbose: 222s print(f"Checking {path}") 222s if entry.get('password', '') == '': 222s continue 222s password = entry['password'] 222s user_input = list(entry.values()) + path.split(os.sep) 222s if password in user_input: 222s user_input.remove(password) 222s results = zxcvbn(password, user_inputs=user_input) 222s > if results['score'] <= 2: 222s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 222s 222s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 222s ----------------------------- Captured stdout call ----------------------------- 222s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 222s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 222s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 222s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 222s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 222s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 222s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 222s 222s ---------- coverage: platform linux, python 3.13.2-final-0 ----------- 222s Name Stmts Miss Branch BrPart Cover Missing 222s -------------------------------------------------------------------------------------------------------- 222s /usr/lib/python3/dist-packages/pass_audit/__init__.py 10 0 0 0 100% 222s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 222s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 222s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 222s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 222s -------------------------------------------------------------------------------------------------------- 222s TOTAL 326 27 124 13 89% 222s 222s FAIL Required test coverage of 94% not reached. Total coverage: 89.33% 222s =========================== short test summary info ============================ 222s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 222s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 222s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 222s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 222s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 222s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 222s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 222s ========================= 7 failed, 35 passed in 3.48s ========================= 223s autopkgtest [04:28:20]: test unittests: -----------------------] 231s unittests FAIL non-zero exit status 1 231s autopkgtest [04:28:28]: test unittests: - - - - - - - - - - results - - - - - - - - - - 233s autopkgtest [04:28:30]: @@@@@@@@@@@@@@@@@@@@ summary 233s unittests FAIL non-zero exit status 1 275s nova [W] Using flock in prodstack6-arm64 275s flock: timeout while waiting to get lock 275s Creating nova instance adt-plucky-arm64-pass-audit-20250219-042436-juju-7f2275-prod-proposed-migration-environment-15-069d6f65-2ad6-429e-8111-b41ac443b215 from image adt/ubuntu-plucky-arm64-server-20250218.img (UUID db1e3557-ca0b-4978-8424-9ef955671030)... 275s nova [W] Timed out waiting for 1a8a8e91-f2d2-4c1d-997a-114dcc07b4bd to get deleted.