0s autopkgtest [11:50:25]: starting date and time: 2025-05-06 11:50:25+0000 0s autopkgtest [11:50:25]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [11:50:25]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.46wj9v8l/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pytest,src:python-redis --apt-upgrade python-cachecontrol --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=pytest/8.3.5-2 python-redis/5.2.1-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-ppc64el-6.secgroup --name adt-questing-ppc64el-python-cachecontrol-20250506-115025-juju-7f2275-prod-proposed-migration-environment-2-6091314c-5a4f-47ab-b497-f778dfcdc988 --image adt/ubuntu-questing-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 74s autopkgtest [11:51:39]: testbed dpkg architecture: ppc64el 74s autopkgtest [11:51:39]: testbed apt version: 3.0.0 74s autopkgtest [11:51:39]: @@@@@@@@@@@@@@@@@@@@ test bed setup 74s autopkgtest [11:51:39]: testbed release detected to be: None 75s autopkgtest [11:51:40]: updating testbed package index (apt update) 75s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 75s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 75s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 75s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 75s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [27.3 kB] 75s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [595 kB] 76s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [72.4 kB] 76s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main ppc64el Packages [139 kB] 76s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe ppc64el Packages [601 kB] 76s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse ppc64el Packages [18.1 kB] 76s Fetched 1563 kB in 1s (2400 kB/s) 77s Reading package lists... 77s autopkgtest [11:51:42]: upgrading testbed (apt dist-upgrade and autopurge) 78s Reading package lists... 78s Building dependency tree... 78s Reading state information... 78s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 78s Starting 2 pkgProblemResolver with broken count: 0 78s Done 78s Entering ResolveByKeep 79s 79s Calculating upgrade... 79s The following packages will be upgraded: 79s libperl5.40 perl perl-base perl-modules-5.40 python3-dbus 79s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 79s Need to get 10.5 MB of archives. 79s After this operation, 58.4 kB disk space will be freed. 79s Get:1 http://ftpmaster.internal/ubuntu questing/main ppc64el libperl5.40 ppc64el 5.40.1-3 [4949 kB] 79s Get:2 http://ftpmaster.internal/ubuntu questing/main ppc64el perl ppc64el 5.40.1-3 [262 kB] 79s Get:3 http://ftpmaster.internal/ubuntu questing/main ppc64el perl-base ppc64el 5.40.1-3 [1923 kB] 79s Get:4 http://ftpmaster.internal/ubuntu questing/main ppc64el perl-modules-5.40 all 5.40.1-3 [3217 kB] 79s Get:5 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-dbus ppc64el 1.4.0-1 [109 kB] 80s Fetched 10.5 MB in 0s (24.9 MB/s) 81s (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 ... 78710 files and directories currently installed.) 81s Preparing to unpack .../libperl5.40_5.40.1-3_ppc64el.deb ... 81s Unpacking libperl5.40:ppc64el (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 81s Preparing to unpack .../perl_5.40.1-3_ppc64el.deb ... 81s Unpacking perl (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 82s Preparing to unpack .../perl-base_5.40.1-3_ppc64el.deb ... 82s Unpacking perl-base (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 82s Setting up perl-base (5.40.1-3) ... 82s (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 ... 78710 files and directories currently installed.) 82s Preparing to unpack .../perl-modules-5.40_5.40.1-3_all.deb ... 82s Unpacking perl-modules-5.40 (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 83s Preparing to unpack .../python3-dbus_1.4.0-1_ppc64el.deb ... 83s Unpacking python3-dbus (1.4.0-1) over (1.3.2-5build5) ... 83s Setting up python3-dbus (1.4.0-1) ... 83s Setting up perl-modules-5.40 (5.40.1-3) ... 83s Setting up libperl5.40:ppc64el (5.40.1-3) ... 83s Setting up perl (5.40.1-3) ... 83s Processing triggers for man-db (2.13.1-1) ... 85s Processing triggers for libc-bin (2.41-6ubuntu1) ... 85s Reading package lists... 86s Building dependency tree... 86s Reading state information... 86s Starting pkgProblemResolver with broken count: 0 86s Starting 2 pkgProblemResolver with broken count: 0 86s Done 86s Solving dependencies... 86s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 88s autopkgtest [11:51:53]: testbed running kernel: Linux 6.14.0-15-generic #15-Ubuntu SMP Sun Apr 6 14:52:42 UTC 2025 89s autopkgtest [11:51:54]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cachecontrol 90s Get:1 http://ftpmaster.internal/ubuntu questing/universe python-cachecontrol 0.14.3-1 (dsc) [1844 B] 90s Get:2 http://ftpmaster.internal/ubuntu questing/universe python-cachecontrol 0.14.3-1 (tar) [44.4 kB] 90s Get:3 http://ftpmaster.internal/ubuntu questing/universe python-cachecontrol 0.14.3-1 (diff) [4312 B] 90s gpgv: Signature made Sat May 3 17:08:16 2025 UTC 90s gpgv: using EDDSA key EE9AD6F90520FA11F69F4824477B0DB0263A54D8 90s gpgv: issuer "stefanor@debian.org" 90s gpgv: Can't check signature: No public key 90s dpkg-source: warning: cannot verify inline signature for ./python-cachecontrol_0.14.3-1.dsc: no acceptable signature found 90s autopkgtest [11:51:55]: testing package python-cachecontrol version 0.14.3-1 90s autopkgtest [11:51:55]: build not needed 91s autopkgtest [11:51:56]: test unittests3: preparing testbed 91s Reading package lists... 91s Building dependency tree... 91s Reading state information... 91s Starting pkgProblemResolver with broken count: 0 91s Starting 2 pkgProblemResolver with broken count: 0 91s Done 91s The following NEW packages will be installed: 91s python3-all python3-cachecontrol python3-cheroot python3-cherrypy3 91s python3-filelock python3-iniconfig python3-jaraco.collections 91s python3-msgpack python3-pluggy python3-portend python3-pytest python3-redis 91s python3-tempora python3-zc.lockfile 91s 0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded. 91s Need to get 956 kB of archives. 91s After this operation, 4917 kB of additional disk space will be used. 91s Get:1 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-all ppc64el 3.13.3-1 [880 B] 91s Get:2 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-msgpack ppc64el 1.0.3-3build4 [89.5 kB] 91s Get:3 http://ftpmaster.internal/ubuntu questing/universe ppc64el python3-cachecontrol all 0.14.3-1 [18.7 kB] 91s Get:4 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 91s Get:5 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-jaraco.collections all 5.1.0-1 [12.7 kB] 91s Get:6 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-tempora all 5.7.0-2 [15.1 kB] 91s Get:7 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-portend all 3.2.0-1 [7524 B] 91s Get:8 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-zc.lockfile all 3.0.post1-1 [7852 B] 91s Get:9 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-cherrypy3 all 18.10.0-1 [211 kB] 91s Get:10 http://ftpmaster.internal/ubuntu questing/universe ppc64el python3-filelock all 3.18.0-1 [13.0 kB] 91s Get:11 http://ftpmaster.internal/ubuntu questing/universe ppc64el python3-iniconfig all 1.1.1-2 [6024 B] 91s Get:12 http://ftpmaster.internal/ubuntu questing/universe ppc64el python3-pluggy all 1.5.0-1 [21.0 kB] 91s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/universe ppc64el python3-pytest all 8.3.5-2 [252 kB] 91s Get:14 http://ftpmaster.internal/ubuntu questing-proposed/universe ppc64el python3-redis all 5.2.1-1 [221 kB] 92s Fetched 956 kB in 0s (28.2 MB/s) 92s Selecting previously unselected package python3-all. 92s (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 ... 78710 files and directories currently installed.) 92s Preparing to unpack .../00-python3-all_3.13.3-1_ppc64el.deb ... 92s Unpacking python3-all (3.13.3-1) ... 92s Selecting previously unselected package python3-msgpack. 92s Preparing to unpack .../01-python3-msgpack_1.0.3-3build4_ppc64el.deb ... 92s Unpacking python3-msgpack (1.0.3-3build4) ... 92s Selecting previously unselected package python3-cachecontrol. 92s Preparing to unpack .../02-python3-cachecontrol_0.14.3-1_all.deb ... 92s Unpacking python3-cachecontrol (0.14.3-1) ... 92s Selecting previously unselected package python3-cheroot. 92s Preparing to unpack .../03-python3-cheroot_10.0.1+ds1-4_all.deb ... 92s Unpacking python3-cheroot (10.0.1+ds1-4) ... 92s Selecting previously unselected package python3-jaraco.collections. 92s Preparing to unpack .../04-python3-jaraco.collections_5.1.0-1_all.deb ... 92s Unpacking python3-jaraco.collections (5.1.0-1) ... 92s Selecting previously unselected package python3-tempora. 92s Preparing to unpack .../05-python3-tempora_5.7.0-2_all.deb ... 92s Unpacking python3-tempora (5.7.0-2) ... 92s Selecting previously unselected package python3-portend. 92s Preparing to unpack .../06-python3-portend_3.2.0-1_all.deb ... 92s Unpacking python3-portend (3.2.0-1) ... 92s Selecting previously unselected package python3-zc.lockfile. 92s Preparing to unpack .../07-python3-zc.lockfile_3.0.post1-1_all.deb ... 92s Unpacking python3-zc.lockfile (3.0.post1-1) ... 92s Selecting previously unselected package python3-cherrypy3. 92s Preparing to unpack .../08-python3-cherrypy3_18.10.0-1_all.deb ... 92s Unpacking python3-cherrypy3 (18.10.0-1) ... 92s Selecting previously unselected package python3-filelock. 92s Preparing to unpack .../09-python3-filelock_3.18.0-1_all.deb ... 92s Unpacking python3-filelock (3.18.0-1) ... 92s Selecting previously unselected package python3-iniconfig. 92s Preparing to unpack .../10-python3-iniconfig_1.1.1-2_all.deb ... 92s Unpacking python3-iniconfig (1.1.1-2) ... 92s Selecting previously unselected package python3-pluggy. 92s Preparing to unpack .../11-python3-pluggy_1.5.0-1_all.deb ... 92s Unpacking python3-pluggy (1.5.0-1) ... 92s Selecting previously unselected package python3-pytest. 92s Preparing to unpack .../12-python3-pytest_8.3.5-2_all.deb ... 92s Unpacking python3-pytest (8.3.5-2) ... 92s Selecting previously unselected package python3-redis. 92s Preparing to unpack .../13-python3-redis_5.2.1-1_all.deb ... 92s Unpacking python3-redis (5.2.1-1) ... 92s Setting up python3-jaraco.collections (5.1.0-1) ... 92s Setting up python3-iniconfig (1.1.1-2) ... 92s Setting up python3-filelock (3.18.0-1) ... 92s Setting up python3-all (3.13.3-1) ... 92s Setting up python3-cheroot (10.0.1+ds1-4) ... 92s Setting up python3-redis (5.2.1-1) ... 93s Setting up python3-pluggy (1.5.0-1) ... 93s Setting up python3-zc.lockfile (3.0.post1-1) ... 93s Setting up python3-msgpack (1.0.3-3build4) ... 93s Setting up python3-cachecontrol (0.14.3-1) ... 93s Setting up python3-tempora (5.7.0-2) ... 93s Setting up python3-pytest (8.3.5-2) ... 94s Setting up python3-portend (3.2.0-1) ... 94s Setting up python3-cherrypy3 (18.10.0-1) ... 94s Processing triggers for man-db (2.13.1-1) ... 95s autopkgtest [11:52:00]: test unittests3: [----------------------- 95s === python3.13 === 96s ============================= test session starts ============================== 96s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 96s rootdir: /tmp/autopkgtest.avdL4A/autopkgtest_tmp 96s plugins: typeguard-4.4.2 96s collected 101 items 96s 96s tests/test_adapter.py FF.........FF [ 12%] 96s tests/test_cache_control.py ....................... [ 35%] 96s tests/test_chunked_response.py FF. [ 38%] 96s tests/test_etag.py FFFFF [ 43%] 96s tests/test_expires_heuristics.py ....FFF......... [ 59%] 96s tests/test_max_age.py FF [ 61%] 97s tests/test_redirects.py F.F. [ 65%] 97s tests/test_regressions.py F. [ 67%] 97s tests/test_serialization.py .........F [ 77%] 97s tests/test_server_http_version.py . [ 78%] 97s tests/test_storage_filecache.py FF......FFF......F [ 96%] 97s tests/test_storage_redis.py ... [ 99%] 97s tests/test_vary.py F [100%] 97s 97s =================================== FAILURES =================================== 97s _______________ TestSessionActions.test_get_caches[use_adapter] ________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s sess = 97s 97s def test_get_caches(self, url, sess): 97s r2 = sess.get(url) 97s > assert r2.from_cache is True 97s E assert False is True 97s E + where False = .from_cache 97s 97s tests/test_adapter.py:44: AssertionError 97s ---------------------------- Captured stdout setup ----------------------------- 97s Using adapter 97s _______________ TestSessionActions.test_get_caches[use_wrapper] ________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s sess = 97s 97s def test_get_caches(self, url, sess): 97s r2 = sess.get(url) 97s > assert r2.from_cache is True 97s E assert False is True 97s E + where False = .from_cache 97s 97s tests/test_adapter.py:44: AssertionError 97s ---------------------------- Captured stdout setup ----------------------------- 97s Using helper 97s __________ TestSessionActions.test_do_not_leak_response[use_adapter] ___________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s sess = 97s 97s def test_do_not_leak_response(self, url, sess): 97s resp = sess.get(url + "stream", stream=True) 97s > resp.raise_for_status() 97s 97s tests/test_adapter.py:75: 97s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 97s 97s self = 97s 97s def raise_for_status(self): 97s """Raises :class:`HTTPError`, if one occurred.""" 97s 97s http_error_msg = "" 97s if isinstance(self.reason, bytes): 97s # We attempt to decode utf-8 first because some servers 97s # choose to localize their reason strings. If the string 97s # isn't utf-8, we fall back to iso-8859-1 for all other 97s # encodings. (See PR #3538) 97s try: 97s reason = self.reason.decode("utf-8") 97s except UnicodeDecodeError: 97s reason = self.reason.decode("iso-8859-1") 97s else: 97s reason = self.reason 97s 97s if 400 <= self.status_code < 500: 97s http_error_msg = ( 97s f"{self.status_code} Client Error: {reason} for url: {self.url}" 97s ) 97s 97s elif 500 <= self.status_code < 600: 97s http_error_msg = ( 97s f"{self.status_code} Server Error: {reason} for url: {self.url}" 97s ) 97s 97s if http_error_msg: 97s > raise HTTPError(http_error_msg, response=self) 97s E requests.exceptions.HTTPError: 503 Server Error: Service Unavailable for url: http://127.0.0.1:48481/stream 97s 97s /usr/lib/python3/dist-packages/requests/models.py:1024: HTTPError 97s ---------------------------- Captured stdout setup ----------------------------- 97s Using adapter 97s __________ TestSessionActions.test_do_not_leak_response[use_wrapper] ___________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s sess = 97s 97s def test_do_not_leak_response(self, url, sess): 97s resp = sess.get(url + "stream", stream=True) 97s > resp.raise_for_status() 97s 97s tests/test_adapter.py:75: 97s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 97s 97s self = 97s 97s def raise_for_status(self): 97s """Raises :class:`HTTPError`, if one occurred.""" 97s 97s http_error_msg = "" 97s if isinstance(self.reason, bytes): 97s # We attempt to decode utf-8 first because some servers 97s # choose to localize their reason strings. If the string 97s # isn't utf-8, we fall back to iso-8859-1 for all other 97s # encodings. (See PR #3538) 97s try: 97s reason = self.reason.decode("utf-8") 97s except UnicodeDecodeError: 97s reason = self.reason.decode("iso-8859-1") 97s else: 97s reason = self.reason 97s 97s if 400 <= self.status_code < 500: 97s http_error_msg = ( 97s f"{self.status_code} Client Error: {reason} for url: {self.url}" 97s ) 97s 97s elif 500 <= self.status_code < 600: 97s http_error_msg = ( 97s f"{self.status_code} Server Error: {reason} for url: {self.url}" 97s ) 97s 97s if http_error_msg: 97s > raise HTTPError(http_error_msg, response=self) 97s E requests.exceptions.HTTPError: 503 Server Error: Service Unavailable for url: http://127.0.0.1:48481/stream 97s 97s /usr/lib/python3/dist-packages/requests/models.py:1024: HTTPError 97s ---------------------------- Captured stdout setup ----------------------------- 97s Using helper 97s _______________ TestChunkedResponses.test_cache_chunked_response _______________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/stream' 97s sess = 97s 97s def test_cache_chunked_response(self, url, sess): 97s """ 97s Verify that an otherwise cacheable response is cached when the 97s response is chunked. 97s """ 97s url = url + "stream" 97s r = sess.get(url) 97s from pprint import pprint 97s 97s pprint(dict(r.headers)) 97s pprint(dict(r.request.headers)) 97s print(r.content) 97s > assert r.headers.get("transfer-encoding") == "chunked" 97s E AssertionError: assert None == 'chunked' 97s E + where None = get('transfer-encoding') 97s E + where get = {'Server': 'squid/5.9', 'Mime-Version': '1.0', 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 'Content-Type': 'text/html;cha...rnal-egress-proxy-ps7-01:3128', 'Via': '1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)', 'Connection': 'keep-alive'}.get 97s E + where {'Server': 'squid/5.9', 'Mime-Version': '1.0', 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 'Content-Type': 'text/html;cha...rnal-egress-proxy-ps7-01:3128', 'Via': '1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)', 'Connection': 'keep-alive'} = .headers 97s 97s tests/test_chunked_response.py:36: AssertionError 97s ----------------------------- Captured stdout call ----------------------------- 97s {'Connection': 'keep-alive', 97s 'Content-Language': 'en', 97s 'Content-Length': '3682', 97s 'Content-Type': 'text/html;charset=utf-8', 97s 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 97s 'Mime-Version': '1.0', 97s 'Server': 'squid/5.9', 97s 'Vary': 'Accept-Language', 97s 'Via': '1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)', 97s 'X-Cache': 'MISS from prod-internal-egress-proxy-ps7-01', 97s 'X-Cache-Lookup': 'MISS from prod-internal-egress-proxy-ps7-01:3128', 97s 'X-Squid-Error': 'ERR_CONNECT_FAIL 111'} 97s {'Accept': '*/*', 97s 'Accept-Encoding': 'gzip, deflate', 97s 'Connection': 'keep-alive', 97s 'User-Agent': 'python-requests/2.32.3'} 97s b'\n\n\n\nERROR: The requested URL could not be retrieved\n\n\n
\n

