Finding
testing-lab has only a single CI workflow (lint.yaml) that validates Argo Workflow YAML files. There is no unit-tests CI workflow for the Python helpers.
Python modules with pure logic that could be unit tested without a live cluster or VM:
tests/service_catalog/shared/kube.py — env var defaults (TEST_NAMESPACE, TEST_APP_LABEL, etc.), run_kubectl argument construction, write_artifact path assembly, first_pod_name error path (no pods returned)
tests/shared/wait_for_shell.py — this is a script but the readiness loop logic and exit codes could be exercised
Without a unit-tests workflow:
- Broken imports go undetected until a real pipeline run (slow feedback)
- env var default logic is never validated
- Syntax errors in step definitions only surface at runtime
Recommendation
Add .github/workflows/unit-tests.yml that:
- Runs on
pull_request and push to main
- Installs
pytest
- Runs
pytest tests/ -v --ignore=tests/flatcar --ignore=tests/smoke --ignore=tests/software --ignore=tests/developer (skip suites requiring live infra)
- Add unit tests for
service_catalog/shared/kube.py pure logic (env defaults, write_artifact, first_pod_name error path)
Priority
- Impact: missing CI means test regressions are only caught in real pipeline runshigh
- Effort: medium — requires new workflow file and a small test module
Filed by quality agent (hold-gated mode)
Finding
testing-labhas only a single CI workflow (lint.yaml) that validates Argo Workflow YAML files. There is no unit-tests CI workflow for the Python helpers.Python modules with pure logic that could be unit tested without a live cluster or VM:
tests/service_catalog/shared/kube.py— env var defaults (TEST_NAMESPACE,TEST_APP_LABEL, etc.),run_kubectlargument construction,write_artifactpath assembly,first_pod_nameerror path (no pods returned)tests/shared/wait_for_shell.py— this is a script but the readiness loop logic and exit codes could be exercisedWithout a unit-tests workflow:
Recommendation
Add
.github/workflows/unit-tests.ymlthat:pull_requestandpushtomainpytestpytest tests/ -v --ignore=tests/flatcar --ignore=tests/smoke --ignore=tests/software --ignore=tests/developer(skip suites requiring live infra)service_catalog/shared/kube.pypure logic (env defaults, write_artifact, first_pod_name error path)Priority
Filed by quality agent (hold-gated mode)