===== app-contract-nightly-staging-6t9q6-archive-logs-pod.log ===== [pod/app-contract-nightly-staging-6t9q6-archive-logs-pod/step-collect-logs] 2026-08-04T21:47:37.884937464-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-staging-6t9q6 [pod/app-contract-nightly-staging-6t9q6-archive-logs-pod/prepare] 2026-08-04T21:47:32.448824423-05:00 2026/08/05 02:47:32 Entrypoint initialization [pod/app-contract-nightly-staging-6t9q6-archive-logs-pod/place-scripts] 2026-08-04T21:47:33.156344040-05:00 2026/08/05 02:47:33 Decoded script /tekton/scripts/script-0-rmg7v [pod/app-contract-nightly-staging-6t9q6-archive-logs-pod/place-scripts] 2026-08-04T21:47:33.179129260-05:00 2026/08/05 02:47:33 Decoded script /tekton/scripts/script-1-qjdhl ===== app-contract-nightly-staging-6t9q6-contract-pod.log ===== [pod/app-contract-nightly-staging-6t9q6-contract-pod/prepare] 2026-08-04T21:47:04.649632443-05:00 2026/08/05 02:47:04 Entrypoint initialization [pod/app-contract-nightly-staging-6t9q6-contract-pod/place-scripts] 2026-08-04T21:47:05.836320155-05:00 2026/08/05 02:47:05 Decoded script /tekton/scripts/script-0-9g776 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:09.660419774-05:00 resolved deployed image: registry.storeminder.ai/storeminder/app:ee7cf4cd9cd61ed4ab4e7538ef34cddf96caed8c [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:09.771787678-05:00 job.batch/app-contract-20260805-024709 created [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.529675790-05:00 ----- contract Job logs (app-contract-20260805-024709) ----- [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621182162-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621221874-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621230939-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621237569-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621244160-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621250750-05:00 rootdir: /app [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621258255-05:00 configfile: pytest.ini [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621265133-05:00 plugins: django-4.12.0, cov-7.1.0, anyio-4.14.2 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621271624-05:00 collected 31 items [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621277847-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621284527-05:00 tests/contract/test_fixture_parity.py .FFsss [ 19%] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621290968-05:00 tests/contract/test_grafana_contract.py sss [ 29%] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621297419-05:00 tests/contract/test_headscale_contract.py ... [ 38%] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621303970-05:00 tests/contract/test_mender_contract.py ssss [ 51%] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621310560-05:00 tests/contract/test_rundeck_contract.py FFF [ 61%] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621317359-05:00 tests/contract/test_shape_selfcheck.py ............ [100%] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621323781-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621354029-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621360778-05:00 ________________________ test_parity_rundeck_execution _________________________ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621368412-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621376891-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621387597-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621394724-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621401265-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621408173-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621415797-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621423799-05:00 > yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621431026-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621441016-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621447616-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621454375-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621460806-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621467258-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621473679-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621480180-05:00 raise exc from None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621486621-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621493003-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621500925-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621507416-05:00 raise exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621535408-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621539960-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621544235-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621548579-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621552843-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621557405-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621561749-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621566053-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621570338-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621574632-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621578936-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621583270-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621587385-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621592077-05:00 map = {: , : } [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621597832-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621602206-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621606480-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621610784-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621615098-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621619442-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621623766-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621628031-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621632265-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621636549-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621640645-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621646480-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621650664-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621655038-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621659124-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621663448-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621667762-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621672115-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621676221-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621680555-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621686260-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621690684-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621694988-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621699332-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621703606-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621707851-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621712483-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621717711-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621723029-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621728337-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621733576-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621738695-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621743019-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621747283-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621760812-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621765215-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621778048-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621783655-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621789032-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621794171-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621798426-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621802720-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621806964-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621811229-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621815583-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621819827-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621824081-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621828346-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621832590-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621836855-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621841119-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621845403-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621849757-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621853992-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621858246-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621862610-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621866705-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621870959-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621875224-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621879438-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621883743-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621887957-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621892202-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621896496-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621900740-05:00 except Exception as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621905005-05:00 mapped_exc = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621909229-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621913553-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621917857-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621922142-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621926426-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621930710-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621934984-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621939219-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621943483-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621947748-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621952111-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621965213-05:00 raise [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621969636-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621973900-05:00 message = str(exc) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621978224-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621982499-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621986932-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621991763-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.621996315-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622000510-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622004546-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622008751-05:00 def test_parity_rundeck_execution(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622012975-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622017150-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622021365-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622025589-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622029874-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622033909-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622038154-05:00 tests/contract/test_fixture_parity.py:73: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622055818-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622061205-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622066215-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622070459-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622074694-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622078958-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622083153-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622087368-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622091394-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622095608-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622099833-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622104087-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622108153-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622112467-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622116791-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622121075-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622125270-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622129564-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622133769-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622137983-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622142178-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622146482-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622150727-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622154951-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622159186-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622163400-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622167764-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622171979-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622176193-05:00 last_exc = exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622189285-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622199762-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622205219-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622210537-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622215895-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622220298-05:00 ) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622224960-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622229065-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622233290-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622237525-05:00 __________________________ test_parity_rundeck_output __________________________ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622241590-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622245854-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622250049-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622254254-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622258598-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622262812-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622267057-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622271321-05:00 > yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622275347-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622279611-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622284273-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622288548-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622292742-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622298259-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622302464-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622306788-05:00 raise exc from None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622311231-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622315525-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622320018-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622324352-05:00 raise exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622328746-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622333149-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622390643-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622397462-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622404460-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622411180-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622417701-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622424132-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622431100-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622440126-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622446925-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622453376-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622459539-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622476537-05:00 map = {: , : } [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622480702-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622485006-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622489250-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622493574-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622497789-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622502023-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622506228-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622510423-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622514667-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622518872-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622522928-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622527331-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622531367-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622535572-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622539627-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622543832-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622548067-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622552281-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622556317-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622560591-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622564846-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622569070-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622573285-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622577519-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622581784-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622585969-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622590153-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622594418-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622598682-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622602907-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622607131-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622611336-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622615580-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622619775-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622623811-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622628065-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622632310-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622636654-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622640918-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622645133-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622649377-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622653622-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622657846-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622662170-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622672687-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622678204-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622693651-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622698044-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622702289-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622706513-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622710778-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622715360-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622719644-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622723819-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622728024-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622732239-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622736304-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622740578-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622744863-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622749067-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622753282-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622757507-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622761731-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622765966-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622770200-05:00 except Exception as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622774425-05:00 mapped_exc = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622778729-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622782944-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622787158-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622791383-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622795617-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622799842-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622804057-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622808271-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622812575-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622816820-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622821094-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622825279-05:00 raise [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622829504-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622833748-05:00 message = str(exc) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622837953-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622842138-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622846193-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622850448-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622854483-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622858688-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622862714-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622866899-05:00 def test_parity_rundeck_output(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622871133-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622875358-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622879602-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622884791-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622897186-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622901302-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622905536-05:00 tests/contract/test_fixture_parity.py:90: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622909771-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622913966-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622918230-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622922504-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622926709-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622930904-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622935108-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622939373-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622943398-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622947613-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622951877-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622956152-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622960694-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622965466-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622970187-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622974481-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622978925-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622983726-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622988537-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622992960-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.622997473-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623002254-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623007036-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623011330-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623015584-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623019819-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623024103-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623028427-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623032691-05:00 last_exc = exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623037323-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623049938-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623057542-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623061806-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623066071-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623070345-05:00 ) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623074709-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623078794-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623083038-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623087293-05:00 ____________________________ test_rundeck_reachable ____________________________ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623091388-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623095643-05:00 def test_rundeck_reachable(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623105762-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623111159-05:00 health = rc.healthcheck() # GET /api/{v}/system/info [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623126169-05:00 > assert health.reachable, f"rundeck unreachable: {health.detail}" [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623130612-05:00 E AssertionError: rundeck unreachable: rundeck: GET /api/48/system/info failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623134887-05:00 E assert False [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623139161-05:00 E + where False = .reachable [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623143246-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623147531-05:00 tests/contract/test_rundeck_contract.py:37: AssertionError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623151815-05:00 _________________________ test_rundeck_execution_shape _________________________ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623155960-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623160184-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623164449-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623168693-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623172928-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623177162-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623181437-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623185751-05:00 > yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623189866-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623194090-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623198385-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623202649-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623206943-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623211217-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623215462-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623219726-05:00 raise exc from None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623224070-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623228384-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623232639-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623236903-05:00 raise exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623241217-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623246237-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623250531-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623254785-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623259119-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623264944-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623269219-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623273453-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623277688-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623281932-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623286167-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623290421-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623294586-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623298930-05:00 map = {: , : } [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623303005-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623315391-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623319695-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623323969-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623328263-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623332538-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623336852-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623341106-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623345331-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623349585-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623353671-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623358094-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623362169-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623366384-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623370529-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623374823-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623379068-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623383352-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623387418-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623391692-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623395966-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623400250-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623404554-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623408839-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623413133-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623417328-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623421522-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623425777-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623430021-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623434246-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623438550-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623442904-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623447198-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623451413-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623455458-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623459663-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623463937-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623468202-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623472536-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623476820-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623481064-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623485319-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623489553-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623493788-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623503589-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623509125-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623514453-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623519632-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623532376-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623536799-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623541043-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623545318-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623549562-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623553846-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623558101-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623562325-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623566391-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623570645-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623574910-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623579174-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623583399-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623587633-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623591878-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623596142-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623600406-05:00 except Exception as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623604611-05:00 mapped_exc = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623608826-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623613110-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623617414-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623621708-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623625992-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623630247-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623634501-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623638746-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623642980-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623647245-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623651519-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623655783-05:00 raise [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623660038-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623664282-05:00 message = str(exc) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623668527-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623672781-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623676817-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623681101-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623685176-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623689481-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623693516-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623697731-05:00 def test_rundeck_execution_shape(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623702005-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623706220-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623710444-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623714500-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623718774-05:00 tests/contract/test_rundeck_contract.py:42: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623723078-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623727353-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623739619-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623743933-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623748177-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623752412-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623756627-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623760901-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623765185-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623769440-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623773674-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623777720-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623781994-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623786268-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623790741-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623794787-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623799061-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623803346-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623807570-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623811854-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623816099-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623820333-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623824538-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623828812-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623833077-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623837361-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623841615-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623845840-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623850104-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623854518-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623858762-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623863046-05:00 last_exc = exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623867331-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623871516-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623875750-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623879985-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623884229-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623888493-05:00 ) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623892817-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623896893-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623901167-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623905402-05:00 __________________________ test_rundeck_output_shape ___________________________ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623909487-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623913662-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623923185-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623928572-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623933890-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623939010-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623951852-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623956206-05:00 > yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623960272-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623964486-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623968751-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623973005-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623977230-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623981534-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623985838-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623990072-05:00 raise exc from None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623994307-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.623998700-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624002955-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624007189-05:00 raise exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624011494-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624015827-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624020082-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624024336-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624028561-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624032815-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624037050-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624051582-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624060618-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624065002-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624069236-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624073570-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624077685-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624081989-05:00 map = {: , : } [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624086045-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624090260-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624094484-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624098818-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624103073-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624107327-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624111562-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624115796-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624120001-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624124225-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624128281-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624132585-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624136661-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624140875-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624144961-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624149215-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624162058-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624166342-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624170408-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624174702-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624179056-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624183320-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624187554-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624191819-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624196073-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624200298-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624204502-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624208757-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624213051-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624217315-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624221570-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624225834-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624230128-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624234343-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624238409-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624242673-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624246927-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624251192-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624255466-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624259691-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624263935-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624268150-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624272384-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624276658-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624280883-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624285674-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624289968-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624294173-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624298388-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624302602-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624306857-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624311121-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624315366-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624325356-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624330683-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624337125-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624342164-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624346508-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624350812-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624355017-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624359252-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624372035-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624376389-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624380673-05:00 yield [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624384947-05:00 except Exception as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624389211-05:00 mapped_exc = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624393555-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624397830-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624402084-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624406348-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624410583-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624414837-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624419092-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624423316-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624427600-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624431915-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624436219-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624440453-05:00 raise [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624444688-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624448942-05:00 message = str(exc) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624453177-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624457421-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624461507-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624465791-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624469856-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624474081-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624478137-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624482381-05:00 def test_rundeck_output_shape(): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624486606-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624490890-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624495144-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624499190-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624503474-05:00 tests/contract/test_rundeck_contract.py:59: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624507738-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624511993-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624516237-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624520522-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624524796-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624529070-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624533325-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624537569-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624541823-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624546048-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624550302-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624554378-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624558652-05:00 self = [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624562936-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624580620-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624584795-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624590262-05:00 def _request( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624594606-05:00 self, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624598930-05:00 method: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624603174-05:00 path: str, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624607459-05:00 *, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624611802-05:00 retry: bool = True, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624616037-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624620281-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624624536-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624628810-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624633094-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624637369-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624641613-05:00 try: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624645977-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624650251-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624654486-05:00 last_exc = exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624658730-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624663014-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624667249-05:00 continue [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624672885-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624677199-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624681573-05:00 ) from exc [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624685887-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624689952-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624694217-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624698521-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624702815-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624706881-05:00 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624711175-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624715449-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624719713-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624723948-05:00 config/admin_gate.py 90 90 30 0 0% 32-203 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624728242-05:00 config/readiness.py 75 75 12 0 0% 47-184 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624752953-05:00 config/settings.py 54 2 6 3 92% 130->138, 139, 141 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624770856-05:00 config/urls.py 9 9 0 0 0% 2-18 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624776720-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624791710-05:00 fleet/admin.py 256 105 34 0 52% 73-74, 78, 81-84, 98, 102, 105, 139, 145-146, 168, 171, 192, 195, 206, 210, 257-266, 274-280, 285-295, 308-310, 339-343, 347-355, 359-362, 367-384, 389-403, 412-423, 459, 463-466, 470-499, 503-509 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624798798-05:00 fleet/api_consent.py 84 84 32 0 0% 23-170 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624820815-05:00 fleet/api_manifest.py 28 28 8 0 0% 38-90 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624825328-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624829910-05:00 fleet/contacts.py 26 18 8 0 24% 54, 63-70, 82-89, 102-129 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624834165-05:00 fleet/correlate.py 51 51 12 0 0% 28-170 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624838449-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624842803-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624847097-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624851590-05:00 fleet/logs.py 113 113 18 0 0% 26-287 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624855924-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624860218-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624864751-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624869075-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624873339-05:00 fleet/management/commands/sync_devices.py 222 222 84 0 0% 34-364 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624877673-05:00 fleet/manifest.py 16 16 2 0 0% 32-101 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624881918-05:00 fleet/models.py 136 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624886798-05:00 fleet/reconcile.py 111 79 34 0 22% 62, 67, 71-72, 82-87, 104-142, 148-161, 181-194, 202-205, 223-226, 239-244, 258-287 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624891092-05:00 fleet/roles.py 27 14 6 0 39% 95-108, 129-133 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624895416-05:00 fleet/scoping.py 32 25 12 0 16% 17-19, 26-28, 36-39, 44-47, 53-58, 66-72 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624900088-05:00 fleet/selftest.py 116 90 24 0 19% 67, 71, 90-124, 136-163, 168-173, 184-191, 201-214, 219-224, 235-254, 269-277 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624905864-05:00 fleet/status.py 144 82 26 0 36% 78, 101-106, 110-120, 124, 128, 132, 135-136, 163-164, 168, 185-188, 200-215, 219-221, 232-235, 241-255, 260-278, 283-286, 298-303, 307-312 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624910198-05:00 fleet/tests_authority.py 125 125 2 0 0% 4-229 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624914531-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-284 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624918796-05:00 fleet/tests_consent_event.py 113 113 2 0 0% 9-195 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624923060-05:00 fleet/tests_correlate.py 51 51 4 0 0% 2-83 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624927324-05:00 fleet/tests_logs.py 163 163 2 0 0% 11-242 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624931648-05:00 fleet/tests_manifest.py 80 80 0 0 0% 15-190 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624935903-05:00 fleet/tests_memberships.py 179 179 2 0 0% 15-305 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624949173-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-255 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624953457-05:00 fleet/tests_status.py 219 219 2 0 0% 8-377 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624957761-05:00 fleet/tests_sync.py 178 178 8 0 0% 21-343 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624961996-05:00 fleet/tests_sync_integration.py 29 29 2 0 0% 17-83 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624966280-05:00 fleet/urls_consent.py 3 3 0 0 0% 5-9 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624971777-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624976111-05:00 fleet/urls_manifest.py 3 3 0 0 0% 7-11 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624980385-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624990504-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.624996011-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625001478-05:00 integrations/__init__.py 18 5 0 0 72% 48, 52, 56, 60, 64 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625007950-05:00 integrations/base.py 122 33 32 12 67% 39, 43-51, 55, 60-62, 96, 99, 100->108, 111-113, 116, 119, 146-147, 161, 165, 176, 179, 186-187, 193, 196, 205, 220 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625012761-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625017025-05:00 integrations/enroll.py 20 10 4 0 42% 28, 37-46, 50, 66 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625021279-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625025921-05:00 integrations/grafana.py 68 50 22 0 20% 27, 30, 33, 36, 43-50, 60-72, 75-97, 110-123, 126-135, 141 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625030265-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625034540-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625038883-05:00 integrations/mender.py 79 57 26 0 21% 28-46, 56-74, 77-83, 87-92, 96-97, 102, 105-106, 118-124, 133-134, 148 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625060344-05:00 integrations/rundeck.py 46 25 10 0 38% 44-49, 65-81, 85-89, 95-103, 114-117, 126 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625064728-05:00 integrations/types.py 82 2 0 0 98% 68, 72 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625068972-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625073227-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625077441-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625081696-05:00 stores/admin.py 87 30 12 0 58% 95, 101-104, 107-110, 118-121, 142, 145, 148-152, 156-168, 183 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625085990-05:00 stores/api.py 66 66 20 0 0% 35-159 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625099648-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625104071-05:00 stores/forms.py 35 20 12 0 32% 73-77, 81-84, 87-105 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625109280-05:00 stores/geocoding.py 115 115 34 0 0% 15-210 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625113634-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625117858-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625122073-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625126298-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625130552-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625134816-05:00 stores/management/commands/reattach_store.py 50 50 14 0 0% 29-94 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625139041-05:00 stores/management/commands/seed_e2e_fleet.py 231 231 34 0 0% 52-623 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625143275-05:00 stores/management/commands/seed_pilot_stores.py 68 68 16 0 0% 20-141 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625147500-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-54 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625151745-05:00 stores/map.py 69 69 18 0 0% 19-155 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625156019-05:00 stores/models.py 112 4 0 0 96% 185, 211, 228, 231 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625160263-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625164538-05:00 stores/tests_api.py 105 105 0 0 0% 12-174 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625168742-05:00 stores/tests_authority.py 128 128 4 0 0% 7-238 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625172977-05:00 stores/tests_basemap.py 41 41 4 0 0% 7-80 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625177172-05:00 stores/tests_collector_config.py 66 66 2 0 0% 8-104 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625181386-05:00 stores/tests_geo.py 72 72 0 0 0% 8-127 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625185621-05:00 stores/tests_map.py 68 68 2 0 0% 6-106 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625200173-05:00 stores/tests_pilot_seed.py 94 94 0 0 0% 7-175 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625205740-05:00 stores/tests_report_config.py 29 29 0 0 0% 6-47 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625211018-05:00 stores/urls.py 4 4 0 0 0% 1-6 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625216406-05:00 stores/views.py 39 39 4 0 0% 2-112 [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625221157-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625225382-05:00 TOTAL 5404 4397 788 19 17% [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625230004-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625234586-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625239348-05:00 SKIPPED [5] tests/contract/_live.py:75: mender not configured (MENDER_URL/MENDER_API_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625253095-05:00 SKIPPED [5] tests/contract/_live.py:101: grafana not configured (GRAFANA_URL/GRAFANA_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625257389-05:00 =================== 5 failed, 16 passed, 10 skipped in 9.96s =================== [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625262001-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625266295-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-staging-6t9q6-contract-pod/step-run-contract] 2026-08-04T21:47:30.625270600-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above