ERROR

\n

The requested URL could not be retrieved

\n
\n
\n\n
\n

The following error was encountered while trying to retrieve the URL: http://127.0.0.1:48481/stream

\n\n
\n

Connection to 127.0.0.1 failed.

\n
\n\n

The system returned: (111) Connection refused

\n\n

The remote host or network may be down. Please try the request again.

\n\n

Your cache administrator is webmaster.

\n\n
\n
\n\n
\n\n\n' 97s __________________ TestChunkedResponses.test_stream_is_cached __________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s sess = 97s 97s def test_stream_is_cached(self, url, sess): 97s resp_1 = sess.get(url + "stream") 97s content_1 = resp_1.content 97s 97s resp_2 = sess.get(url + "stream") 97s content_2 = resp_1.content 97s 97s assert not resp_1.from_cache 97s > assert resp_2.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_chunked_response.py:49: AssertionError 97s _______________________ TestETag.test_etags_get_example ________________________ 97s 97s self = 97s sess = 97s server = 97s 97s def test_etags_get_example(self, sess, server): 97s """RFC 2616 14.26 97s 97s The If-None-Match request-header field is used with a method to make 97s it conditional. A client that has one or more entities previously 97s obtained from the resource can verify that none of those entities 97s is current by including a list of their associated entity tags in 97s the If-None-Match header field. The purpose of this feature is to 97s allow efficient updates of cached information with a minimum amount 97s of transaction overhead 97s 97s If any of the entity tags match the entity tag of the entity that 97s would have been returned in the response to a similar GET request 97s (without the If-None-Match header) on that resource, [...] then 97s the server MUST NOT perform the requested method, [...]. Instead, if 97s the request method was GET or HEAD, the server SHOULD respond with 97s a 304 (Not Modified) response, including the cache-related header 97s fields (particularly ETag) of one of the entities that matched. 97s 97s (Paraphrased) A server may provide an ETag header on a response. On 97s subsequent queries, the client may reference the value of this Etag 97s header in an If-None-Match header; on receiving such a header, the 97s server can check whether the entity at that URL has changed from the 97s clients last version, and if not, it can return a 304 to indicate 97s the client can use it's current representation. 97s """ 97s r = sess.get(self.etag_url) 97s 97s # make sure we cached it 97s > assert self.cache.get(self.etag_url) == r.raw 97s E AssertionError: assert None == 97s E + where None = get('http://127.0.0.1:48481/etag') 97s E + where get = .get 97s E + where = .cache 97s E + and 'http://127.0.0.1:48481/etag' = .etag_url 97s E + and = .raw 97s 97s tests/test_etag.py:65: AssertionError 97s _______________________ TestETag.test_etags_get_no_cache _______________________ 97s 97s self = 97s sess = 97s server = 97s 97s def test_etags_get_no_cache(self, sess, server): 97s """A 'Cache-Control: no-cache' header stops us from using the cache directly, 97s but not from using the 'If-None-Match' header on the request.""" 97s # get our response 97s r = sess.get(self.etag_url) 97s assert "if-none-match" not in r.request.headers 97s 97s r = sess.get(self.etag_url, headers={"Cache-Control": "no-cache"}) 97s > assert "if-none-match" in r.request.headers 97s E AssertionError: assert 'if-none-match' in {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cache-Control': 'no-cache'} 97s E + where {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cache-Control': 'no-cache'} = .headers 97s E + where = .request 97s 97s tests/test_etag.py:90: AssertionError 97s ______________________ TestETag.test_etags_get_with_range ______________________ 97s 97s self = 97s sess = 97s server = 97s 97s def test_etags_get_with_range(self, sess, server): 97s """A 'Range' header stops us from using the cache altogether.""" 97s # get our response 97s r = sess.get(self.etag_url) 97s 97s r = sess.get(self.etag_url, headers={"Range": "0-10"}) 97s assert "if-none-match" not in r.request.headers 97s > assert r.status_code == 200 97s E assert 503 == 200 97s E + where 503 = .status_code 97s 97s tests/test_etag.py:104: AssertionError 97s _________ TestDisabledETags.test_expired_etags_if_none_match_response __________ 97s 97s self = 97s sess = 97s 97s def test_expired_etags_if_none_match_response(self, sess): 97s """Make sure an expired response that contains an ETag uses 97s the If-None-Match header. 97s """ 97s # get our response 97s r = sess.get(self.etag_url) 97s 97s # expire our request by changing the date. Our test endpoint 97s # doesn't provide time base caching headers, so we add them 97s # here in order to expire the request. 97s r.headers["Date"] = "Tue, 26 Nov 2012 00:50:49 GMT" 97s self.cache.set(self.etag_url, r.raw) 97s 97s r = sess.get(self.etag_url) 97s > assert r.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_etag.py:140: AssertionError 97s _________ TestReleaseConnection.test_not_modified_releases_connection __________ 97s 97s self = 97s server = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_not_modified_releases_connection(self, server, url): 97s sess = CacheControl(requests.Session()) 97s etag_url = urljoin(url, "/etag") 97s sess.get(etag_url) 97s 97s resp = Mock(status=304, headers={}) 97s 97s # These are various ways the the urllib3 response can created 97s # in requests.adapters. Which one is actually used depends 97s # on which version if `requests` is in use, as well as perhaps 97s # other parameters. 97s response_mods = [ 97s "requests.adapters.HTTPResponse.from_httplib", 97s "urllib3.HTTPConnectionPool.urlopen", 97s ] 97s 97s with ExitStack() as stack: 97s for mod in response_mods: 97s with suppress(ImportError, AttributeError): 97s stack.enter_context(patch(mod, Mock(return_value=resp))) 97s 97s > sess.get(etag_url) 97s 97s tests/test_etag.py:175: 97s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 97s /usr/lib/python3/dist-packages/requests/sessions.py:602: in get 97s return self.request("GET", url, **kwargs) 97s /usr/lib/python3/dist-packages/requests/sessions.py:589: in request 97s resp = self.send(prep, **send_kwargs) 97s /usr/lib/python3/dist-packages/requests/sessions.py:746: in send 97s r.content 97s /usr/lib/python3/dist-packages/requests/models.py:902: in content 97s self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b"" 97s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 97s 97s def generate(): 97s # Special case for urllib3. 97s if hasattr(self.raw, "stream"): 97s try: 97s > yield from self.raw.stream(chunk_size, decode_content=True) 97s E TypeError: 'Mock' object is not iterable 97s 97s /usr/lib/python3/dist-packages/requests/models.py:820: TypeError 97s ____________________ TestOneDayCache.test_cache_for_one_day ____________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_cache_for_one_day(self, url): 97s the_url = url + "optional_cacheable_request" 97s r = self.sess.get(the_url) 97s 97s assert "expires" in r.headers 97s assert "warning" in r.headers 97s 97s pprint(dict(r.headers)) 97s 97s r = self.sess.get(the_url) 97s pprint(dict(r.headers)) 97s > assert r.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_expires_heuristics.py:86: AssertionError 97s ----------------------------- Captured stdout call ----------------------------- 97s {'Connection': 'keep-alive', 97s 'Content-Language': 'en', 97s 'Content-Length': '3742', 97s 'Content-Type': 'text/html;charset=utf-8', 97s 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 97s 'Mime-Version': '1.0', 97s 'Server': 'squid/5.9', 97s 'Vary': 'Accept-Language', 97s 'Via': '1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)', 97s 'Warning': '110 - "Response is Stale"', 97s 'X-Cache': 'MISS from prod-internal-egress-proxy-ps7-01', 97s 'X-Cache-Lookup': 'MISS from prod-internal-egress-proxy-ps7-01:3128', 97s 'X-Squid-Error': 'ERR_CONNECT_FAIL 111', 97s 'cache-control': 'public', 97s 'expires': 'Wed, 07 May 2025 11:52:01 -0000'} 97s {'Connection': 'keep-alive', 97s 'Content-Language': 'en', 97s 'Content-Length': '3742', 97s 'Content-Type': 'text/html;charset=utf-8', 97s 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 97s 'Mime-Version': '1.0', 97s 'Server': 'squid/5.9', 97s 'Vary': 'Accept-Language', 97s 'Via': '1.1 prod-internal-egress-proxy-ps7-01 (squid/5.9)', 97s 'Warning': '110 - "Response is Stale"', 97s 'X-Cache': 'MISS from prod-internal-egress-proxy-ps7-01', 97s 'X-Cache-Lookup': 'MISS from prod-internal-egress-proxy-ps7-01:3128', 97s 'X-Squid-Error': 'ERR_CONNECT_FAIL 111', 97s 'cache-control': 'public', 97s 'expires': 'Wed, 07 May 2025 11:52:01 -0000'} 97s _________________ TestExpiresAfter.test_expires_after_one_day __________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_expires_after_one_day(self, url): 97s the_url = url + "no_cache" 97s resp = get(the_url) 97s > assert resp.headers["cache-control"] == "no-cache" 97s 97s tests/test_expires_heuristics.py:97: 97s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 97s 97s self = {'Server': 'squid/5.9', 'Mime-Version': '1.0', 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 'Content-Type': 'text/html;cha...rnal-egress-proxy-ps7-03:3128', 'Via': '1.1 prod-internal-egress-proxy-ps7-03 (squid/5.9)', 'Connection': 'keep-alive'} 97s key = 'cache-control' 97s 97s def __getitem__(self, key): 97s > return self._store[key.lower()][1] 97s E KeyError: 'cache-control' 97s 97s /usr/lib/python3/dist-packages/requests/structures.py:52: KeyError 97s _____________________ TestLastModified.test_last_modified ______________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_last_modified(self, url): 97s the_url = url + "optional_cacheable_request" 97s r = self.sess.get(the_url) 97s 97s > assert "expires" in r.headers 97s E AssertionError: assert 'expires' in {'Server': 'squid/5.9', 'Mime-Version': '1.0', 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 'Content-Type': 'text/html;cha...rnal-egress-proxy-ps7-03:3128', 'Via': '1.1 prod-internal-egress-proxy-ps7-03 (squid/5.9)', 'Connection': 'keep-alive'} 97s E + where {'Server': 'squid/5.9', 'Mime-Version': '1.0', 'Date': 'Tue, 06 May 2025 11:52:01 GMT', 'Content-Type': 'text/html;cha...rnal-egress-proxy-ps7-03:3128', 'Via': '1.1 prod-internal-egress-proxy-ps7-03 (squid/5.9)', 'Connection': 'keep-alive'} = .headers 97s 97s tests/test_expires_heuristics.py:118: AssertionError 97s _______________________ TestMaxAge.test_client_max_age_0 _______________________ 97s 97s self = 97s sess = 97s 97s def test_client_max_age_0(self, sess): 97s """ 97s Making sure when the client uses max-age=0 we don't get a 97s cached copy even though we're still fresh. 97s """ 97s print("first request") 97s r = sess.get(self.url) 97s > assert self.cache.get(self.url) == r.raw 97s E AssertionError: assert None == 97s E + where None = get('http://127.0.0.1:48481/') 97s E + where get = .get 97s E + where = .cache 97s E + and 'http://127.0.0.1:48481/' = .url 97s E + and = .raw 97s 97s tests/test_max_age.py:31: AssertionError 97s ----------------------------- Captured stdout call ----------------------------- 97s first request 97s _____________________ TestMaxAge.test_client_max_age_3600 ______________________ 97s 97s self = 97s sess = 97s 97s def test_client_max_age_3600(self, sess): 97s """ 97s Verify we get a cached value when the client has a 97s reasonable max-age value. 97s """ 97s r = sess.get(self.url) 97s > assert self.cache.get(self.url) == r.raw 97s E AssertionError: assert None == 97s E + where None = get('http://127.0.0.1:48481/') 97s E + where get = .get 97s E + where = .cache 97s E + and 'http://127.0.0.1:48481/' = .url 97s E + and = .raw 97s 97s tests/test_max_age.py:46: AssertionError 97s ___________ TestPermanentRedirects.test_redirect_response_is_cached ____________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_redirect_response_is_cached(self, url): 97s self.sess.get(url + "permanent_redirect", allow_redirects=False) 97s 97s resp = self.sess.get(url + "permanent_redirect", allow_redirects=False) 97s > assert resp.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_redirects.py:22: AssertionError 97s _______ TestMultipleChoicesRedirects.test_multiple_choices_is_cacheable ________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_multiple_choices_is_cacheable(self, url): 97s self.sess.get(url + "multiple_choices_redirect", allow_redirects=False) 97s 97s resp = self.sess.get(url + "multiple_choices_redirect", allow_redirects=False) 97s 97s > assert resp.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_redirects.py:44: AssertionError 97s ____________ Test39.test_file_cache_recognizes_consumed_file_handle ____________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_file_cache_recognizes_consumed_file_handle(self, url): 97s s = CacheControl(Session(), FileCache("web_cache")) 97s the_url = url + "cache_60" 97s s.get(the_url) 97s r = s.get(the_url) 97s > assert r.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_regressions.py:20: AssertionError 97s _______________ TestSerializer.test_no_incomplete_read_on_dumps ________________ 97s 97s self = 97s url = 'http://127.0.0.1:48481/' 97s 97s def test_no_incomplete_read_on_dumps(self, url): 97s resp = requests.get(url + "fixed_length", stream=True) 97s self.serializer.dumps(resp.request, resp.raw) 97s 97s > assert resp.content == b"0123456789" 97s E AssertionError: assert b'\n' == b'0123456789' 97s E 97s E At index 0 diff: b'<' != b'0' 97s E Use -v to get more diff 97s 97s tests/test_serialization.py:116: AssertionError 97s ___________________ TestFileCache.test_filecache_from_cache ____________________ 97s 97s self = 97s sess = 97s 97s def test_filecache_from_cache(self, sess): 97s response = sess.get(self.url) 97s assert not response.from_cache 97s response = sess.get(self.url) 97s > assert response.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_storage_filecache.py:45: AssertionError 97s ______________ TestFileCache.test_filecache_directory_not_exists _______________ 97s 97s self = 97s tmpdir = local('/tmp/pytest-of-ubuntu/pytest-0/test_filecache_directory_not_e0') 97s sess = 97s 97s def test_filecache_directory_not_exists(self, tmpdir, sess): 97s url = self.url + "".join(sample(string.ascii_lowercase, randint(2, 4))) 97s 97s # Make sure our cache dir doesn't exist 97s tmp_cache = tmpdir.join("missing", "folder", "name").strpath 97s assert not os.path.exists(tmp_cache) 97s 97s self.cache.directory = tmp_cache 97s 97s # trigger a cache save 97s sess.get(url) 97s 97s # Now our cache dir does exist 97s > assert os.path.exists(tmp_cache) 97s E AssertionError: assert False 97s E + where False = ('/tmp/pytest-of-ubuntu/pytest-0/test_filecache_directory_not_e0/missing/folder/name') 97s E + where = .exists 97s E + where = os.path 97s 97s tests/test_storage_filecache.py:60: AssertionError 97s ____________________ TestFileCache.test_body_stored_inline _____________________ 97s 97s self = 97s sess = 97s 97s def test_body_stored_inline(self, sess): 97s """The body is stored together with the metadata.""" 97s url = self.url + "cache_60" 97s response = sess.get(url) 97s body = response.content 97s response2 = sess.get(url) 97s > assert response2.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_storage_filecache.py:134: AssertionError 97s _____________ TestSeparateBodyFileCache.test_filecache_from_cache ______________ 97s 97s self = 97s sess = 97s 97s def test_filecache_from_cache(self, sess): 97s response = sess.get(self.url) 97s assert not response.from_cache 97s response = sess.get(self.url) 97s > assert response.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_storage_filecache.py:45: AssertionError 97s ________ TestSeparateBodyFileCache.test_filecache_directory_not_exists _________ 97s 97s self = 97s tmpdir = local('/tmp/pytest-of-ubuntu/pytest-0/test_filecache_directory_not_e1') 97s sess = 97s 97s def test_filecache_directory_not_exists(self, tmpdir, sess): 97s url = self.url + "".join(sample(string.ascii_lowercase, randint(2, 4))) 97s 97s # Make sure our cache dir doesn't exist 97s tmp_cache = tmpdir.join("missing", "folder", "name").strpath 97s assert not os.path.exists(tmp_cache) 97s 97s self.cache.directory = tmp_cache 97s 97s # trigger a cache save 97s sess.get(url) 97s 97s # Now our cache dir does exist 97s > assert os.path.exists(tmp_cache) 97s E AssertionError: assert False 97s E + where False = ('/tmp/pytest-of-ubuntu/pytest-0/test_filecache_directory_not_e1/missing/folder/name') 97s E + where = .exists 97s E + where = os.path 97s 97s tests/test_storage_filecache.py:60: AssertionError 97s ________ TestSeparateBodyFileCache.test_body_actually_stored_separately ________ 97s 97s self = 97s sess = 97s 97s def test_body_actually_stored_separately(self, sess): 97s """ 97s Body is stored and can be retrieved from the SeparateBodyFileCache, with assurances 97s it's actually being loaded from separate file than metadata. 97s """ 97s url = self.url + "cache_60" 97s response = sess.get(url) 97s body = response.content 97s response2 = sess.get(url) 97s > assert response2.from_cache 97s E assert False 97s E + where False = .from_cache 97s 97s tests/test_storage_filecache.py:160: AssertionError 97s __________________________ TestVary.test_vary_example __________________________ 97s 97s self = 97s sess = 97s 97s def test_vary_example(self, sess): 97s """RFC 2616 13.6 97s 97s When the cache receives a subsequent request whose Request-URI 97s specifies one or more cache entries including a Vary header field, 97s the cache MUST NOT use such a cache entry to construct a response 97s to the new request unless all of the selecting request-headers 97s present in the new request match the corresponding stored 97s request-headers in the original request. 97s 97s Or, in simpler terms, when you make a request and the server 97s returns defines a Vary header, unless all the headers listed 97s in the Vary header are the same, it won't use the cached 97s value. 97s """ 97s s = sess.adapters["http://"].controller.serializer 97s r = sess.get(self.url) 97s c = s.loads(r.request, self.cache.get(self.url)) 97s 97s # make sure we cached it 97s > assert self.cached_equal(c, r) 97s 97s tests/test_vary.py:63: 97s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 97s 97s self = , cached = None 97s resp = 97s 97s def cached_equal(self, cached, resp): 97s # remove any transfer-encoding headers as they don't apply to 97s # a cached value 97s if "chunked" in resp.raw.headers.get("transfer-encoding", ""): 97s resp.raw.headers.pop("transfer-encoding") 97s 97s checks = [ 97s > cached._fp.getvalue() == resp.content, 97s cached.headers == resp.raw.headers, 97s cached.status == resp.raw.status, 97s cached.version == resp.raw.version, 97s cached.reason == resp.raw.reason, 97s cached.decode_content == resp.raw.decode_content, 97s ] 97s E AttributeError: 'NoneType' object has no attribute '_fp' 97s 97s tests/test_vary.py:30: AttributeError 97s =============================== warnings summary =============================== 97s tests/test_etag.py::TestReleaseConnection::test_not_modified_releases_connection 97s /usr/lib/python3.13/http/cookiejar.py:1620: UserWarning: http.cookiejar bug! 97s Traceback (most recent call last): 97s File "/usr/lib/python3.13/http/cookiejar.py", line 1618, in make_cookies 97s split_header_words(rfc2965_hdrs), request) 97s ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ 97s File "/usr/lib/python3.13/http/cookiejar.py", line 395, in split_header_words 97s for text in header_values: 97s ^^^^^^^^^^^^^ 97s TypeError: 'Mock' object is not iterable 97s 97s _warn_unhandled_exception() 97s 97s tests/test_etag.py::TestReleaseConnection::test_not_modified_releases_connection 97s /usr/lib/python3.13/http/cookiejar.py:1629: UserWarning: http.cookiejar bug! 97s Traceback (most recent call last): 97s File "/usr/lib/python3.13/http/cookiejar.py", line 1627, in make_cookies 97s parse_ns_headers(ns_hdrs), request) 97s ~~~~~~~~~~~~~~~~^^^^^^^^^ 97s File "/usr/lib/python3.13/http/cookiejar.py", line 486, in parse_ns_headers 97s for ns_header in ns_headers: 97s ^^^^^^^^^^ 97s TypeError: 'Mock' object is not iterable 97s 97s _warn_unhandled_exception() 97s 97s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 97s =========================== short test summary info ============================ 97s FAILED tests/test_adapter.py::TestSessionActions::test_get_caches[use_adapter] 97s FAILED tests/test_adapter.py::TestSessionActions::test_get_caches[use_wrapper] 97s FAILED tests/test_adapter.py::TestSessionActions::test_do_not_leak_response[use_adapter] 97s FAILED tests/test_adapter.py::TestSessionActions::test_do_not_leak_response[use_wrapper] 97s FAILED tests/test_chunked_response.py::TestChunkedResponses::test_cache_chunked_response 97s FAILED tests/test_chunked_response.py::TestChunkedResponses::test_stream_is_cached 97s FAILED tests/test_etag.py::TestETag::test_etags_get_example - AssertionError:... 97s FAILED tests/test_etag.py::TestETag::test_etags_get_no_cache - AssertionError... 97s FAILED tests/test_etag.py::TestETag::test_etags_get_with_range - assert 503 =... 97s FAILED tests/test_etag.py::TestDisabledETags::test_expired_etags_if_none_match_response 97s FAILED tests/test_etag.py::TestReleaseConnection::test_not_modified_releases_connection 97s FAILED tests/test_expires_heuristics.py::TestOneDayCache::test_cache_for_one_day 97s FAILED tests/test_expires_heuristics.py::TestExpiresAfter::test_expires_after_one_day 97s FAILED tests/test_expires_heuristics.py::TestLastModified::test_last_modified 97s FAILED tests/test_max_age.py::TestMaxAge::test_client_max_age_0 - AssertionEr... 97s FAILED tests/test_max_age.py::TestMaxAge::test_client_max_age_3600 - Assertio... 97s FAILED tests/test_redirects.py::TestPermanentRedirects::test_redirect_response_is_cached 97s FAILED tests/test_redirects.py::TestMultipleChoicesRedirects::test_multiple_choices_is_cacheable 97s FAILED tests/test_regressions.py::Test39::test_file_cache_recognizes_consumed_file_handle 97s FAILED tests/test_serialization.py::TestSerializer::test_no_incomplete_read_on_dumps 97s FAILED tests/test_storage_filecache.py::TestFileCache::test_filecache_from_cache 97s FAILED tests/test_storage_filecache.py::TestFileCache::test_filecache_directory_not_exists 97s FAILED tests/test_storage_filecache.py::TestFileCache::test_body_stored_inline 97s FAILED tests/test_storage_filecache.py::TestSeparateBodyFileCache::test_filecache_from_cache 97s FAILED tests/test_storage_filecache.py::TestSeparateBodyFileCache::test_filecache_directory_not_exists 97s FAILED tests/test_storage_filecache.py::TestSeparateBodyFileCache::test_body_actually_stored_separately 97s FAILED tests/test_vary.py::TestVary::test_vary_example - AttributeError: 'Non... 97s ================== 27 failed, 74 passed, 2 warnings in 0.80s =================== 97s [06/May/2025:11:52:01] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 48481)) shut down 97s autopkgtest [11:52:02]: test unittests3: -----------------------] 98s unittests3 FAIL non-zero exit status 1 98s autopkgtest [11:52:03]: test unittests3: - - - - - - - - - - results - - - - - - - - - - 98s autopkgtest [11:52:03]: test autodep8-python3: preparing testbed 201s autopkgtest [11:53:46]: testbed dpkg architecture: ppc64el 201s autopkgtest [11:53:46]: testbed apt version: 3.0.0 201s autopkgtest [11:53:46]: @@@@@@@@@@@@@@@@@@@@ test bed setup 201s autopkgtest [11:53:46]: testbed release detected to be: questing 202s autopkgtest [11:53:47]: updating testbed package index (apt update) 203s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 203s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 203s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 203s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 203s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [595 kB] 203s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [27.3 kB] 203s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [72.4 kB] 203s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main ppc64el Packages [139 kB] 203s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/universe ppc64el Packages [601 kB] 203s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/multiverse ppc64el Packages [18.1 kB] 203s Fetched 1563 kB in 1s (2331 kB/s) 204s Reading package lists... 205s autopkgtest [11:53:50]: upgrading testbed (apt dist-upgrade and autopurge) 205s Reading package lists... 205s Building dependency tree... 205s Reading state information... 205s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 205s Starting 2 pkgProblemResolver with broken count: 0 205s Done 206s Entering ResolveByKeep 206s 206s Calculating upgrade... 206s The following packages will be upgraded: 206s libperl5.40 perl perl-base perl-modules-5.40 python3-dbus 206s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 206s Need to get 10.5 MB of archives. 206s After this operation, 58.4 kB disk space will be freed. 206s Get:1 http://ftpmaster.internal/ubuntu questing/main ppc64el libperl5.40 ppc64el 5.40.1-3 [4949 kB] 207s Get:2 http://ftpmaster.internal/ubuntu questing/main ppc64el perl ppc64el 5.40.1-3 [262 kB] 207s Get:3 http://ftpmaster.internal/ubuntu questing/main ppc64el perl-base ppc64el 5.40.1-3 [1923 kB] 207s Get:4 http://ftpmaster.internal/ubuntu questing/main ppc64el perl-modules-5.40 all 5.40.1-3 [3217 kB] 207s Get:5 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-dbus ppc64el 1.4.0-1 [109 kB] 207s Fetched 10.5 MB in 1s (12.5 MB/s) 209s (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 ... 78710 files and directories currently installed.) 209s Preparing to unpack .../libperl5.40_5.40.1-3_ppc64el.deb ... 209s Unpacking libperl5.40:ppc64el (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 209s Preparing to unpack .../perl_5.40.1-3_ppc64el.deb ... 209s Unpacking perl (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 209s Preparing to unpack .../perl-base_5.40.1-3_ppc64el.deb ... 209s Unpacking perl-base (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 209s Setting up perl-base (5.40.1-3) ... 210s (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 ... 78710 files and directories currently installed.) 210s Preparing to unpack .../perl-modules-5.40_5.40.1-3_all.deb ... 210s Unpacking perl-modules-5.40 (5.40.1-3) over (5.40.1-2ubuntu0.1) ... 210s Preparing to unpack .../python3-dbus_1.4.0-1_ppc64el.deb ... 210s Unpacking python3-dbus (1.4.0-1) over (1.3.2-5build5) ... 210s Setting up python3-dbus (1.4.0-1) ... 211s Setting up perl-modules-5.40 (5.40.1-3) ... 211s Setting up libperl5.40:ppc64el (5.40.1-3) ... 211s Setting up perl (5.40.1-3) ... 211s Processing triggers for man-db (2.13.1-1) ... 212s Processing triggers for libc-bin (2.41-6ubuntu1) ... 213s Reading package lists... 213s Building dependency tree... 213s Reading state information... 213s Starting pkgProblemResolver with broken count: 0 213s Starting 2 pkgProblemResolver with broken count: 0 213s Done 213s Solving dependencies... 213s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 216s Reading package lists... 216s Building dependency tree... 216s Reading state information... 217s Starting pkgProblemResolver with broken count: 0 217s Starting 2 pkgProblemResolver with broken count: 0 217s Done 217s The following NEW packages will be installed: 217s python3-all python3-cachecontrol python3-msgpack 217s 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 217s Need to get 109 kB of archives. 217s After this operation, 436 kB of additional disk space will be used. 217s Get:1 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-all ppc64el 3.13.3-1 [880 B] 217s Get:2 http://ftpmaster.internal/ubuntu questing/main ppc64el python3-msgpack ppc64el 1.0.3-3build4 [89.5 kB] 217s Get:3 http://ftpmaster.internal/ubuntu questing/universe ppc64el python3-cachecontrol all 0.14.3-1 [18.7 kB] 217s Fetched 109 kB in 0s (3464 kB/s) 217s Selecting previously unselected package python3-all. 217s (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 ... 78710 files and directories currently installed.) 217s Preparing to unpack .../python3-all_3.13.3-1_ppc64el.deb ... 217s Unpacking python3-all (3.13.3-1) ... 217s Selecting previously unselected package python3-msgpack. 217s Preparing to unpack .../python3-msgpack_1.0.3-3build4_ppc64el.deb ... 217s Unpacking python3-msgpack (1.0.3-3build4) ... 217s Selecting previously unselected package python3-cachecontrol. 217s Preparing to unpack .../python3-cachecontrol_0.14.3-1_all.deb ... 217s Unpacking python3-cachecontrol (0.14.3-1) ... 217s Setting up python3-all (3.13.3-1) ... 217s Setting up python3-msgpack (1.0.3-3build4) ... 217s Setting up python3-cachecontrol (0.14.3-1) ... 219s autopkgtest [11:54:04]: test autodep8-python3: set -e ; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -c "import cachecontrol; print(cachecontrol)" ; done 219s autopkgtest [11:54:04]: test autodep8-python3: [----------------------- 219s Testing with python3.13: 219s 220s autopkgtest [11:54:05]: test autodep8-python3: -----------------------] 220s autopkgtest [11:54:05]: test autodep8-python3: - - - - - - - - - - results - - - - - - - - - - 220s autodep8-python3 PASS (superficial) 221s autopkgtest [11:54:06]: @@@@@@@@@@@@@@@@@@@@ summary 221s unittests3 FAIL non-zero exit status 1 221s autodep8-python3 PASS (superficial) 236s nova [W] Using flock in prodstack7-ppc64el 236s Creating nova instance adt-questing-ppc64el-python-cachecontrol-20250506-115025-juju-7f2275-prod-proposed-migration-environment-2-6091314c-5a4f-47ab-b497-f778dfcdc988 from image adt/ubuntu-questing-ppc64el-server-20250506.img (UUID e1f89dbe-ec13-4fb8-859d-773ec93960ca)... 236s nova [W] Timed out waiting for b13cbfaf-c5b6-4853-8d55-fd6e0a98ad10 to get deleted. 236s nova [W] Using flock in prodstack7-ppc64el 236s Creating nova instance adt-questing-ppc64el-python-cachecontrol-20250506-115025-juju-7f2275-prod-proposed-migration-environment-2-6091314c-5a4f-47ab-b497-f778dfcdc988 from image adt/ubuntu-questing-ppc64el-server-20250506.img (UUID e1f89dbe-ec13-4fb8-859d-773ec93960ca)... 236s nova [W] Timed out waiting for 0b48d65b-d461-48da-9e46-ee72512586c8 to get deleted.