0s autopkgtest [13:23:11]: starting date and time: 2025-01-11 13:23:11+0000 0s autopkgtest [13:23:11]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [13:23:11]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.ruh5lyj1/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 builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-9.secgroup --name adt-plucky-amd64-pass-audit-20250111-132311-juju-7f2275-prod-proposed-migration-environment-15-2075eae5-8278-455a-921b-6c1cbd3f793c --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --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/ 64s autopkgtest [13:24:15]: testbed dpkg architecture: amd64 64s autopkgtest [13:24:15]: testbed apt version: 2.9.18 64s autopkgtest [13:24:15]: @@@@@@@@@@@@@@@@@@@@ test bed setup 64s autopkgtest [13:24:15]: testbed release detected to be: None 65s autopkgtest [13:24:16]: updating testbed package index (apt update) 66s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 66s Get:2 http://ftpmaster.internal/ubuntu plucky InRelease [213 kB] 66s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 66s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 66s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [131 kB] 66s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [13.7 kB] 66s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [774 kB] 66s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9708 B] 66s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [164 kB] 66s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [296 kB] 66s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/restricted i386 Packages [2408 B] 66s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 Packages [40.1 kB] 66s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [982 kB] 66s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [378 kB] 66s Get:15 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [3516 B] 66s Get:16 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [13.0 kB] 66s Get:17 http://ftpmaster.internal/ubuntu plucky/universe Sources [20.9 MB] 67s Get:18 http://ftpmaster.internal/ubuntu plucky/universe i386 Packages [8682 kB] 67s Get:19 http://ftpmaster.internal/ubuntu plucky/universe amd64 Packages [15.8 MB] 69s Fetched 48.4 MB in 4s (12.1 MB/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 0 not upgraded. 72s autopkgtest [13:24:23]: 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 74s 74s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 74s Reading package lists... 74s Building dependency tree... 74s Reading state information... 75s Starting pkgProblemResolver with broken count: 0 75s Starting 2 pkgProblemResolver with broken count: 0 75s Done 75s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 77s autopkgtest [13:24:28]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 78s autopkgtest [13:24:29]: @@@@@@@@@@@@@@@@@@@@ apt-source pass-audit 81s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (dsc) [2160 B] 81s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (tar) [56.6 kB] 81s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (asc) [963 B] 81s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (diff) [4328 B] 81s gpgv: Signature made Sun Sep 8 17:32:35 2024 UTC 81s gpgv: using RSA key 406220C8B8552802378CCE411F5C7A8B45564314 81s gpgv: issuer "bage@debian.org" 81s gpgv: Can't check signature: No public key 81s dpkg-source: warning: cannot verify inline signature for ./pass-audit_1.2-1.2.dsc: no acceptable signature found 81s autopkgtest [13:24:32]: testing package pass-audit version 1.2-1.2 81s autopkgtest [13:24:32]: build not needed 82s autopkgtest [13:24:33]: test unittests: preparing testbed 82s Reading package lists... 82s Building dependency tree... 82s Reading state information... 82s Starting pkgProblemResolver with broken count: 0 82s Starting 2 pkgProblemResolver with broken count: 0 82s Done 83s The following NEW packages will be installed: 83s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 83s libjs-jquery-metadata libjs-jquery-tablesorter 83s libjs-jquery-throttle-debounce libpython3.13-minimal libpython3.13-stdlib 83s pass pass-extension-audit python3-all python3-coverage python3-iniconfig 83s python3-packaging python3-pluggy python3-pytest python3-pytest-cov 83s python3-python-zxcvbn-rs-py python3.13 python3.13-minimal tree 84s 0 upgraded, 21 newly installed, 0 to remove and 0 not upgraded. 84s Need to get 8473 kB of archives. 84s After this operation, 34.8 MB of additional disk space will be used. 84s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-minimal amd64 3.13.1-2 [881 kB] 85s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13-minimal amd64 3.13.1-2 [2358 kB] 85s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 85s Get:4 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 85s Get:5 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 85s Get:6 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 85s Get:7 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 85s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-stdlib amd64 3.13.1-2 [2088 kB] 85s Get:9 http://ftpmaster.internal/ubuntu plucky/universe amd64 tree amd64 2.1.1-2ubuntu3 [47.1 kB] 85s Get:10 http://ftpmaster.internal/ubuntu plucky/universe amd64 pass all 1.7.4-7 [34.7 kB] 85s Get:11 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-python-zxcvbn-rs-py amd64 0.2.0-1 [1264 kB] 85s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 pass-extension-audit all 1.2-1.2 [15.8 kB] 85s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13 amd64 3.13.1-2 [729 kB] 85s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-all amd64 3.12.8-1 [890 B] 85s Get:15 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu3 [150 kB] 85s Get:16 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 85s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.2-1 [51.5 kB] 85s Get:18 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 85s Get:19 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.4-1 [252 kB] 85s Get:20 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 85s Get:21 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 85s Fetched 8473 kB in 2s (3504 kB/s) 85s Selecting previously unselected package libpython3.13-minimal:amd64. 85s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 75820 files and directories currently installed.) 85s Preparing to unpack .../00-libpython3.13-minimal_3.13.1-2_amd64.deb ... 85s Unpacking libpython3.13-minimal:amd64 (3.13.1-2) ... 86s Selecting previously unselected package python3.13-minimal. 86s Preparing to unpack .../01-python3.13-minimal_3.13.1-2_amd64.deb ... 86s Unpacking python3.13-minimal (3.13.1-2) ... 86s Selecting previously unselected package libjs-jquery. 86s Preparing to unpack .../02-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 86s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 86s Selecting previously unselected package libjs-jquery-hotkeys. 86s Preparing to unpack .../03-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 86s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 86s Selecting previously unselected package libjs-jquery-metadata. 86s Preparing to unpack .../04-libjs-jquery-metadata_12-4_all.deb ... 86s Unpacking libjs-jquery-metadata (12-4) ... 86s Selecting previously unselected package libjs-jquery-tablesorter. 86s Preparing to unpack .../05-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 86s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 86s Selecting previously unselected package libjs-jquery-throttle-debounce. 86s Preparing to unpack .../06-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 86s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 86s Selecting previously unselected package libpython3.13-stdlib:amd64. 86s Preparing to unpack .../07-libpython3.13-stdlib_3.13.1-2_amd64.deb ... 86s Unpacking libpython3.13-stdlib:amd64 (3.13.1-2) ... 86s Selecting previously unselected package tree. 86s Preparing to unpack .../08-tree_2.1.1-2ubuntu3_amd64.deb ... 86s Unpacking tree (2.1.1-2ubuntu3) ... 86s Selecting previously unselected package pass. 86s Preparing to unpack .../09-pass_1.7.4-7_all.deb ... 86s Unpacking pass (1.7.4-7) ... 86s Selecting previously unselected package python3-python-zxcvbn-rs-py. 86s Preparing to unpack .../10-python3-python-zxcvbn-rs-py_0.2.0-1_amd64.deb ... 86s Unpacking python3-python-zxcvbn-rs-py (0.2.0-1) ... 86s Selecting previously unselected package pass-extension-audit. 86s Preparing to unpack .../11-pass-extension-audit_1.2-1.2_all.deb ... 86s Unpacking pass-extension-audit (1.2-1.2) ... 86s Selecting previously unselected package python3.13. 86s Preparing to unpack .../12-python3.13_3.13.1-2_amd64.deb ... 86s Unpacking python3.13 (3.13.1-2) ... 86s Selecting previously unselected package python3-all. 86s Preparing to unpack .../13-python3-all_3.12.8-1_amd64.deb ... 86s Unpacking python3-all (3.12.8-1) ... 86s Selecting previously unselected package python3-coverage. 86s Preparing to unpack .../14-python3-coverage_7.4.4+dfsg1-0ubuntu3_amd64.deb ... 86s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 86s Selecting previously unselected package python3-iniconfig. 86s Preparing to unpack .../15-python3-iniconfig_1.1.1-2_all.deb ... 86s Unpacking python3-iniconfig (1.1.1-2) ... 86s Selecting previously unselected package python3-packaging. 86s Preparing to unpack .../16-python3-packaging_24.2-1_all.deb ... 86s Unpacking python3-packaging (24.2-1) ... 86s Selecting previously unselected package python3-pluggy. 86s Preparing to unpack .../17-python3-pluggy_1.5.0-1_all.deb ... 86s Unpacking python3-pluggy (1.5.0-1) ... 86s Selecting previously unselected package python3-pytest. 86s Preparing to unpack .../18-python3-pytest_8.3.4-1_all.deb ... 86s Unpacking python3-pytest (8.3.4-1) ... 86s Selecting previously unselected package libjs-jquery-isonscreen. 86s Preparing to unpack .../19-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 86s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 86s Selecting previously unselected package python3-pytest-cov. 86s Preparing to unpack .../20-python3-pytest-cov_5.0.0-1_all.deb ... 86s Unpacking python3-pytest-cov (5.0.0-1) ... 86s Setting up python3-iniconfig (1.1.1-2) ... 86s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 86s Setting up libpython3.13-minimal:amd64 (3.13.1-2) ... 86s Setting up python3-packaging (24.2-1) ... 87s Setting up tree (2.1.1-2ubuntu3) ... 87s Setting up pass (1.7.4-7) ... 87s Setting up python3-pluggy (1.5.0-1) ... 87s Setting up python3.13-minimal (3.13.1-2) ... 87s Setting up python3-python-zxcvbn-rs-py (0.2.0-1) ... 87s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 87s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 87s Setting up libpython3.13-stdlib:amd64 (3.13.1-2) ... 87s Setting up python3.13 (3.13.1-2) ... 88s Setting up python3-pytest (8.3.4-1) ... 89s Setting up pass-extension-audit (1.2-1.2) ... 89s Setting up python3-all (3.12.8-1) ... 89s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 89s Setting up libjs-jquery-metadata (12-4) ... 89s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 89s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 89s Setting up python3-pytest-cov (5.0.0-1) ... 89s Processing triggers for man-db (2.13.0-1) ... 90s Processing triggers for systemd (257-2ubuntu1) ... 91s autopkgtest [13:24:42]: test unittests: [----------------------- 92s ============================= test session starts ============================== 92s platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 92s rootdir: /tmp/autopkgtest.XkUEIu/autopkgtest_tmp 92s plugins: cov-5.0.0, typeguard-4.4.1 92s collected 42 items 92s 92s tests/test_audit.py .....FF [ 16%] 93s tests/test_main.py .....FFFFF.. [ 45%] 93s tests/test_msg.py ........ [ 64%] 94s tests/test_pass.py .............. [ 97%] 94s tests/test_pwned.py . [100%] 94s 94s =================================== FAILURES =================================== 94s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 94s 94s self = 94s 94s def test_zxcvbn_strong(self): 94s """Testing: pass audit for strong password with zxcvbn.""" 94s data = tests.getdata('Password/good') 94s audit = pass_audit.audit.PassAudit(data, True) 94s > weak = audit.zxcvbn() 94s 94s tests/test_audit.py:51: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ----------------------------- Captured stdout call ----------------------------- 94s Checking Password/good/1 94s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 94s 94s self = 94s 94s def test_zxcvbn_weak(self): 94s """Testing: pass audit for weak password with zxcvbn.""" 94s data = tests.getdata('Password/pwned/1') 94s audit = pass_audit.audit.PassAudit(data, True) 94s > weak = audit.zxcvbn() 94s 94s tests/test_audit.py:43: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ----------------------------- Captured stdout call ----------------------------- 94s Checking Password/pwned/1 94s _______________________ TestMain.test_main_passwords_all _______________________ 94s 94s self = 94s 94s @mock.patch('requests.get', tests.mock_request) 94s def test_main_passwords_all(self): 94s """Testing: pass audit .""" 94s cmd = [''] 94s > self.main(cmd) 94s 94s tests/test_main.py:104: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/__init__.py:129: in main 94s pass_audit.__main__.main() 94s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 94s weak = audit.zxcvbn() 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ----------------------------- Captured stdout call ----------------------------- 94s  . Auditing whole store - this may take some time 94s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.XkUEIu/autopkgtest_tmp/tests/assets/gnupg' 94s gpg: decrypt_message failed: Unknown system error 94s  94s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 94s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 94s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 94s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 94s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 94s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 94s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 94s ____________________ TestMain.test_main_passwords_duplicate ____________________ 94s 94s self = 94s 94s @mock.patch('requests.get', tests.mock_request) 94s def test_main_passwords_duplicate(self): 94s """Testing: pass audit for duplicates.""" 94s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 94s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 94s cmd = ['Password/good'] 94s > self.main(cmd) 94s 94s tests/test_main.py:91: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/__init__.py:129: in main 94s pass_audit.__main__.main() 94s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 94s weak = audit.zxcvbn() 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ______________________ TestMain.test_main_passwords_good _______________________ 94s 94s self = 94s 94s @mock.patch('requests.get', tests.mock_request) 94s def test_main_passwords_good(self): 94s """Testing: pass audit Password/good.""" 94s cmd = ['Password/good'] 94s > self.main(cmd) 94s 94s tests/test_main.py:98: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/__init__.py:129: in main 94s pass_audit.__main__.main() 94s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 94s weak = audit.zxcvbn() 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ____________________ TestMain.test_main_passwords_notpwned _____________________ 94s 94s self = 94s 94s @mock.patch('requests.get', tests.mock_request) 94s def test_main_passwords_notpwned(self): 94s """Testing: pass audit Password/notpwned.""" 94s cmd = ['Password/notpwned'] 94s > self.main(cmd) 94s 94s tests/test_main.py:77: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/__init__.py:129: in main 94s pass_audit.__main__.main() 94s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 94s weak = audit.zxcvbn() 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ______________________ TestMain.test_main_passwords_pwned ______________________ 94s 94s self = 94s 94s @mock.patch('requests.get', tests.mock_request) 94s def test_main_passwords_pwned(self): 94s """Testing: pass audit Password/pwned.""" 94s cmd = ['Password/pwned'] 94s > self.main(cmd) 94s 94s tests/test_main.py:83: 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s tests/__init__.py:129: in main 94s pass_audit.__main__.main() 94s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 94s weak = audit.zxcvbn() 94s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 94s 94s self = 94s 94s def zxcvbn(self): 94s """Password strength estimaton usuing Dropbox' zxcvbn.""" 94s if not ZXCVBN: 94s raise ImportError(name='zxcvbn') 94s 94s weak = [] 94s for path, entry in self.data.items(): 94s if self.verbose: 94s print(f"Checking {path}") 94s if entry.get('password', '') == '': 94s continue 94s password = entry['password'] 94s user_input = list(entry.values()) + path.split(os.sep) 94s if password in user_input: 94s user_input.remove(password) 94s results = zxcvbn(password, user_inputs=user_input) 94s > if results['score'] <= 2: 94s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 94s 94s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 94s ----------------------------- Captured stdout call ----------------------------- 94s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 94s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 94s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 94s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 94s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 94s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 94s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 94s 94s ---------- coverage: platform linux, python 3.13.1-final-0 ----------- 94s Name Stmts Miss Branch BrPart Cover Missing 94s -------------------------------------------------------------------------------------------------------- 94s /usr/lib/python3/dist-packages/pass_audit/__init__.py 10 0 0 0 100% 94s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 94s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 94s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 94s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 94s -------------------------------------------------------------------------------------------------------- 94s TOTAL 326 27 124 13 89% 94s 94s FAIL Required test coverage of 94% not reached. Total coverage: 89.33% 94s =========================== short test summary info ============================ 94s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 94s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 94s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 94s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 94s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 94s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 94s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 94s ========================= 7 failed, 35 passed in 2.43s ========================= 98s ============================= test session starts ============================== 98s platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 98s rootdir: /tmp/autopkgtest.XkUEIu/autopkgtest_tmp 98s plugins: cov-5.0.0, typeguard-4.4.1 98s collected 42 items 98s 99s tests/test_audit.py .....FF [ 16%] 100s tests/test_main.py .....FFFFF.. [ 45%] 100s tests/test_msg.py ........ [ 64%] 100s tests/test_pass.py .............. [ 97%] 100s tests/test_pwned.py . [100%] 100s 100s =================================== FAILURES =================================== 100s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 100s 100s self = 100s 100s def test_zxcvbn_strong(self): 100s """Testing: pass audit for strong password with zxcvbn.""" 100s data = tests.getdata('Password/good') 100s audit = pass_audit.audit.PassAudit(data, True) 100s > weak = audit.zxcvbn() 100s 100s tests/test_audit.py:51: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ----------------------------- Captured stdout call ----------------------------- 100s Checking Password/good/1 100s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 100s 100s self = 100s 100s def test_zxcvbn_weak(self): 100s """Testing: pass audit for weak password with zxcvbn.""" 100s data = tests.getdata('Password/pwned/1') 100s audit = pass_audit.audit.PassAudit(data, True) 100s > weak = audit.zxcvbn() 100s 100s tests/test_audit.py:43: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ----------------------------- Captured stdout call ----------------------------- 100s Checking Password/pwned/1 100s _______________________ TestMain.test_main_passwords_all _______________________ 100s 100s self = 100s 100s @mock.patch('requests.get', tests.mock_request) 100s def test_main_passwords_all(self): 100s """Testing: pass audit .""" 100s cmd = [''] 100s > self.main(cmd) 100s 100s tests/test_main.py:104: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s tests/__init__.py:129: in main 100s pass_audit.__main__.main() 100s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 100s weak = audit.zxcvbn() 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ----------------------------- Captured stdout call ----------------------------- 100s  . Auditing whole store - this may take some time 100s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.XkUEIu/autopkgtest_tmp/tests/assets/gnupg' 100s gpg: decrypt_message failed: Unknown system error 100s  100s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 100s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 100s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 100s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 100s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 100s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 100s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 100s ____________________ TestMain.test_main_passwords_duplicate ____________________ 100s 100s self = 100s 100s @mock.patch('requests.get', tests.mock_request) 100s def test_main_passwords_duplicate(self): 100s """Testing: pass audit for duplicates.""" 100s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 100s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 100s cmd = ['Password/good'] 100s > self.main(cmd) 100s 100s tests/test_main.py:91: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s tests/__init__.py:129: in main 100s pass_audit.__main__.main() 100s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 100s weak = audit.zxcvbn() 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ______________________ TestMain.test_main_passwords_good _______________________ 100s 100s self = 100s 100s @mock.patch('requests.get', tests.mock_request) 100s def test_main_passwords_good(self): 100s """Testing: pass audit Password/good.""" 100s cmd = ['Password/good'] 100s > self.main(cmd) 100s 100s tests/test_main.py:98: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s tests/__init__.py:129: in main 100s pass_audit.__main__.main() 100s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 100s weak = audit.zxcvbn() 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ____________________ TestMain.test_main_passwords_notpwned _____________________ 100s 100s self = 100s 100s @mock.patch('requests.get', tests.mock_request) 100s def test_main_passwords_notpwned(self): 100s """Testing: pass audit Password/notpwned.""" 100s cmd = ['Password/notpwned'] 100s > self.main(cmd) 100s 100s tests/test_main.py:77: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s tests/__init__.py:129: in main 100s pass_audit.__main__.main() 100s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 100s weak = audit.zxcvbn() 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ______________________ TestMain.test_main_passwords_pwned ______________________ 100s 100s self = 100s 100s @mock.patch('requests.get', tests.mock_request) 100s def test_main_passwords_pwned(self): 100s """Testing: pass audit Password/pwned.""" 100s cmd = ['Password/pwned'] 100s > self.main(cmd) 100s 100s tests/test_main.py:83: 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s tests/__init__.py:129: in main 100s pass_audit.__main__.main() 100s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 100s weak = audit.zxcvbn() 100s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 100s 100s self = 100s 100s def zxcvbn(self): 100s """Password strength estimaton usuing Dropbox' zxcvbn.""" 100s if not ZXCVBN: 100s raise ImportError(name='zxcvbn') 100s 100s weak = [] 100s for path, entry in self.data.items(): 100s if self.verbose: 100s print(f"Checking {path}") 100s if entry.get('password', '') == '': 100s continue 100s password = entry['password'] 100s user_input = list(entry.values()) + path.split(os.sep) 100s if password in user_input: 100s user_input.remove(password) 100s results = zxcvbn(password, user_inputs=user_input) 100s > if results['score'] <= 2: 100s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 100s 100s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 100s ----------------------------- Captured stdout call ----------------------------- 100s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 100s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 100s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 100s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 100s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 100s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 100s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 100s 100s ---------- coverage: platform linux, python 3.12.8-final-0 ----------- 100s Name Stmts Miss Branch BrPart Cover Missing 100s -------------------------------------------------------------------------------------------------------- 100s /usr/lib/python3/dist-packages/pass_audit/__init__.py 10 0 0 0 100% 100s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 100s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 100s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 100s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 100s -------------------------------------------------------------------------------------------------------- 100s TOTAL 326 27 124 13 89% 100s 100s FAIL Required test coverage of 94% not reached. Total coverage: 89.33% 100s =========================== short test summary info ============================ 100s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 100s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 100s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 100s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 100s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 100s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 100s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 100s ========================= 7 failed, 35 passed in 6.16s ========================= 101s autopkgtest [13:24:52]: test unittests: -----------------------] 101s autopkgtest [13:24:52]: test unittests: - - - - - - - - - - results - - - - - - - - - - 101s unittests FAIL non-zero exit status 1 101s autopkgtest [13:24:52]: @@@@@@@@@@@@@@@@@@@@ summary 101s unittests FAIL non-zero exit status 1 169s nova [W] Skipping flock for amd64 169s Creating nova instance adt-plucky-amd64-pass-audit-20250111-132311-juju-7f2275-prod-proposed-migration-environment-15-2075eae5-8278-455a-921b-6c1cbd3f793c from image adt/ubuntu-plucky-amd64-server-20250111.img (UUID 583b1e24-63f4-4305-9a48-aa6a34658dc0)... 169s nova [W] Timed out waiting for c77d74cd-8ee8-48d4-9276-cf43c90816d0 to get deleted.