0s autopkgtest [09:27:26]: starting date and time: 2025-04-14 09:27:26+0000 0s autopkgtest [09:27:26]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [09:27:26]: host juju-7f2275-prod-proposed-migration-environment-21; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.vlf27b_5/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-21@bos03-9.secgroup --name adt-plucky-amd64-pass-audit-20250414-092726-juju-7f2275-prod-proposed-migration-environment-21-c2c26317-20d3-4f63-9991-9bd212e1c066 --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-21 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 46s autopkgtest [09:28:12]: testbed dpkg architecture: amd64 46s autopkgtest [09:28:12]: testbed apt version: 3.0.0 46s autopkgtest [09:28:12]: @@@@@@@@@@@@@@@@@@@@ test bed setup 46s autopkgtest [09:28:12]: testbed release detected to be: None 47s autopkgtest [09:28:13]: updating testbed package index (apt update) 47s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [265 kB] 48s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 48s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 48s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 48s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [5192 B] 48s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [204 kB] 48s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [9948 B] 48s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [2508 B] 48s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [3776 B] 48s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 c-n-f Metadata [288 B] 48s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 c-n-f Metadata [232 B] 48s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [130 kB] 48s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [61.6 kB] 48s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 c-n-f Metadata [9496 B] 48s Get:15 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [6168 B] 48s Get:16 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [2300 B] 48s Get:17 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 c-n-f Metadata [440 B] 48s Fetched 701 kB in 1s (872 kB/s) 49s Reading package lists... 50s autopkgtest [09:28:16]: upgrading testbed (apt dist-upgrade and autopurge) 50s Reading package lists... 50s Building dependency tree... 50s Reading state information... 50s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 50s Starting 2 pkgProblemResolver with broken count: 0 50s Done 51s Entering ResolveByKeep 51s 51s Calculating upgrade... 51s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 52s Reading package lists... 52s Building dependency tree... 52s Reading state information... 52s Starting pkgProblemResolver with broken count: 0 52s Starting 2 pkgProblemResolver with broken count: 0 52s Done 53s Solving dependencies... 53s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 55s autopkgtest [09:28:21]: testbed running kernel: Linux 6.14.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr 6 15:05:05 UTC 2025 56s autopkgtest [09:28:22]: @@@@@@@@@@@@@@@@@@@@ apt-source pass-audit 57s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (dsc) [2160 B] 57s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (tar) [56.6 kB] 57s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (asc) [963 B] 57s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/universe pass-audit 1.2-1.2 (diff) [4328 B] 57s gpgv: Signature made Sun Sep 8 17:32:35 2024 UTC 57s gpgv: using RSA key 406220C8B8552802378CCE411F5C7A8B45564314 57s gpgv: issuer "bage@debian.org" 57s gpgv: Can't check signature: No public key 57s dpkg-source: warning: cannot verify inline signature for ./pass-audit_1.2-1.2.dsc: no acceptable signature found 57s autopkgtest [09:28:23]: testing package pass-audit version 1.2-1.2 57s autopkgtest [09:28:23]: build not needed 58s autopkgtest [09:28:24]: test unittests: preparing testbed 58s Reading package lists... 58s Building dependency tree... 58s Reading state information... 59s Starting pkgProblemResolver with broken count: 0 59s Starting 2 pkgProblemResolver with broken count: 0 59s Done 59s The following NEW packages will be installed: 59s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 59s libjs-jquery-metadata libjs-jquery-tablesorter 59s libjs-jquery-throttle-debounce pass pass-extension-audit python3-all 59s python3-coverage python3-iniconfig python3-packaging python3-pluggy 59s python3-pytest python3-pytest-cov python3-python-zxcvbn-rs-py tree 59s 0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded. 59s Need to get 2319 kB of archives. 59s After this operation, 8589 kB of additional disk space will be used. 59s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 60s Get:2 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 60s Get:3 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 60s Get:4 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 60s Get:5 http://ftpmaster.internal/ubuntu plucky/universe amd64 tree amd64 2.1.1-2ubuntu3 [47.1 kB] 60s Get:6 http://ftpmaster.internal/ubuntu plucky/universe amd64 pass all 1.7.4-7 [34.7 kB] 60s Get:7 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-python-zxcvbn-rs-py amd64 0.2.0-1build1 [1160 kB] 60s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 pass-extension-audit all 1.2-1.2 [15.8 kB] 60s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-all amd64 3.13.3-1 [882 B] 60s Get:10 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 60s Get:11 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 60s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.2-1 [51.5 kB] 60s Get:13 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 60s Get:14 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.5-1 [252 kB] 60s Get:15 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 60s Get:16 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 60s Get:17 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 61s Fetched 2319 kB in 2s (1490 kB/s) 61s Selecting previously unselected package libjs-jquery. 61s (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 ... 115893 files and directories currently installed.) 61s Preparing to unpack .../00-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 61s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 61s Selecting previously unselected package libjs-jquery-metadata. 61s Preparing to unpack .../01-libjs-jquery-metadata_12-4_all.deb ... 61s Unpacking libjs-jquery-metadata (12-4) ... 61s Selecting previously unselected package libjs-jquery-tablesorter. 61s Preparing to unpack .../02-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 61s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 61s Selecting previously unselected package libjs-jquery-throttle-debounce. 61s Preparing to unpack .../03-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 61s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 61s Selecting previously unselected package tree. 61s Preparing to unpack .../04-tree_2.1.1-2ubuntu3_amd64.deb ... 61s Unpacking tree (2.1.1-2ubuntu3) ... 61s Selecting previously unselected package pass. 61s Preparing to unpack .../05-pass_1.7.4-7_all.deb ... 61s Unpacking pass (1.7.4-7) ... 61s Selecting previously unselected package python3-python-zxcvbn-rs-py. 61s Preparing to unpack .../06-python3-python-zxcvbn-rs-py_0.2.0-1build1_amd64.deb ... 61s Unpacking python3-python-zxcvbn-rs-py (0.2.0-1build1) ... 61s Selecting previously unselected package pass-extension-audit. 61s Preparing to unpack .../07-pass-extension-audit_1.2-1.2_all.deb ... 61s Unpacking pass-extension-audit (1.2-1.2) ... 61s Selecting previously unselected package python3-all. 61s Preparing to unpack .../08-python3-all_3.13.3-1_amd64.deb ... 61s Unpacking python3-all (3.13.3-1) ... 61s Selecting previously unselected package python3-coverage. 61s Preparing to unpack .../09-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 61s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 62s Selecting previously unselected package python3-iniconfig. 62s Preparing to unpack .../10-python3-iniconfig_1.1.1-2_all.deb ... 62s Unpacking python3-iniconfig (1.1.1-2) ... 62s Selecting previously unselected package python3-packaging. 62s Preparing to unpack .../11-python3-packaging_24.2-1_all.deb ... 62s Unpacking python3-packaging (24.2-1) ... 62s Selecting previously unselected package python3-pluggy. 62s Preparing to unpack .../12-python3-pluggy_1.5.0-1_all.deb ... 62s Unpacking python3-pluggy (1.5.0-1) ... 62s Selecting previously unselected package python3-pytest. 62s Preparing to unpack .../13-python3-pytest_8.3.5-1_all.deb ... 62s Unpacking python3-pytest (8.3.5-1) ... 62s Selecting previously unselected package libjs-jquery-hotkeys. 62s Preparing to unpack .../14-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 62s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 62s Selecting previously unselected package libjs-jquery-isonscreen. 62s Preparing to unpack .../15-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 62s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 62s Selecting previously unselected package python3-pytest-cov. 62s Preparing to unpack .../16-python3-pytest-cov_5.0.0-1_all.deb ... 62s Unpacking python3-pytest-cov (5.0.0-1) ... 62s Setting up python3-iniconfig (1.1.1-2) ... 62s Setting up python3-all (3.13.3-1) ... 62s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 62s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 62s Setting up python3-packaging (24.2-1) ... 62s Setting up tree (2.1.1-2ubuntu3) ... 62s Setting up pass (1.7.4-7) ... 62s Setting up python3-pluggy (1.5.0-1) ... 62s Setting up python3-python-zxcvbn-rs-py (0.2.0-1build1) ... 62s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 62s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 62s Setting up python3-pytest (8.3.5-1) ... 63s Setting up pass-extension-audit (1.2-1.2) ... 63s Setting up libjs-jquery-metadata (12-4) ... 63s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 63s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 63s Setting up python3-pytest-cov (5.0.0-1) ... 63s Processing triggers for man-db (2.13.0-1) ... 64s autopkgtest [09:28:30]: test unittests: [----------------------- 65s ============================= test session starts ============================== 65s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 65s rootdir: /tmp/autopkgtest.hgoT46/autopkgtest_tmp 65s plugins: cov-5.0.0, typeguard-4.4.2 65s collected 42 items 65s 66s tests/test_audit.py .....FF [ 16%] 67s tests/test_main.py .....FFFFF.. [ 45%] 67s tests/test_msg.py ........ [ 64%] 67s tests/test_pass.py .............. [ 97%] 67s tests/test_pwned.py . [100%] 67s 67s =================================== FAILURES =================================== 67s _______________________ TestPassAudit.test_zxcvbn_strong _______________________ 67s 67s self = 67s 67s def test_zxcvbn_strong(self): 67s """Testing: pass audit for strong password with zxcvbn.""" 67s data = tests.getdata('Password/good') 67s audit = pass_audit.audit.PassAudit(data, True) 67s > weak = audit.zxcvbn() 67s 67s tests/test_audit.py:51: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ----------------------------- Captured stdout call ----------------------------- 67s Checking Password/good/1 67s ________________________ TestPassAudit.test_zxcvbn_weak ________________________ 67s 67s self = 67s 67s def test_zxcvbn_weak(self): 67s """Testing: pass audit for weak password with zxcvbn.""" 67s data = tests.getdata('Password/pwned/1') 67s audit = pass_audit.audit.PassAudit(data, True) 67s > weak = audit.zxcvbn() 67s 67s tests/test_audit.py:43: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ----------------------------- Captured stdout call ----------------------------- 67s Checking Password/pwned/1 67s _______________________ TestMain.test_main_passwords_all _______________________ 67s 67s self = 67s 67s @mock.patch('requests.get', tests.mock_request) 67s def test_main_passwords_all(self): 67s """Testing: pass audit .""" 67s cmd = [''] 67s > self.main(cmd) 67s 67s tests/test_main.py:104: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s tests/__init__.py:129: in main 67s pass_audit.__main__.main() 67s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 67s weak = audit.zxcvbn() 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ----------------------------- Captured stdout call ----------------------------- 67s  . Auditing whole store - this may take some time 67s  w Imposible to read dummy from the password store: gpg: WARNING: unsafe permissions on homedir '/tmp/autopkgtest.hgoT46/autopkgtest_tmp/tests/assets/gnupg' 67s gpg: decrypt_message failed: Unknown system error 67s  67s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 67s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 67s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 67s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 67s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 67s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 67s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 67s ____________________ TestMain.test_main_passwords_duplicate ____________________ 67s 67s self = 67s 67s @mock.patch('requests.get', tests.mock_request) 67s def test_main_passwords_duplicate(self): 67s """Testing: pass audit for duplicates.""" 67s shutil.copy(os.path.join(self.store.prefix, 'Password/good/1.gpg'), 67s os.path.join(self.store.prefix, 'Password/good/10.gpg')) 67s cmd = ['Password/good'] 67s > self.main(cmd) 67s 67s tests/test_main.py:91: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s tests/__init__.py:129: in main 67s pass_audit.__main__.main() 67s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 67s weak = audit.zxcvbn() 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ______________________ TestMain.test_main_passwords_good _______________________ 67s 67s self = 67s 67s @mock.patch('requests.get', tests.mock_request) 67s def test_main_passwords_good(self): 67s """Testing: pass audit Password/good.""" 67s cmd = ['Password/good'] 67s > self.main(cmd) 67s 67s tests/test_main.py:98: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s tests/__init__.py:129: in main 67s pass_audit.__main__.main() 67s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 67s weak = audit.zxcvbn() 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ____________________ TestMain.test_main_passwords_notpwned _____________________ 67s 67s self = 67s 67s @mock.patch('requests.get', tests.mock_request) 67s def test_main_passwords_notpwned(self): 67s """Testing: pass audit Password/notpwned.""" 67s cmd = ['Password/notpwned'] 67s > self.main(cmd) 67s 67s tests/test_main.py:77: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s tests/__init__.py:129: in main 67s pass_audit.__main__.main() 67s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 67s weak = audit.zxcvbn() 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ______________________ TestMain.test_main_passwords_pwned ______________________ 67s 67s self = 67s 67s @mock.patch('requests.get', tests.mock_request) 67s def test_main_passwords_pwned(self): 67s """Testing: pass audit Password/pwned.""" 67s cmd = ['Password/pwned'] 67s > self.main(cmd) 67s 67s tests/test_main.py:83: 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s tests/__init__.py:129: in main 67s pass_audit.__main__.main() 67s /usr/lib/python3/dist-packages/pass_audit/__main__.py:130: in main 67s weak = audit.zxcvbn() 67s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 67s 67s self = 67s 67s def zxcvbn(self): 67s """Password strength estimaton usuing Dropbox' zxcvbn.""" 67s if not ZXCVBN: 67s raise ImportError(name='zxcvbn') 67s 67s weak = [] 67s for path, entry in self.data.items(): 67s if self.verbose: 67s print(f"Checking {path}") 67s if entry.get('password', '') == '': 67s continue 67s password = entry['password'] 67s user_input = list(entry.values()) + path.split(os.sep) 67s if password in user_input: 67s user_input.remove(password) 67s results = zxcvbn(password, user_inputs=user_input) 67s > if results['score'] <= 2: 67s E TypeError: 'zxcvbn_rs_py.Entropy' object is not subscriptable 67s 67s /usr/lib/python3/dist-packages/pass_audit/audit.py:90: TypeError 67s ----------------------------- Captured stdout call ----------------------------- 67s  w Password breached: P@ssw0rd from Password/pwned/1 has been breached 52579 time(s). 67s  w Password breached: correct horse battery staple from Password/pwned/2 has been breached 3 time(s). 67s  w Password breached: correcthorsebatterystaple from Password/pwned/3 has been breached 120 time(s). 67s  w Password breached: ILoveYou from Password/pwned/4 has been breached 1386 time(s). 67s  w Password breached: password from Password/pwned/5 has been breached 3730471 time(s). 67s  w Password breached: a from Password/pwned/6 has been breached 123422 time(s). 67s  w Password breached: iamagenius from Password/pwned/7 has been breached 411 time(s). 67s 67s ---------- coverage: platform linux, python 3.13.3-final-0 ----------- 67s Name Stmts Miss Branch BrPart Cover Missing 67s -------------------------------------------------------------------------------------------------------- 67s /usr/lib/python3/dist-packages/pass_audit/__init__.py 9 0 0 0 100% 67s /usr/lib/python3/dist-packages/pass_audit/__main__.py 81 19 24 1 73% 108-112, 132-150, 154-155 67s /usr/lib/python3/dist-packages/pass_audit/audit.py 80 4 36 4 93% 13-14, 77, 87->89, 90->80, 91 67s /usr/lib/python3/dist-packages/pass_audit/msg.py 41 0 12 3 94% 38->exit, 49->exit, 55->exit 67s /usr/lib/python3/dist-packages/pass_audit/passwordstore.py 114 4 52 5 95% 59, 107-108, 111->118, 124->118, 155, 166->164 67s -------------------------------------------------------------------------------------------------------- 67s TOTAL 325 27 124 13 89% 67s 67s FAIL Required test coverage of 94% not reached. Total coverage: 89.31% 67s =========================== short test summary info ============================ 67s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_strong - TypeError: 'z... 67s FAILED tests/test_audit.py::TestPassAudit::test_zxcvbn_weak - TypeError: 'zxc... 67s FAILED tests/test_main.py::TestMain::test_main_passwords_all - TypeError: 'zx... 67s FAILED tests/test_main.py::TestMain::test_main_passwords_duplicate - TypeErro... 67s FAILED tests/test_main.py::TestMain::test_main_passwords_good - TypeError: 'z... 67s FAILED tests/test_main.py::TestMain::test_main_passwords_notpwned - TypeError... 67s FAILED tests/test_main.py::TestMain::test_main_passwords_pwned - TypeError: '... 67s ========================= 7 failed, 35 passed in 2.54s ========================= 68s autopkgtest [09:28:34]: test unittests: -----------------------] 68s autopkgtest [09:28:34]: test unittests: - - - - - - - - - - results - - - - - - - - - - 68s unittests FAIL non-zero exit status 1 69s autopkgtest [09:28:35]: @@@@@@@@@@@@@@@@@@@@ summary 69s unittests FAIL non-zero exit status 1 86s nova [W] Skipping flock for amd64 86s Creating nova instance adt-plucky-amd64-pass-audit-20250414-092726-juju-7f2275-prod-proposed-migration-environment-21-c2c26317-20d3-4f63-9991-9bd212e1c066 from image adt/ubuntu-plucky-amd64-server-20250413.img (UUID ce7bceb9-7fec-43e7-b671-8afcf6291286)... 86s nova [W] Timed out waiting for 5b9f4c44-e6f7-4f7a-9e99-7d65fa93d2c5 to get deleted.