===== app-contract-nightly-staging-d79cr-archive-logs-pod.log ===== [pod/app-contract-nightly-staging-d79cr-archive-logs-pod/prepare] 2026-08-12T21:47:31.459214206-05:00 2026/08/13 02:47:31 Entrypoint initialization [pod/app-contract-nightly-staging-d79cr-archive-logs-pod/place-scripts] 2026-08-12T21:47:32.621461593-05:00 2026/08/13 02:47:32 Decoded script /tekton/scripts/script-0-p4nnm [pod/app-contract-nightly-staging-d79cr-archive-logs-pod/place-scripts] 2026-08-12T21:47:32.637029691-05:00 2026/08/13 02:47:32 Decoded script /tekton/scripts/script-1-cd82t [pod/app-contract-nightly-staging-d79cr-archive-logs-pod/step-collect-logs] 2026-08-12T21:47:37.000587169-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-staging-d79cr ===== app-contract-nightly-staging-d79cr-contract-pod.log ===== [pod/app-contract-nightly-staging-d79cr-contract-pod/prepare] 2026-08-12T21:47:04.231718114-05:00 2026/08/13 02:47:04 Entrypoint initialization [pod/app-contract-nightly-staging-d79cr-contract-pod/place-scripts] 2026-08-12T21:47:05.318877553-05:00 2026/08/13 02:47:05 Decoded script /tekton/scripts/script-0-pznks [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:08.959387441-05:00 resolved deployed image: registry.storeminder.ai/storeminder/app:5cad235cc948928c86fe0ecbf312ecde7964ab68 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:09.045762626-05:00 job.batch/app-contract-20260813-024708 created [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.648067003-05:00 ----- contract Job logs (app-contract-20260813-024708) ----- [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816409079-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816438079-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816447729-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816454709-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816461829-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816468269-05:00 rootdir: /app [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816474949-05:00 configfile: pytest.ini [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816481609-05:00 plugins: django-4.14.0, cov-7.1.0, anyio-4.14.2 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816488669-05:00 collected 31 items [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816494899-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816502349-05:00 tests/contract/test_fixture_parity.py .FFsss [ 19%] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816524569-05:00 tests/contract/test_grafana_contract.py sss [ 29%] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816532329-05:00 tests/contract/test_headscale_contract.py ... [ 38%] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816547689-05:00 tests/contract/test_mender_contract.py ssss [ 51%] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816554749-05:00 tests/contract/test_rundeck_contract.py FFF [ 61%] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816561139-05:00 tests/contract/test_shape_selfcheck.py ............ [100%] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816567409-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816573909-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816580239-05:00 ________________________ test_parity_rundeck_execution _________________________ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816586599-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816593789-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816600669-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816607599-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816614709-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816621479-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816628239-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816634879-05:00 > yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816641419-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816648509-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816655208-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816662108-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816668688-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816675078-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816682698-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816689428-05:00 raise exc from None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816696188-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816702708-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816709168-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816715648-05:00 raise exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816736408-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816740928-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816745638-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816749948-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816754528-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816758858-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816763358-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816768108-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816772598-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816776738-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816781468-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816786578-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816790608-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816795678-05:00 map = {: , : } [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816801398-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816805678-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816810268-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816815058-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816819568-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816824128-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816829618-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816834298-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816838828-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816843618-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816848208-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816853678-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816858108-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816863138-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816868128-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816873108-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816878348-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816883698-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816888918-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816929888-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816934948-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816939558-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816944178-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816948818-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816958418-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816963238-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816967688-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816972238-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816976758-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816981328-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816985908-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816990568-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.816995108-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817001208-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817022607-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817027857-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817038207-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817042177-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817045467-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817048607-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817051717-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817054767-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817057987-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817061087-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817064197-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817067287-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817070357-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817073427-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817076487-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817079517-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817082627-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817085687-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817088697-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817091827-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817094877-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817097957-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817100897-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817103937-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817106997-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817110047-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817113087-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817116167-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817119217-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817122367-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817125427-05:00 except Exception as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817128457-05:00 mapped_exc = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817131497-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817134597-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817137657-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817140757-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817143817-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817146887-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817149907-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817152937-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817156027-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817159097-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817162177-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817171407-05:00 raise [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817174507-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817177577-05:00 message = str(exc) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817180627-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817183677-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817186577-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817189697-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817192657-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817195797-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817198727-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817201807-05:00 def test_parity_rundeck_execution(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817204857-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817207877-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817210877-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817214007-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817217197-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817220167-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817223227-05:00 tests/contract/test_fixture_parity.py:73: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817226337-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817229457-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817232487-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817235507-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817238527-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817241517-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817244607-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817247647-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817250567-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817253587-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817256657-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817259747-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817262687-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817265717-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817268937-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817272047-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817275097-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817278127-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817281127-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817284137-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817287197-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817290277-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817293347-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817296387-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817299447-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817302507-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817305607-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817309637-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817312787-05:00 last_exc = exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817321257-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817328057-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817331257-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817335477-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817338627-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817341707-05:00 ) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817346047-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817348987-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817352117-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817355307-05:00 __________________________ test_parity_rundeck_output __________________________ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817358277-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817361307-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817364507-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817368217-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817371367-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817374927-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817378067-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817381187-05:00 > yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817384137-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817387357-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817390397-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817393526-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817396586-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817399646-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817402826-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817405926-05:00 raise exc from None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817409186-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817412236-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817415296-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817418366-05:00 raise exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817421406-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817424456-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817427556-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817430606-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817433736-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817436786-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817439826-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817442896-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817445946-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817448986-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817452096-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817455146-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817463296-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817467056-05:00 map = {: , : } [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817470066-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817473136-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817476236-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817479456-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817482656-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817485846-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817488876-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817491926-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817494926-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817498106-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817501076-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817504206-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817507216-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817509946-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817512396-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817514946-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817517596-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817520186-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817523396-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817527056-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817530776-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817534566-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817538546-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817542306-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817545856-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817549256-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817551706-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817554176-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817556696-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817559246-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817561746-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817564246-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817566756-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817569226-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817571626-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817574106-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817576716-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817579216-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817581736-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817584686-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817587186-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817589746-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817592326-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817594806-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817601246-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817615016-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817617536-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817620076-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817622816-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817625406-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817628526-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817631146-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817633616-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817636066-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817638566-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817641086-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817643476-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817646216-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817648756-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817651296-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817653766-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817656286-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817659706-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817662236-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817664726-05:00 except Exception as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817667216-05:00 mapped_exc = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817669746-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817673916-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817676446-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817679006-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817681656-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817684246-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817686736-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817689356-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817691966-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817694476-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817696986-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817699516-05:00 raise [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817702026-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817704626-05:00 message = str(exc) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817707146-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817709596-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817711986-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817714556-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817716956-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817719416-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817721806-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817724386-05:00 def test_parity_rundeck_output(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817726856-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817729376-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817731876-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817734536-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817742026-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817744466-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817746886-05:00 tests/contract/test_fixture_parity.py:90: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817749426-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817751906-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817754386-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817756946-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817759516-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817761966-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817764415-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817766895-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817769295-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817771805-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817774365-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817776885-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817779325-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817781785-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817784285-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817786755-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817789225-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817791705-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817794175-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817796725-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817799365-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817801865-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817804405-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817807055-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817809675-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817812265-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817814815-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817817305-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817819795-05:00 last_exc = exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817822255-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817824775-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817827285-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817829735-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817832205-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817834695-05:00 ) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817837255-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817839695-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817842145-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817844995-05:00 ____________________________ test_rundeck_reachable ____________________________ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817847425-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817849885-05:00 def test_rundeck_reachable(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817855055-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817857635-05:00 health = rc.healthcheck() # GET /api/{v}/system/info [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817864605-05:00 > assert health.reachable, f"rundeck unreachable: {health.detail}" [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817867235-05:00 E AssertionError: rundeck unreachable: rundeck: GET /api/48/system/info failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817869725-05:00 E assert False [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817872275-05:00 E + where False = .reachable [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817874665-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817877135-05:00 tests/contract/test_rundeck_contract.py:37: AssertionError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817879635-05:00 _________________________ test_rundeck_execution_shape _________________________ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817882015-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817884505-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817887005-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817889465-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817891995-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817894455-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817896955-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817899495-05:00 > yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817901895-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817904375-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817906865-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817909435-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817911925-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817914425-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817916905-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817919425-05:00 raise exc from None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817922015-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817924885-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817927405-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817929935-05:00 raise exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817932405-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817934975-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817937475-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817939975-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817942475-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817944985-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817947455-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817950605-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817953125-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817955635-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817958145-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817960615-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817963025-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817965665-05:00 map = {: , : } [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817972905-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817975395-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817977865-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817980505-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817982965-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817985505-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817987975-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817990455-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817992985-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817995455-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.817997835-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818000985-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818003365-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818016305-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818021535-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818024525-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818027185-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818029715-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818032105-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818034605-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818037085-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818039685-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818042195-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818044755-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818047295-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818049775-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818052285-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818054805-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818057325-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818059865-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818062345-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818065635-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818068155-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818070635-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818073025-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818075495-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818078825-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818081375-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818083865-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818086635-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818089075-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818091555-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818094065-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818096565-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818101915-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818104495-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818107035-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818126235-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818128745-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818131265-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818133775-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818136304-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818138814-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818141284-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818143784-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818146284-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818148694-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818151154-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818153644-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818156204-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818158694-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818161174-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818163694-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818166164-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818168644-05:00 except Exception as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818171174-05:00 mapped_exc = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818173654-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818176124-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818178624-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818181124-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818183644-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818186194-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818188764-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818191244-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818193734-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818196234-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818198764-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818201274-05:00 raise [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818203774-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818207594-05:00 message = str(exc) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818210124-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818212584-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818214964-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818217534-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818219944-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818222394-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818224804-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818227324-05:00 def test_rundeck_execution_shape(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818229794-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818232264-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818234794-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818237174-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818239644-05:00 tests/contract/test_rundeck_contract.py:42: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818242964-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818249524-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818252124-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818254664-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818257154-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818259724-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818262174-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818264644-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818267094-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818269624-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818272174-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818274574-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818277114-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818279744-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818282274-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818284674-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818287164-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818289664-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818292144-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818294624-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818297134-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818299594-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818302054-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818304534-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818307004-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818309524-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818312014-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818314494-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818316974-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818319474-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818329414-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818331994-05:00 last_exc = exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818334464-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818336924-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818339414-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818341894-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818344384-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818346854-05:00 ) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818349414-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818351834-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818354294-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818356854-05:00 __________________________ test_rundeck_output_shape ___________________________ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818359254-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818361824-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818367314-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818369854-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818372414-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818379094-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818381664-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818384134-05:00 > yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818386524-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818388994-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818391584-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818394074-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818396594-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818399064-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818401644-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818404124-05:00 raise exc from None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818406684-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818409174-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818411714-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818414214-05:00 raise exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818416674-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818419754-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818422314-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818424964-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818427524-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818430014-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818433514-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818436034-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818438574-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818441034-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818443604-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818446194-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818448604-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818451274-05:00 map = {: , : } [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818453684-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818456184-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818458754-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818461284-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818463914-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818466384-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818468934-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818472524-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818475284-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818478884-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818481314-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818483924-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818486344-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818488864-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818495374-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818498094-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818500574-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818503084-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818505454-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818508073-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818510553-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818513153-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818515673-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818518203-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818520713-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818523163-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818525633-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818528213-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818530763-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818533273-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818535833-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818538333-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818540823-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818543283-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818545663-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818548123-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818550663-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818553193-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818555693-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818558143-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818560593-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818563153-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818565623-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818568113-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818570703-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818573203-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818575713-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818578263-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818580743-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818583223-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818585723-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818588193-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818590703-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818595523-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818598063-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818600563-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818602963-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818605403-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818607893-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818610403-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818616903-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818619483-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818622873-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818625383-05:00 yield [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818627883-05:00 except Exception as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818630713-05:00 mapped_exc = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818633213-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818635793-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818638293-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818640783-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818643343-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818645843-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818648433-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818650933-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818653413-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818655993-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818658573-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818661053-05:00 raise [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818663543-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818666043-05:00 message = str(exc) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818668543-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818671413-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818673803-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818676423-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818678843-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818681343-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818683723-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818686223-05:00 def test_rundeck_output_shape(): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818688703-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818691193-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818694033-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818696933-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818699693-05:00 tests/contract/test_rundeck_contract.py:59: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818728823-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818733883-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818737743-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818742133-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818747113-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818754753-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818760913-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818765073-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818768893-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818773493-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818777193-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818780743-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818784433-05:00 self = [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818793343-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818795933-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818798363-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818800883-05:00 def _request( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818803353-05:00 self, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818805863-05:00 method: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818808323-05:00 path: str, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818810853-05:00 *, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818813313-05:00 retry: bool = True, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818815823-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818818273-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818820813-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818823303-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818825793-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818828273-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818830723-05:00 try: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818833213-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818835733-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818838213-05:00 last_exc = exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818840693-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818843153-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818845623-05:00 continue [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818848093-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818850583-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818853083-05:00 ) from exc [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818855653-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818858053-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818860563-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818863133-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818865663-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818868083-05:00 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818870843-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818873323-05:00 ------------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818875903-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818878422-05:00 config/admin_gate.py 90 90 30 0 0% 32-203 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818880872-05:00 config/readiness.py 75 75 12 0 0% 47-184 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818893902-05:00 config/settings.py 58 2 6 3 92% 130->138, 139, 141 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818903552-05:00 config/urls.py 9 9 0 0 0% 2-18 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818911442-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818915352-05:00 fleet/admin.py 292 122 46 0 50% 74-75, 79, 82-85, 99, 103, 106, 140, 146-147, 169, 172, 193, 196, 207, 211, 258-267, 275-281, 286-296, 309-311, 340-344, 348-356, 360-363, 368-385, 390-404, 413-424, 460, 464-467, 471-500, 504-510, 524, 534-549, 584, 588 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818926762-05:00 fleet/api_consent.py 84 84 32 0 0% 23-170 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818929512-05:00 fleet/api_manifest.py 28 28 8 0 0% 38-90 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818932022-05:00 fleet/apps.py 7 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818934762-05:00 fleet/contacts.py 26 18 8 0 24% 54, 63-70, 82-89, 102-129 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818937222-05:00 fleet/correlate.py 51 51 12 0 0% 28-170 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818939692-05:00 fleet/device_sts.py 65 65 14 0 0% 36-220 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818942922-05:00 fleet/deviceconfig.py 180 123 68 0 23% 106, 113, 118, 123, 129, 141, 166-219, 224, 238-253, 277-331, 342-353, 357-359, 363-374, 383-385, 395-397, 403-415 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818945532-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818948022-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818950552-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818953092-05:00 fleet/knowledge.py 48 36 22 0 17% 41-51, 57-76, 88-101, 107-109, 121 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818955632-05:00 fleet/knowledge_seed.py 4 4 0 0 0% 26-140 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818958202-05:00 fleet/logs.py 113 113 18 0 0% 26-287 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818960732-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818963312-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818965942-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818968512-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818971012-05:00 fleet/management/commands/reconcile_deviceconfig.py 60 60 24 0 0% 26-148 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818973492-05:00 fleet/management/commands/sync_devices.py 222 222 84 0 0% 34-364 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818976122-05:00 fleet/manifest.py 28 28 4 0 0% 37-126 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818978732-05:00 fleet/models.py 174 16 14 0 84% 584-598, 606-616 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818981592-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818984152-05:00 fleet/roles.py 27 14 6 0 39% 95-108, 129-133 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818987242-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818989822-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818992712-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.818999962-05:00 fleet/tests_authority.py 125 125 2 0 0% 4-229 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819002522-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-284 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819004972-05:00 fleet/tests_consent_event.py 113 113 2 0 0% 9-195 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819013612-05:00 fleet/tests_correlate.py 51 51 4 0 0% 2-83 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819022512-05:00 fleet/tests_device_sts.py 150 150 2 0 0% 12-280 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819025062-05:00 fleet/tests_deviceconfig.py 334 334 4 0 0% 24-516 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819027632-05:00 fleet/tests_knowledge.py 178 178 6 0 0% 18-322 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819033452-05:00 fleet/tests_logs.py 163 163 2 0 0% 11-242 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819036132-05:00 fleet/tests_manifest.py 92 92 0 0 0% 15-218 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819039532-05:00 fleet/tests_memberships.py 179 179 2 0 0% 15-305 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819042082-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-255 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819044692-05:00 fleet/tests_status.py 219 219 2 0 0% 8-377 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819047272-05:00 fleet/tests_sync.py 178 178 8 0 0% 21-343 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819049722-05:00 fleet/tests_sync_integration.py 29 29 2 0 0% 17-83 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819052232-05:00 fleet/urls_consent.py 3 3 0 0 0% 5-9 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819054662-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819057202-05:00 fleet/urls_manifest.py 3 3 0 0 0% 7-11 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819059632-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819062152-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819064662-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819067232-05:00 integrations/__init__.py 18 5 0 0 72% 48, 52, 56, 60, 64 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819069872-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819072422-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819074962-05:00 integrations/enroll.py 20 10 4 0 42% 28, 37-46, 50, 66 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819077432-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819081042-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819083592-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819091032-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819093622-05:00 integrations/mender.py 116 85 38 0 20% 33-51, 61-79, 82-88, 92-97, 101-102, 111-121, 131-133, 143-153, 158, 161-162, 174-180, 189-190, 210-218, 221, 231 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819096412-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819098902-05:00 integrations/types.py 90 2 0 0 98% 68, 72 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819101372-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819103932-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819106452-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819108932-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819111932-05:00 stores/api.py 66 66 20 0 0% 35-159 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819114562-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819117082-05:00 stores/forms.py 35 20 12 0 32% 73-77, 81-84, 87-105 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819119532-05:00 stores/geocoding.py 115 115 34 0 0% 15-210 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819122052-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819124592-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819127072-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819129552-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819132092-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819134582-05:00 stores/management/commands/reattach_store.py 50 50 14 0 0% 29-94 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819141992-05:00 stores/management/commands/seed_e2e_fleet.py 231 231 34 0 0% 52-623 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819144632-05:00 stores/management/commands/seed_pilot_stores.py 68 68 16 0 0% 20-141 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819147122-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-54 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819149612-05:00 stores/map.py 69 69 18 0 0% 19-155 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819152132-05:00 stores/models.py 112 4 0 0 96% 185, 211, 228, 231 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819154972-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819157602-05:00 stores/tests_api.py 105 105 0 0 0% 12-174 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819160122-05:00 stores/tests_authority.py 128 128 4 0 0% 7-238 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819162742-05:00 stores/tests_basemap.py 41 41 4 0 0% 7-80 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819170422-05:00 stores/tests_collector_config.py 66 66 2 0 0% 8-104 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819172972-05:00 stores/tests_geo.py 72 72 0 0 0% 8-127 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819175492-05:00 stores/tests_map.py 68 68 2 0 0% 6-106 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819178382-05:00 stores/tests_pilot_seed.py 94 94 0 0 0% 7-175 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819180842-05:00 stores/tests_report_config.py 29 29 0 0 0% 6-47 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819183462-05:00 stores/urls.py 4 4 0 0 0% 1-6 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819185932-05:00 stores/views.py 40 40 4 0 0% 2-117 [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819188452-05:00 ------------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819190962-05:00 TOTAL 6573 5433 968 19 15% [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819194022-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819196612-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819199672-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819202202-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-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819205502-05:00 =================== 5 failed, 16 passed, 10 skipped in 9.25s =================== [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819208082-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.819210612-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-staging-d79cr-contract-pod/step-run-contract] 2026-08-12T21:47:29.821530445-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above