===== app-contract-nightly-b9l62-archive-logs-pod.log ===== [pod/app-contract-nightly-b9l62-archive-logs-pod/prepare] 2026-07-19T22:17:23.348063694-05:00 2026/07/20 03:17:23 Entrypoint initialization [pod/app-contract-nightly-b9l62-archive-logs-pod/place-scripts] 2026-07-19T22:17:23.846543504-05:00 2026/07/20 03:17:23 Decoded script /tekton/scripts/script-0-zmtr9 [pod/app-contract-nightly-b9l62-archive-logs-pod/place-scripts] 2026-07-19T22:17:23.867103486-05:00 2026/07/20 03:17:23 Decoded script /tekton/scripts/script-1-nwhmj [pod/app-contract-nightly-b9l62-archive-logs-pod/step-collect-logs] 2026-07-19T22:17:28.178718093-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-b9l62 ===== app-contract-nightly-b9l62-contract-pod.log ===== [pod/app-contract-nightly-b9l62-contract-pod/prepare] 2026-07-19T22:17:03.301374357-05:00 2026/07/20 03:17:03 Entrypoint initialization [pod/app-contract-nightly-b9l62-contract-pod/place-scripts] 2026-07-19T22:17:04.308869603-05:00 2026/07/20 03:17:04 Decoded script /tekton/scripts/script-0-n5hjd [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:08.548184350-05:00 resolved deployed image: registry.storeminder.ai/images/app:cf42d032221dcf33bd849cf0a5b75c912e107374 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:08.671800027-05:00 job.batch/app-contract-20260720-031708 created [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:19.278956599-05:00 ----- contract Job logs (app-contract-20260720-031708) ----- [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212590621-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212693791-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212702331-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212707261-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212712811-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212717430-05:00 rootdir: /app [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212722480-05:00 configfile: pytest.ini [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212727390-05:00 plugins: django-4.12.0, cov-7.1.0, anyio-4.14.1 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212731870-05:00 collected 28 items [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212736300-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212741200-05:00 tests/contract/test_fixture_parity.py F..sss [ 21%] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212745830-05:00 tests/contract/test_grafana_contract.py sss [ 32%] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212751130-05:00 tests/contract/test_headscale_contract.py .F. [ 42%] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212755950-05:00 tests/contract/test_mender_contract.py ssss [ 57%] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212760450-05:00 tests/contract/test_rundeck_contract.py ... [ 67%] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212764810-05:00 tests/contract/test_shape_selfcheck.py ......... [100%] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212769050-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212773800-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212778220-05:00 __________________________ test_parity_headscale_node __________________________ [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212782260-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212786810-05:00 def test_parity_headscale_node(): [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212791590-05:00 hs = _live.live_headscale() [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212796210-05:00 live = (_live.get_json(hs, "/api/v1/node").get("nodes") or [None])[0] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212800940-05:00 assert live is not None, "no live headscale node to diff" [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212805300-05:00 > _assert_parity( [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212810470-05:00 _shapes.HEADSCALE_NODE, [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212814870-05:00 live, [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212819400-05:00 { [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212824530-05:00 "integrations/fixtures/headscale_nodes.json": _stub("headscale_nodes.json")["nodes"][0], [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212829950-05:00 "tests.fixtures.headscale_nodes()": fixtures.headscale_nodes()["nodes"][0], [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212834460-05:00 }, [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212838950-05:00 ) [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212843320-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212847980-05:00 tests/contract/test_fixture_parity.py:55: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212852620-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212856770-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212862620-05:00 spec = ShapeSpec(label='headscale.node', required=frozenset({'id', 'online', 'user', 'name', 'lastSeen', 'ipAddresses'}), any_of=(frozenset({'validTags', 'forcedTags'}),), optional=frozenset()) [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212867850-05:00 live_item = {'id': '22', 'machineKey': 'mkey:c95b85dcda493047ea984d4c8feffb69ae453c3136b247b66a4a395acb0e031a', 'nodeKey': 'nodeke...f032f97d0a60d747b1f076f', 'discoKey': 'discokey:13727c44cc12a1446d2bc80df8989e56c7ddc788bd529689fb5d81826df92b59', ...} [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212890609-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212893569-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212896819-05:00 def _assert_parity(spec, live_item, refs: dict): [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212900009-05:00 """Diff ``live_item`` against each named reference; fail on any critical drift.""" [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212903059-05:00 problems = [] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212905909-05:00 for ref_name, ref_item in refs.items(): [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212908979-05:00 report = _shapes.parity(spec, live_item, ref_item) [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212912119-05:00 print(f"\n=== {spec.label} vs {ref_name} ===\n{report.describe()}") [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212915559-05:00 if report.critical(): [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212918379-05:00 problems.append(f"{spec.label} vs {ref_name}:\n{report.describe()}") [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212921299-05:00 > assert not problems, "STUB-VS-REALITY DRIFT:\n\n" + "\n\n".join(problems) [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212924219-05:00 E AssertionError: STUB-VS-REALITY DRIFT: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212927279-05:00 E [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212930209-05:00 E headscale.node vs integrations/fixtures/headscale_nodes.json: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212933019-05:00 E [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212935789-05:00 E CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212938639-05:00 E DRIFT: stub carries client-read key(s) LIVE no longer emits: ['validTags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212941919-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212944809-05:00 E [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212947629-05:00 E headscale.node vs tests.fixtures.headscale_nodes(): [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212950509-05:00 E [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212953239-05:00 E CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212956169-05:00 E DRIFT: stub carries client-read key(s) LIVE no longer emits: ['forcedTags', 'validTags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212959349-05:00 E info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212970199-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212973289-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212976179-05:00 tests/contract/test_fixture_parity.py:48: AssertionError [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212979989-05:00 ----------------------------- Captured stdout call ----------------------------- [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212983349-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212986129-05:00 === headscale.node vs integrations/fixtures/headscale_nodes.json === [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212989029-05:00 [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212991819-05:00 CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212994519-05:00 DRIFT: stub carries client-read key(s) LIVE no longer emits: ['validTags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.212997549-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213005859-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213008929-05:00 === headscale.node vs tests.fixtures.headscale_nodes() === [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213011849-05:00 [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213015839-05:00 CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213018989-05:00 DRIFT: stub carries client-read key(s) LIVE no longer emits: ['forcedTags', 'validTags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213021899-05:00 info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213025029-05:00 ________________________ test_headscale_raw_node_shape _________________________ [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213027719-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213030398-05:00 def test_headscale_raw_node_shape(): [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213033248-05:00 """The wire shape must carry every key the client reads.""" [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213037488-05:00 hs = _live.live_headscale() [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213040458-05:00 raw = _live.get_json(hs, "/api/v1/node") [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213044188-05:00 assert isinstance(raw, dict) and "nodes" in raw, "expected {'nodes': [...]}" [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213048408-05:00 nodes = raw["nodes"] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213051408-05:00 assert isinstance(nodes, list) and nodes, "headscale returned zero nodes — cannot shape-check" [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213054368-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213057238-05:00 node = nodes[0] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213060148-05:00 drift = _shapes.check_shape(_shapes.HEADSCALE_NODE, node) [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213062968-05:00 > assert drift.ok(), drift.describe() [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213065858-05:00 E AssertionError: headscale.node: missing all of one-of group: ['forcedTags', 'validTags'] [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213068738-05:00 E assert False [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213071578-05:00 E + where False = ok() [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213075008-05:00 E + where ok = Drift(label='headscale.node', is_dict=True, missing_required=set(), missing_any_of=[frozenset({'validTags', 'forcedTags'})]).ok [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213077938-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213081198-05:00 tests/contract/test_headscale_contract.py:33: AssertionError [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213084218-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213087358-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213089948-05:00 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213092888-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213095918-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213100138-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213103158-05:00 config/settings.py 39 0 2 1 98% 98->104 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213107058-05:00 config/urls.py 7 7 0 0 0% 2-13 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213109968-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213113058-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213120468-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213124348-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213127298-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213130348-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213133318-05:00 fleet/logs.py 113 113 18 0 0% 26-288 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213136208-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213139088-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213141898-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213149368-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213153258-05:00 fleet/management/commands/sync_devices.py 166 166 60 0 0% 30-309 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213156378-05:00 fleet/models.py 121 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213159578-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213164158-05:00 fleet/roles.py 27 14 6 0 39% 91-104, 125-129 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213167188-05:00 fleet/scoping.py 26 20 10 0 17% 17-19, 26-28, 36-39, 44-47, 53-59 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213170268-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213173838-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213177038-05:00 fleet/tests_authority.py 124 124 2 0 0% 4-220 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213180098-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-283 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213183188-05:00 fleet/tests_logs.py 161 161 2 0 0% 11-241 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213186417-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-256 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213226607-05:00 fleet/tests_status.py 219 219 2 0 0% 8-378 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213231777-05:00 fleet/tests_sync.py 72 72 0 0 0% 12-141 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213236617-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213241407-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213245937-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213250647-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213255117-05:00 integrations/__init__.py 15 4 0 0 73% 45, 49, 53, 57 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213286317-05:00 integrations/base.py 122 43 32 11 60% 39, 43-51, 55, 60-62, 96, 99, 111-113, 116, 119, 136-141, 146-147, 157, 161, 165, 175-176, 179, 186-187, 193, 196, 200-201, 205, 220 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213290447-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213293927-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213297847-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213301137-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213304647-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213308257-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213311617-05:00 integrations/rundeck.py 46 14 10 3 62% 44-49, 65-81, 86-87, 96, 115 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213314907-05:00 integrations/types.py 63 2 0 0 97% 68, 72 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213318377-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213321647-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213325047-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213328257-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213334677-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213343437-05:00 stores/forms.py 15 4 2 0 65% 65-73 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213349466-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213352676-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213356246-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213372656-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213376226-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213379706-05:00 stores/management/commands/seed_e2e_fleet.py 232 232 34 0 0% 52-624 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213383116-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-55 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213386426-05:00 stores/models.py 58 2 0 0 97% 77, 80 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213389656-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213393036-05:00 stores/tests_authority.py 126 126 4 0 0% 7-232 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213396446-05:00 stores/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213399856-05:00 stores/views.py 11 11 0 0 0% 2-27 [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213410046-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213413546-05:00 TOTAL 3291 2442 482 19 23% [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213417356-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213420786-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213424226-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213427646-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-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213431096-05:00 =================== 2 failed, 16 passed, 10 skipped in 1.38s =================== [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213434316-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.213443406-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-b9l62-contract-pod/step-run-contract] 2026-07-19T22:17:20.215529833-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above