===== app-contract-nightly-staging-6qbt4-archive-logs-pod.log ===== [pod/app-contract-nightly-staging-6qbt4-archive-logs-pod/prepare] 2026-07-19T21:47:33.428712945-05:00 2026/07/20 02:47:33 Entrypoint initialization [pod/app-contract-nightly-staging-6qbt4-archive-logs-pod/place-scripts] 2026-07-19T21:47:34.459794259-05:00 2026/07/20 02:47:34 Decoded script /tekton/scripts/script-0-d7w6c [pod/app-contract-nightly-staging-6qbt4-archive-logs-pod/place-scripts] 2026-07-19T21:47:34.482957373-05:00 2026/07/20 02:47:34 Decoded script /tekton/scripts/script-1-trxr5 [pod/app-contract-nightly-staging-6qbt4-archive-logs-pod/step-collect-logs] 2026-07-19T21:47:37.722036629-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-staging-6qbt4 ===== app-contract-nightly-staging-6qbt4-contract-pod.log ===== [pod/app-contract-nightly-staging-6qbt4-contract-pod/prepare] 2026-07-19T21:47:03.944841346-05:00 2026/07/20 02:47:03 Entrypoint initialization [pod/app-contract-nightly-staging-6qbt4-contract-pod/place-scripts] 2026-07-19T21:47:04.359180016-05:00 2026/07/20 02:47:04 Decoded script /tekton/scripts/script-0-lkb4s [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:08.409464920-05:00 resolved deployed image: registry.storeminder.ai/storeminder/app:290a47900a89d1254fa53fc7eecdfffea9f72342 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:08.516192342-05:00 job.batch/app-contract-20260720-024708 created [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:29.313681902-05:00 ----- contract Job logs (app-contract-20260720-024708) ----- [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112612949-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112641100-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112645971-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112649996-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112654002-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112657551-05:00 rootdir: /app [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112662481-05:00 configfile: pytest.ini [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112666935-05:00 plugins: django-4.12.0, cov-7.1.0, anyio-4.14.2 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112670404-05:00 collected 28 items [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112673674-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112677352-05:00 tests/contract/test_fixture_parity.py F..sss [ 21%] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112680930-05:00 tests/contract/test_grafana_contract.py sss [ 32%] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112684489-05:00 tests/contract/test_headscale_contract.py .F. [ 42%] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112688038-05:00 tests/contract/test_mender_contract.py ssss [ 57%] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112691407-05:00 tests/contract/test_rundeck_contract.py ... [ 67%] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112695274-05:00 tests/contract/test_shape_selfcheck.py ......... [100%] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112698644-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112702988-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112706974-05:00 __________________________ test_parity_headscale_node __________________________ [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112728315-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112731914-05:00 def test_parity_headscale_node(): [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112735452-05:00 hs = _live.live_headscale() [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112738822-05:00 live = (_live.get_json(hs, "/api/v1/node").get("nodes") or [None])[0] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112742192-05:00 assert live is not None, "no live headscale node to diff" [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112745591-05:00 > _assert_parity( [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112748991-05:00 _shapes.HEADSCALE_NODE, [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112752719-05:00 live, [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112756844-05:00 { [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112761396-05:00 "integrations/fixtures/headscale_nodes.json": _stub("headscale_nodes.json")["nodes"][0], [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112765700-05:00 "tests.fixtures.headscale_nodes()": fixtures.headscale_nodes()["nodes"][0], [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112770521-05:00 }, [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112773991-05:00 ) [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112777281-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112781545-05:00 tests/contract/test_fixture_parity.py:56: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112785442-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112789438-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112793891-05:00 spec = ShapeSpec(label='headscale.node', required=frozenset({'id', 'name', 'lastSeen', 'ipAddresses', 'user', 'online'}), any_of=(frozenset({'forcedTags', 'validTags'}),), optional=frozenset()) [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112800431-05:00 live_item = {'id': '22', 'machineKey': 'mkey:c95b85dcda493047ea984d4c8feffb69ae453c3136b247b66a4a395acb0e031a', 'nodeKey': 'nodeke...f032f97d0a60d747b1f076f', 'discoKey': 'discokey:13727c44cc12a1446d2bc80df8989e56c7ddc788bd529689fb5d81826df92b59', ...} [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112820670-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-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112823542-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112826435-05:00 def _assert_parity(spec, live_item, refs: dict): [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112829218-05:00 """Diff ``live_item`` against each named reference; fail on any critical drift.""" [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112832012-05:00 problems = [] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112834894-05:00 for ref_name, ref_item in refs.items(): [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112837608-05:00 report = _shapes.parity(spec, live_item, ref_item) [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112840341-05:00 print(f"\n=== {spec.label} vs {ref_name} ===\n{report.describe()}") [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112843184-05:00 if report.critical(): [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112845918-05:00 problems.append(f"{spec.label} vs {ref_name}:\n{report.describe()}") [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112848632-05:00 > assert not problems, "STUB-VS-REALITY DRIFT:\n\n" + "\n\n".join(problems) [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112851345-05:00 E AssertionError: STUB-VS-REALITY DRIFT: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112854109-05:00 E [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112860162-05:00 E headscale.node vs integrations/fixtures/headscale_nodes.json: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112862985-05:00 E [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112865768-05:00 E CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112868353-05:00 E DRIFT: stub carries client-read key(s) LIVE no longer emits: ['validTags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112871733-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-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112874496-05:00 E [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112877190-05:00 E headscale.node vs tests.fixtures.headscale_nodes(): [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112879486-05:00 E [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112881782-05:00 E CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112884088-05:00 E DRIFT: stub carries client-read key(s) LIVE no longer emits: ['forcedTags', 'validTags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112887846-05:00 E info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112897189-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-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112899496-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112901831-05:00 tests/contract/test_fixture_parity.py:49: AssertionError [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112904356-05:00 ----------------------------- Captured stdout call ----------------------------- [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112906752-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112909038-05:00 === headscale.node vs integrations/fixtures/headscale_nodes.json === [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112911374-05:00 [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112913730-05:00 CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112915996-05:00 DRIFT: stub carries client-read key(s) LIVE no longer emits: ['validTags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112924793-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-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112927020-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112929346-05:00 === headscale.node vs tests.fixtures.headscale_nodes() === [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112931801-05:00 [headscale.node] live-vs-stub parity: [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112934137-05:00 CRITICAL one-of ['forcedTags', 'validTags'] absent from LIVE [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112936404-05:00 DRIFT: stub carries client-read key(s) LIVE no longer emits: ['forcedTags', 'validTags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112938730-05:00 info: live adds field(s) the client ignores: ['approvedRoutes', 'availableRoutes', 'createdAt', 'discoKey', 'preAuthKey', 'registerMethod', 'subnetRoutes', 'tags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112941026-05:00 ________________________ test_headscale_raw_node_shape _________________________ [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112943203-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112945469-05:00 def test_headscale_raw_node_shape(): [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112947765-05:00 """The wire shape must carry every key the client reads.""" [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112950131-05:00 hs = _live.live_headscale() [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112952507-05:00 raw = _live.get_json(hs, "/api/v1/node") [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112955210-05:00 assert isinstance(raw, dict) and "nodes" in raw, "expected {'nodes': [...]}" [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112958043-05:00 nodes = raw["nodes"] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112960340-05:00 assert isinstance(nodes, list) and nodes, "headscale returned zero nodes — cannot shape-check" [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112962606-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112964922-05:00 node = nodes[0] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112967198-05:00 drift = _shapes.check_shape(_shapes.HEADSCALE_NODE, node) [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112969514-05:00 > assert drift.ok(), drift.describe() [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112971830-05:00 E AssertionError: headscale.node: missing all of one-of group: ['forcedTags', 'validTags'] [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112974117-05:00 E assert False [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112976403-05:00 E + where False = ok() [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112979007-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-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112981204-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112983480-05:00 tests/contract/test_headscale_contract.py:33: AssertionError [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112986134-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112988421-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112990588-05:00 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112992924-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112995250-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112997526-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.112999782-05:00 config/admin_gate.py 90 90 30 0 0% 32-203 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113002049-05:00 config/settings.py 50 2 6 3 91% 130->138, 139, 141 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113004315-05:00 config/urls.py 8 8 0 0 0% 2-14 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113006621-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113009116-05:00 fleet/admin.py 230 101 34 0 49% 67-68, 72, 75-78, 92, 96, 99, 115, 136, 139, 150, 154, 200-209, 217-223, 228-238, 251-253, 282-286, 290-298, 302-305, 310-327, 332-346, 355-366, 402, 406-409, 413-442, 446-452 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113016541-05:00 fleet/api_consent.py 74 74 28 0 0% 20-146 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113018857-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113021134-05:00 fleet/correlate.py 51 51 12 0 0% 28-170 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113023678-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113025985-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113028967-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113031372-05:00 fleet/logs.py 113 113 18 0 0% 26-287 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113039473-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113041959-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113044324-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113046581-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113048837-05:00 fleet/management/commands/sync_devices.py 216 216 80 0 0% 34-348 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113051183-05:00 fleet/models.py 122 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113053509-05:00 fleet/reconcile.py 107 76 32 0 22% 61, 66, 70-71, 81-86, 97-131, 137-150, 170-183, 191-194, 210-213, 226-231, 245-274 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113055795-05:00 fleet/roles.py 27 14 6 0 39% 91-104, 125-129 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113058072-05:00 fleet/scoping.py 26 20 10 0 17% 17-19, 26-28, 36-39, 44-47, 53-59 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113060368-05:00 fleet/selftest.py 116 90 24 0 19% 67, 71, 90-124, 136-163, 168-173, 184-191, 201-214, 219-224, 235-254, 269-277 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113063091-05:00 fleet/status.py 144 82 26 0 36% 78, 101-106, 110-120, 124, 128, 132, 135-136, 163-164, 168, 185-188, 200-215, 219-221, 232-235, 241-255, 260-278, 283-286, 298-303, 307-312 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113065537-05:00 fleet/tests_authority.py 124 124 2 0 0% 4-220 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113067823-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-284 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113070079-05:00 fleet/tests_consent_event.py 113 113 2 0 0% 9-195 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113113657-05:00 fleet/tests_correlate.py 51 51 4 0 0% 2-83 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113116093-05:00 fleet/tests_logs.py 163 163 2 0 0% 11-242 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113118389-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-255 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113120725-05:00 fleet/tests_status.py 219 219 2 0 0% 8-377 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113122981-05:00 fleet/tests_sync.py 151 151 8 0 0% 21-287 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113130615-05:00 fleet/tests_sync_integration.py 29 29 2 0 0% 17-83 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113132911-05:00 fleet/urls_consent.py 3 3 0 0 0% 5-9 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113135307-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113137673-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113141768-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113144114-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113146480-05:00 integrations/__init__.py 18 5 0 0 72% 48, 52, 56, 60, 64 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113148796-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-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113151082-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113153398-05:00 integrations/enroll.py 20 10 4 0 42% 28, 37-46, 50, 64 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113155824-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113160028-05:00 integrations/grafana.py 68 50 22 0 20% 27, 30, 33, 36, 43-50, 60-72, 75-97, 110-123, 126-135, 141 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113162414-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113164760-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113167195-05:00 integrations/mender.py 79 57 26 0 21% 28-46, 56-74, 77-83, 87-92, 96-97, 102, 105-106, 118-124, 133-134, 148 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113169511-05:00 integrations/rundeck.py 46 14 10 3 62% 44-49, 65-81, 86-87, 96, 115 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113171847-05:00 integrations/types.py 80 2 0 0 98% 68, 72 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113181708-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113184312-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113186678-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113188984-05:00 stores/admin.py 87 30 12 0 58% 95, 101-104, 107-110, 118-121, 142, 145, 148-152, 156-168, 183 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113191340-05:00 stores/api.py 66 66 20 0 0% 35-159 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113193964-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113196280-05:00 stores/forms.py 35 20 12 0 32% 73-77, 81-84, 87-105 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113198835-05:00 stores/geocoding.py 115 115 34 0 0% 15-210 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113201191-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113208119-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113210564-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113212890-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113215226-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113217741-05:00 stores/management/commands/reattach_store.py 50 50 14 0 0% 29-94 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113220077-05:00 stores/management/commands/seed_e2e_fleet.py 231 231 34 0 0% 52-623 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113222393-05:00 stores/management/commands/seed_pilot_stores.py 68 68 16 0 0% 20-141 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113224729-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-54 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113227264-05:00 stores/map.py 70 70 18 0 0% 19-156 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113231369-05:00 stores/models.py 112 4 0 0 96% 185, 211, 228, 231 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113233735-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113236429-05:00 stores/tests_api.py 105 105 0 0 0% 12-174 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113238834-05:00 stores/tests_authority.py 128 128 4 0 0% 7-238 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113241190-05:00 stores/tests_basemap.py 41 41 4 0 0% 7-80 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113243755-05:00 stores/tests_collector_config.py 66 66 2 0 0% 8-104 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113246210-05:00 stores/tests_geo.py 72 72 0 0 0% 8-127 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113248556-05:00 stores/tests_map.py 67 67 2 0 0% 6-98 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113250902-05:00 stores/tests_pilot_seed.py 94 94 0 0 0% 7-175 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113253218-05:00 stores/tests_report_config.py 29 29 0 0 0% 6-47 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113255743-05:00 stores/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113258059-05:00 stores/views.py 39 39 4 0 0% 2-112 [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113260355-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113262691-05:00 TOTAL 4895 3939 744 21 17% [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113265414-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113267770-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113270166-05:00 SKIPPED [5] tests/contract/_live.py:75: mender not configured (MENDER_URL/MENDER_API_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113272482-05:00 SKIPPED [5] tests/contract/_live.py:101: grafana not configured (GRAFANA_URL/GRAFANA_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113274907-05:00 =================== 2 failed, 16 passed, 10 skipped in 2.79s =================== [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113277184-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.113279480-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-staging-6qbt4-contract-pod/step-run-contract] 2026-07-19T21:47:30.118737865-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above