===== app-contract-nightly-2d95h-archive-logs-pod.log ===== [pod/app-contract-nightly-2d95h-archive-logs-pod/place-scripts] 2026-07-21T22:17:33.321588783-05:00 2026/07/22 03:17:33 Decoded script /tekton/scripts/script-0-rmj77 [pod/app-contract-nightly-2d95h-archive-logs-pod/place-scripts] 2026-07-21T22:17:33.346018167-05:00 2026/07/22 03:17:33 Decoded script /tekton/scripts/script-1-xq5j6 [pod/app-contract-nightly-2d95h-archive-logs-pod/step-collect-logs] 2026-07-21T22:17:36.985021581-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-2d95h [pod/app-contract-nightly-2d95h-archive-logs-pod/prepare] 2026-07-21T22:17:32.488197487-05:00 2026/07/22 03:17:32 Entrypoint initialization ===== app-contract-nightly-2d95h-contract-pod.log ===== [pod/app-contract-nightly-2d95h-contract-pod/prepare] 2026-07-21T22:17:03.513782509-05:00 2026/07/22 03:17:03 Entrypoint initialization [pod/app-contract-nightly-2d95h-contract-pod/place-scripts] 2026-07-21T22:17:04.465957684-05:00 2026/07/22 03:17:04 Decoded script /tekton/scripts/script-0-zwgvp [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:09.515106114-05:00 resolved deployed image: registry.storeminder.ai/images/app:cf42d032221dcf33bd849cf0a5b75c912e107374 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:09.593987914-05:00 job.batch/app-contract-20260722-031709 created [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.229418243-05:00 ----- contract Job logs (app-contract-20260722-031709) ----- [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625079436-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625114246-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625120516-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625125206-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625129646-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625134126-05:00 rootdir: /app [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625139766-05:00 configfile: pytest.ini [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625145106-05:00 plugins: django-4.12.0, cov-7.1.0, anyio-4.14.1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625149616-05:00 collected 28 items [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625153936-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625158566-05:00 tests/contract/test_fixture_parity.py FFFsss [ 21%] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625163016-05:00 tests/contract/test_grafana_contract.py sss [ 32%] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625167686-05:00 tests/contract/test_headscale_contract.py .F. [ 42%] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625172686-05:00 tests/contract/test_mender_contract.py ssss [ 57%] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625177096-05:00 tests/contract/test_rundeck_contract.py FFF [ 67%] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625181536-05:00 tests/contract/test_shape_selfcheck.py ......... [100%] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625185906-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625190336-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625194826-05:00 __________________________ test_parity_headscale_node __________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625199076-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625203586-05:00 def test_parity_headscale_node(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625207956-05:00 hs = _live.live_headscale() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625212355-05:00 live = (_live.get_json(hs, "/api/v1/node").get("nodes") or [None])[0] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625216845-05:00 assert live is not None, "no live headscale node to diff" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625221255-05:00 > _assert_parity( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625225655-05:00 _shapes.HEADSCALE_NODE, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625230835-05:00 live, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625235235-05:00 { [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625240725-05:00 "integrations/fixtures/headscale_nodes.json": _stub("headscale_nodes.json")["nodes"][0], [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625246615-05:00 "tests.fixtures.headscale_nodes()": fixtures.headscale_nodes()["nodes"][0], [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625250935-05:00 }, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625255275-05:00 ) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625259505-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625263825-05:00 tests/contract/test_fixture_parity.py:55: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625268205-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625272415-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625277825-05:00 spec = ShapeSpec(label='headscale.node', required=frozenset({'user', 'ipAddresses', 'id', 'name', 'lastSeen', 'online'}), any_of=(frozenset({'forcedTags', 'validTags'}),), optional=frozenset()) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625284075-05:00 live_item = {'id': '22', 'machineKey': 'mkey:c95b85dcda493047ea984d4c8feffb69ae453c3136b247b66a4a395acb0e031a', 'nodeKey': 'nodeke...f032f97d0a60d747b1f076f', 'discoKey': 'discokey:13727c44cc12a1446d2bc80df8989e56c7ddc788bd529689fb5d81826df92b59', ...} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625302895-05:00 refs = {'integrations/fixtures/headscale_nodes.json': {'id': '1', 'name': 'sm-x86-001', 'user': {'name': 'edge'}, 'ipAddresse... 'nodeKey': 'nodekey:0000000000000000000000000000000000000000000000000000000000000001', 'user': {'name': 'edge'}, ...}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625306045-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625309145-05:00 def _assert_parity(spec, live_item, refs: dict): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625312155-05:00 """Diff ``live_item`` against each named reference; fail on any critical drift.""" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625315405-05:00 problems = [] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625318405-05:00 for ref_name, ref_item in refs.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625321385-05:00 report = _shapes.parity(spec, live_item, ref_item) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625324325-05:00 print(f"\n=== {spec.label} vs {ref_name} ===\n{report.describe()}") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625327305-05:00 if report.critical(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625330355-05:00 problems.append(f"{spec.label} vs {ref_name}:\n{report.describe()}") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625333395-05:00 > assert not problems, "STUB-VS-REALITY DRIFT:\n\n" + "\n\n".join(problems) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625336605-05:00 E AssertionError: STUB-VS-REALITY DRIFT: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625350665-05:00 E [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625353765-05:00 E headscale.node vs integrations/fixtures/headscale_nodes.json: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625356735-05:00 E [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625359815-05:00 E CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625362785-05:00 E DRIFT: stub carries client-read key(s) LIVE no longer emits: ['validTags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625366215-05:00 E info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'expiry', 'givenName', 'machineKey', 'nodeKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625369315-05:00 E [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625372285-05:00 E headscale.node vs tests.fixtures.headscale_nodes(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625375605-05:00 E [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625378695-05:00 E CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625381784-05:00 E DRIFT: stub carries client-read key(s) LIVE no longer emits: ['forcedTags', 'validTags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625385414-05:00 E info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625395354-05:00 E assert not ["headscale.node vs integrations/fixtures/headscale_nodes.json:\n[headscale.node] live-vs-stub parity:\n CRITICAL one...'approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags']"] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625398404-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625401364-05:00 tests/contract/test_fixture_parity.py:48: AssertionError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625404404-05:00 ----------------------------- Captured stdout call ----------------------------- [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625407264-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625410534-05:00 === headscale.node vs integrations/fixtures/headscale_nodes.json === [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625413524-05:00 [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625416694-05:00 CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625419754-05:00 DRIFT: stub carries client-read key(s) LIVE no longer emits: ['validTags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625429324-05:00 info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'expiry', 'givenName', 'machineKey', 'nodeKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625432274-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625435214-05:00 === headscale.node vs tests.fixtures.headscale_nodes() === [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625438224-05:00 [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625441144-05:00 CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625444114-05:00 DRIFT: stub carries client-read key(s) LIVE no longer emits: ['forcedTags', 'validTags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625447114-05:00 info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625450164-05:00 ________________________ test_parity_rundeck_execution _________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625453024-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625456494-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625459524-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625462514-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625468784-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625471954-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625474954-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625478094-05:00 > yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625480994-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625484204-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625487204-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625490224-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625493174-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625497074-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625500194-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625503654-05:00 raise exc from None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625506834-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625509944-05:00 response = connection.handle_request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625513044-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625516124-05:00 raise exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625519444-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625522454-05:00 stream = self._connect(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625525494-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625528464-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625531574-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625536844-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625575683-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625580323-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625587583-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625592203-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625596663-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625601153-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625616443-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625620863-05:00 map = {: , : } [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625623773-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625626743-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625629753-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625632873-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625635853-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625638873-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625642093-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625645103-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625648023-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625651783-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625654663-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625657673-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625660543-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625663533-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625666383-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625669283-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625672343-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625675293-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625678203-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625681133-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625684103-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625689223-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625692233-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625695173-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625698073-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625701143-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625704133-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625707103-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625714523-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625717642-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625720722-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625723662-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625726712-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625729712-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625732532-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625735432-05:00 integrations/base.py:135: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625738422-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625741532-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625744552-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625747542-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625750582-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625753542-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625757062-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625760162-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625763142-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625771362-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625774382-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625777342-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625780332-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625783342-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625786322-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625789302-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625792232-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625795272-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625798262-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625801222-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625804082-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625807032-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625810772-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625813812-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625816792-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625820452-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625823422-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625826352-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625829362-05:00 except Exception as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625832292-05:00 mapped_exc = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625835252-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625838242-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625841262-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625844292-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625847292-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625850232-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625853242-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625856202-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625859192-05:00 mapped_exc = to_exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625862232-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625865212-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625868212-05:00 raise [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625871182-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625874122-05:00 message = str(exc) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625877072-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625880212-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625883052-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625886031-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625888861-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625891861-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625894701-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625897621-05:00 def test_parity_rundeck_execution(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625900641-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625903661-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625906601-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625915081-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625918201-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625921101-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625924051-05:00 tests/contract/test_fixture_parity.py:69: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625927011-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625929971-05:00 tests/contract/_live.py:117: in get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625932871-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625935801-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625938801-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625941721-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625944671-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625947601-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625950411-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625953351-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625956341-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625959391-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625962241-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625965161-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625968191-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625971151-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625974101-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625977051-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625979971-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625982951-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625985971-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625988901-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625991891-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.625998231-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626001361-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626004361-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626007411-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626010481-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626013441-05:00 last_exc = exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626016511-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626019611-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626022291-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626024811-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626027271-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626029641-05:00 ) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626032761-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626035061-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626037491-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626039991-05:00 __________________________ test_parity_rundeck_output __________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626042351-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626044741-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626047111-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626053950-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626056410-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626061330-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626063830-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626066230-05:00 > yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626068550-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626070920-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626073300-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626075910-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626078310-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626080680-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626083200-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626085680-05:00 raise exc from None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626088150-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626090570-05:00 response = connection.handle_request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626093040-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626095450-05:00 raise exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626097820-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626100280-05:00 stream = self._connect(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626102770-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626105160-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626107650-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626110020-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626112460-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626114880-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626117250-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626119620-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626122070-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626124440-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626126720-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626129270-05:00 map = {: , : } [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626131580-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626133940-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626136390-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626138800-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626141230-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626143710-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626146080-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626148500-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626150870-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626153360-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626155660-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626158050-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626165820-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626168320-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626170620-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626172980-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626175530-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626177940-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626180280-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626182660-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626185060-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626187480-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626190000-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626192430-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626194810-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626197260-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626199640-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626202100-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626204620-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626207030-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626209470-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626211880-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626214280-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626216660-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626219010-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626221400-05:00 integrations/base.py:135: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626223869-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626226359-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626228739-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626233779-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626236299-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626238729-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626241129-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626243649-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626246109-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626248489-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626250869-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626253259-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626256059-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626258499-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626261039-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626263469-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626265859-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626268239-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626270609-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626273049-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626275449-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626277839-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626280239-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626287449-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626289939-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626292319-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626294709-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626297099-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626299529-05:00 except Exception as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626301959-05:00 mapped_exc = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626304359-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626306779-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626309179-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626311569-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626313979-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626316499-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626319039-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626321489-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626323869-05:00 mapped_exc = to_exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626326299-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626329549-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626332019-05:00 raise [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626334539-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626349339-05:00 message = str(exc) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626353719-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626356159-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626358419-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626360939-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626363259-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626365589-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626367879-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626370269-05:00 def test_parity_rundeck_output(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626372649-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626375099-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626377439-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626379959-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626382409-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626384729-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626387079-05:00 tests/contract/test_fixture_parity.py:86: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626389518-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626391988-05:00 tests/contract/_live.py:117: in get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626394458-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626396948-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626399388-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626401738-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626404278-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626406638-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626408938-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626416278-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626418798-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626421218-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626423628-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626425998-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626428408-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626430758-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626433208-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626435608-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626438028-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626440378-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626442798-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626445198-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626447598-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626450098-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626452508-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626454878-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626457818-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626461828-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626464358-05:00 last_exc = exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626466778-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626469138-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626471578-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626474558-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626476948-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626479408-05:00 ) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626493758-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626496338-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626498798-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626501248-05:00 ________________________ test_headscale_raw_node_shape _________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626503628-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626505978-05:00 def test_headscale_raw_node_shape(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626508428-05:00 """The wire shape must carry every key the client reads.""" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626510808-05:00 hs = _live.live_headscale() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626513258-05:00 raw = _live.get_json(hs, "/api/v1/node") [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626515638-05:00 assert isinstance(raw, dict) and "nodes" in raw, "expected {'nodes': [...]}" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626518048-05:00 nodes = raw["nodes"] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626521158-05:00 assert isinstance(nodes, list) and nodes, "headscale returned zero nodes — cannot shape-check" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626523658-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626526068-05:00 node = nodes[0] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626528968-05:00 drift = _shapes.check_shape(_shapes.HEADSCALE_NODE, node) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626531358-05:00 > assert drift.ok(), drift.describe() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626533908-05:00 E AssertionError: headscale.node: missing all of one-of group: ['forcedTags', 'validTags'] [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626536298-05:00 E assert False [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626538748-05:00 E + where False = ok() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626541208-05:00 E + where ok = Drift(label='headscale.node', is_dict=True, missing_required=set(), missing_any_of=[frozenset({'forcedTags', 'validTags'})]).ok [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626547828-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626550238-05:00 tests/contract/test_headscale_contract.py:33: AssertionError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626552667-05:00 ____________________________ test_rundeck_reachable ____________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626555017-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626557447-05:00 def test_rundeck_reachable(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626559877-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626562437-05:00 health = rc.healthcheck() # GET /api/{v}/system/info [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626564887-05:00 > assert health.reachable, f"rundeck unreachable: {health.detail}" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626567347-05:00 E AssertionError: rundeck unreachable: rundeck: GET /api/48/system/info failed: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626569747-05:00 E assert False [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626572177-05:00 E + where False = .reachable [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626574457-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626576957-05:00 tests/contract/test_rundeck_contract.py:37: AssertionError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626579447-05:00 _________________________ test_rundeck_execution_shape _________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626581797-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626584157-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626586597-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626588957-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626591347-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626593877-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626596337-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626598737-05:00 > yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626601027-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626603457-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626605907-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626608427-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626610887-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626613267-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626615817-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626618207-05:00 raise exc from None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626620747-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626623137-05:00 response = connection.handle_request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626625517-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626627947-05:00 raise exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626631877-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626635317-05:00 stream = self._connect(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626637937-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626640347-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626642757-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626645167-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626647717-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626650257-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626656717-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626659737-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626662247-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626664757-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626667067-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626669507-05:00 map = {: , : } [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626671807-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626674187-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626677337-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626679837-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626682267-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626684647-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626687097-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626690967-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626693357-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626695867-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626698177-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626700557-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626702907-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626708307-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626710737-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626713227-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626715676-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626718086-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626720396-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626722776-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626725186-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626728496-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626730966-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626733386-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626735866-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626738266-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626740686-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626743116-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626745526-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626747926-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626751066-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626753466-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626755876-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626758236-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626760536-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626762956-05:00 integrations/base.py:135: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626765326-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626767746-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626770746-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626773096-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626775516-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626777886-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626784416-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626786976-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626790186-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626792606-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626795056-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626797416-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626799806-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626802196-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626804586-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626807016-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626809466-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626811866-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626814236-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626816636-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626818956-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626821316-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626823766-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626826206-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626828566-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626830946-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626833346-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626835866-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626838236-05:00 except Exception as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626840616-05:00 mapped_exc = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626843066-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626845506-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626848636-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626851096-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626853556-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626855946-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626858386-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626860776-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626863146-05:00 mapped_exc = to_exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626865676-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626868076-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626870496-05:00 raise [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626872886-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626875256-05:00 message = str(exc) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626877655-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626880165-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626882455-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626884915-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626887225-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626889645-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626891935-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626898235-05:00 def test_rundeck_execution_shape(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626900665-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626903175-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626905575-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626907935-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626910265-05:00 tests/contract/test_rundeck_contract.py:42: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626912645-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626914995-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626917415-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626919835-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626922205-05:00 tests/contract/_live.py:117: in get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626924575-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626927005-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626929345-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626931765-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626934125-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626936485-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626938785-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626943895-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626946445-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626948915-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626951265-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626953705-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626956125-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626958505-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626960885-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626963325-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626965835-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626968195-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626970625-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626973025-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626975425-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626977805-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626980175-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626982555-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626985035-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626987415-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626989825-05:00 last_exc = exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626992185-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626994545-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626996915-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.626999335-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627001705-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627004145-05:00 ) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627006675-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627008985-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627015535-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627017965-05:00 __________________________ test_rundeck_output_shape ___________________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627020305-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627022835-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627025235-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627027745-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627030155-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627032535-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627034935-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627037345-05:00 > yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627039645-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627042134-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627044554-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627047014-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627049414-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627051794-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627054254-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627056664-05:00 raise exc from None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627059074-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627061504-05:00 response = connection.handle_request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627063974-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627066444-05:00 raise exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627068944-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627071344-05:00 stream = self._connect(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627073774-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627076184-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627078624-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627081084-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627083554-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627086034-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627088434-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627090884-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627093444-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627095874-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627098194-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627100654-05:00 map = {: , : } [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627102994-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627105494-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627107964-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627110414-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627112814-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627115224-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627117614-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627119994-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627129424-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627131984-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627134284-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627137144-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627139474-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627141904-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627144234-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627146684-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627149064-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627151524-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627153834-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627156344-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627158764-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627161164-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627163634-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627166084-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627168454-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627170894-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627173384-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627176124-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627178534-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627180944-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627183494-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627186014-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627203893-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627279533-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627283693-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627287903-05:00 integrations/base.py:135: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627291373-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627300323-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627303583-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627306743-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627309793-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627313193-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627316843-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627319883-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627322963-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627325983-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627329043-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627332233-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627335253-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627345043-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627354873-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627357913-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627360923-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627373462-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627376772-05:00 self.gen.throw(value) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627380122-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627383052-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627386072-05:00 @contextlib.contextmanager [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627389122-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627392292-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627395302-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627398252-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627401592-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627405242-05:00 yield [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627408322-05:00 except Exception as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627411332-05:00 mapped_exc = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627414412-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627417482-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627420532-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627423592-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627426602-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627429742-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627433432-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627436402-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627439402-05:00 mapped_exc = to_exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627442482-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627445522-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627448602-05:00 raise [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627451602-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627454722-05:00 message = str(exc) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627457762-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627460802-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627463692-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627466712-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627469612-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627472602-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627475512-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627478692-05:00 def test_rundeck_output_shape(): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627481732-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627486502-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627489992-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627492902-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627495912-05:00 tests/contract/test_rundeck_contract.py:59: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627499642-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627502812-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627505892-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627508882-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627511902-05:00 tests/contract/_live.py:117: in get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627514892-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627517932-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627526712-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627529752-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627532732-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627535751-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627538661-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627541701-05:00 self = [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627544741-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627547831-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627550681-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627553771-05:00 def _request( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627556881-05:00 self, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627559991-05:00 method: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627563031-05:00 path: str, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627566041-05:00 *, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627569091-05:00 retry: bool = True, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627572181-05:00 **kwargs: Any, [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627575181-05:00 ) -> httpx.Response: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627578201-05:00 client = self._ensure_client() [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627628571-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627633361-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627637851-05:00 for attempt in range(attempts): [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627642241-05:00 try: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627647111-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627651741-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627658271-05:00 last_exc = exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627665321-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627670051-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627674641-05:00 continue [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627683911-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627688561-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627693071-05:00 ) from exc [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627698931-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627703291-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627707760-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627712350-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627716880-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627721160-05:00 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627725610-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627730080-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627734550-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627739020-05:00 config/settings.py 39 0 2 1 98% 98->104 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627743460-05:00 config/urls.py 7 7 0 0 0% 2-13 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627747970-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627753620-05:00 fleet/admin.py 231 101 34 0 49% 74-75, 79, 82-85, 99, 103, 106, 122, 143, 146, 157, 161, 207-216, 224-230, 235-245, 258-260, 289-293, 297-305, 309-312, 317-334, 339-353, 362-373, 409, 413-416, 420-449, 453-459 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627764910-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627769200-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627772260-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627775740-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627778750-05:00 fleet/logs.py 113 113 18 0 0% 26-288 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627781800-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627784880-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627787930-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627790910-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627793950-05:00 fleet/management/commands/sync_devices.py 166 166 60 0 0% 30-309 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627796940-05:00 fleet/models.py 121 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627800340-05:00 fleet/reconcile.py 76 50 20 0 27% 62, 67, 71-72, 82-87, 93-133, 138-141, 155-184 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627803490-05:00 fleet/roles.py 27 14 6 0 39% 91-104, 125-129 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627806600-05:00 fleet/scoping.py 26 20 10 0 17% 17-19, 26-28, 36-39, 44-47, 53-59 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627810130-05:00 fleet/selftest.py 116 90 24 0 19% 68, 72, 91-125, 137-164, 169-174, 185-192, 202-215, 220-225, 236-255, 270-278 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627813960-05:00 fleet/status.py 144 82 26 0 36% 80, 103-108, 112-122, 126, 130, 134, 137-138, 165-166, 170, 187-190, 202-217, 221-223, 234-237, 243-257, 262-280, 285-288, 300-305, 309-314 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627817060-05:00 fleet/tests_authority.py 124 124 2 0 0% 4-220 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627820110-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-283 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627823140-05:00 fleet/tests_logs.py 161 161 2 0 0% 11-241 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627826130-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-256 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627829120-05:00 fleet/tests_status.py 219 219 2 0 0% 8-378 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627832180-05:00 fleet/tests_sync.py 72 72 0 0 0% 12-141 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627835260-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627838370-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627841370-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627846730-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627862450-05:00 integrations/__init__.py 15 4 0 0 73% 45, 49, 53, 57 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627869600-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-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627872849-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627876039-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627879139-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-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627882169-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627885289-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627888419-05:00 integrations/mender.py 54 36 16 0 26% 27-45, 48-54, 58-63, 67-68, 73, 76-77, 90-91, 105 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627891489-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-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627894589-05:00 integrations/types.py 63 2 0 0 97% 68, 72 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627897609-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627900709-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627903939-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627906979-05:00 stores/admin.py 79 26 10 0 60% 73, 76-79, 87-90, 111, 114, 117-121, 125-137, 152 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627910029-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627913349-05:00 stores/forms.py 15 4 2 0 65% 65-73 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627916359-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627919439-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627922419-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627925479-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627928609-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627932489-05:00 stores/management/commands/seed_e2e_fleet.py 232 232 34 0 0% 52-624 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627935529-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-55 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627938569-05:00 stores/models.py 58 2 0 0 97% 77, 80 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627941659-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627944909-05:00 stores/tests_authority.py 126 126 4 0 0% 7-232 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627948159-05:00 stores/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627956359-05:00 stores/views.py 11 11 0 0 0% 2-27 [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627959479-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627962479-05:00 TOTAL 3291 2443 482 17 23% [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627965509-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627968519-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627971539-05:00 SKIPPED [5] tests/contract/_live.py:76: mender not configured (MENDER_URL/MENDER_API_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627974659-05:00 SKIPPED [5] tests/contract/_live.py:102: grafana not configured (GRAFANA_URL/GRAFANA_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627977719-05:00 =================== 7 failed, 11 passed, 10 skipped in 9.26s =================== [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627980779-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.627983829-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-2d95h-contract-pod/step-run-contract] 2026-07-21T22:17:30.634110682-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above