Skip to content

test(genai): add 44 offline tests for commands/docker.py DockerManager#2004

Merged
jsboige merged 1 commit into
mainfrom
test/genai-docker-manager
Jun 1, 2026
Merged

test(genai): add 44 offline tests for commands/docker.py DockerManager#2004
jsboige merged 1 commit into
mainfrom
test/genai-docker-manager

Conversation

@jsboige
Copy link
Copy Markdown
Owner

@jsboige jsboige commented Jun 1, 2026

Summary

Adds comprehensive offline test coverage for commands/docker.py (DockerManager class, 370 lines).

Test classes (44 tests, 0.26s)

Class Tests Coverage
TestRunCmd 6 subprocess wrapper: success, failure, timeout, exception, cwd, capture
TestGetContainerStatus 6 Docker inspect mock: unknown, not_found, running, exited, malformed JSON, missing health
TestCheckServiceHealth 9 HTTP health: unknown, 200 OK, 401 auth, connection refused, timeout, bearer auth, basic auth, remote URL, 500 error
TestStartStopService 8 start/stop/restart: unknown, success, failure, missing compose_dir, build flag, stop, restart order
TestGetLogs 3 Docker logs: unknown, known, tail parameter
TestCheckGpu 4 nvidia-smi mock: not found, single GPU, dual GPU, empty output
TestRegisterAndExecute 8 CLI: subparser registration, status/start/stop/logs/test/default dispatch

Design

  • Zero external dependencies — no Docker, no nvidia-smi, no network
  • All subprocess and HTTP calls mocked via unittest.mock.patch
  • Config injected via sys.modules["config"] stub (same pattern as test_genai_audio_models)
  • Cross-platform: Windows path assertions use str().replace("\\", "/")

Why

commands/docker.py is the core Docker management module used by genai.py docker status/start/stop/restart/logs/test. Previously had 0 dedicated tests.

Test plan

python -m pytest scripts/notebook_tools/tests/test_genai_docker.py -v
# 44 passed in 0.26s

Covers _run_cmd (6), get_container_status (6), check_service_health (9),
start/stop/restart_service (8), get_logs (3), check_gpu (4), register/execute (8).
All offline with mocked subprocess/requests — no Docker dependency.
@jsboige jsboige merged commit cb48a5e into main Jun 1, 2026
2 checks passed
@jsboige jsboige deleted the test/genai-docker-manager branch June 1, 2026 02:37
jsboige added a commit that referenced this pull request Jun 1, 2026
#2004)

Covers _run_cmd (6), get_container_status (6), check_service_health (9),
start/stop/restart_service (8), get_logs (3), check_gpu (4), register/execute (8).
All offline with mocked subprocess/requests — no Docker dependency.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant