# Warehouse Cell Automated Test Report

**Overall result: FAILED**

## Execution summary

| Total | Passed | Failed | Errors | Skipped | Duration |
| ---: | ---: | ---: | ---: | ---: | ---: |
| 4 | 3 | 1 | 0 | 0 | 0.767 s |

## Environment and reproduction

| Field | Value |
| --- | --- |
| Generated (UTC) | 2026-08-13T02:48:34+00:00 |
| Host | pop-os |
| Operating system | Linux-6.16.3-76061603-generic-x86_64-with-glibc2.35 |
| Python | 3.10.12 (/usr/bin/python3) |
| ROS distribution | humble |
| ROS middleware | default / not set |
| ROS domain ID | 0 |
| Gazebo partition | default |
| Git commit | not available |
| Execution mode | headless |
| Selected suite | deployment |
| Reproduction command | scripts/run_tests.sh --suite deployment --headless --no-sim --k8s-runtime --no-build --ros-domain-id 0 |

## Test results

| Result | Scenario | Suite | Test | Duration |
| --- | --- | --- | --- | ---: |
| FAIL | WH-K8S-001 | pytest | `deployment.test_kubernetes_restart.test_kind_pod_restart_preserves_run_and_becomes_ready` | 0.002 s |
| PASS | WH-K8S-GATEWAY-001 | pytest | `integration.test_health_gateway.test_gateway_readiness_state_and_metrics_follow_ros_projection` | 0.724 s |
| PASS | WH-K8S-STATIC-001 | pytest | `unit.test_deployment_assets.test_manifest_connects_deployment_service_storage_and_probes` | 0.028 s |
| PASS | WH-K8S-STATIC-002 | pytest | `unit.test_deployment_assets.test_container_is_non_root_and_runtime_smoke_is_bounded` | 0.013 s |

## Failure analysis and JIRA ticket drafts

### Ticket 1 — Warehouse automation: deployment.test_kubernetes_restart.test_kind_pod_restart_preserves_run_and_becomes_ready failed

| JIRA field | Suggested value |
| --- | --- |
| Summary | Warehouse automation: deployment.test_kubernetes_restart.test_kind_pod_restart_preserves_run_and_becomes_ready failed |
| Issue type | Bug |
| Priority | High if cell flow is blocked; otherwise Medium |
| Component | Warehouse automation / automated test |
| Labels | `warehouse-cell`, `automated-test`, `failed` |
| Failing test | `deployment.test_kubernetes_restart.test_kind_pod_restart_preserves_run_and_becomes_ready` |
| Scenario ID | `WH-K8S-001` |
| Test suite | pytest |
| Source report | `/home/natebiddle/Desktop/ROS2WarehouseCell/artifacts/k8s-prerequisite-validation/junit.xml` |

**Observed result**

Failed: Kubernetes runtime was explicitly requested, but prerequisites are missing: kind, kubectl

**Expected result**

The scenario completes without safety, routing, inventory, or palletization assertion failures.

**Steps to reproduce**

1. Use the environment recorded above.
2. Run `scripts/run_tests.sh --suite deployment --headless --no-sim --k8s-runtime --no-build --ros-domain-id 0`.
3. Re-run only this test with `-- -k 'test_kind_pod_restart_preserves_run_and_becomes_ready' -vv -s` appended to the runner command.
4. Attach this report, the JUnit XML, ROS logs, and any GDB backtrace.

**Failure / error detail**

````text
tmp_path = PosixPath('/tmp/pytest-of-natebiddle/pytest-66/test_kind_pod_restart_preserve0')
record_property = <function record_property.<locals>.append_property at 0x7273a8169870>

    @pytest.mark.scenario("WH-K8S-001")
    def test_kind_pod_restart_preserves_run_and_becomes_ready(
        tmp_path: Path,
        record_property,
    ) -> None:
        """Create a disposable cluster only after an explicit operator opt-in."""
    
        if os.environ.get("WAREHOUSE_K8S_RUNTIME", "0") != "1":
            pytest.skip(
                "destructive local kind run is opt-in: use "
                "--suite deployment --k8s-runtime"
            )
        missing = [
            command
            for command in ("docker", "kind", "kubectl", "curl")
            if shutil.which(command) is None
        ]
        if missing:
>           pytest.fail(
                "Kubernetes runtime was explicitly requested, but prerequisites "
                "are missing: " + ", ".join(missing)
            )
E           Failed: Kubernetes runtime was explicitly requested, but prerequisites are missing: kind, kubectl

missing    = ['kind', 'kubectl']
record_property = <function record_property.<locals>.append_property at 0x7273a8169870>
tmp_path   = PosixPath('/tmp/pytest-of-natebiddle/pytest-66/test_kind_pod_restart_preserve0')

test/deployment/test_kubernetes_restart.py:40: Failed
````


## Attached artifacts checklist

- [ ] JUnit XML
- [ ] ROS 2 and Gazebo logs
- [ ] Screenshot or screen recording (visual run)
- [ ] GDB backtrace or core dump (debug run)
- [ ] Relevant order/scenario input
