ML-028 — Container Integration Tests
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- devops, machine-learning, testing
Research direction
Start by locating the Docker image definition, serving entry point, and existing unit and integration tests; use the /health endpoint as the readiness check. Build and run the image, verify configuration and an inference request from outside the container, exercise invalid configuration, and confirm cleanup after failures; then run the full test suite, MyPy, and Ruff.
Written by the indexing model from the issue text.
Description
ML-028 — Container Integration Tests
Goal
Add automated verification for the containerized ML serving application so that Docker-related changes cannot silently break the inference service.
Background
Unit and application integration tests verify Python behavior but do not guarantee that the final Docker image can actually build and run.
Container-level tests should validate the deployable artifact itself.
Requirements
Tests should verify:
- Docker image builds successfully.
- Container starts successfully.
- Application becomes ready.
- Health endpoint is reachable.
- Runtime configuration reaches the application.
- Serving API behaves correctly from outside the container.
- Container can terminate cleanly.
Tasks
- Define a repeatable container test workflow.
- Build the ML Platform image during container testing.
- Start a test container.
- Map the serving port.
- Wait for application readiness instead of relying on arbitrary sleep times where possible.
- Call
/health. - Verify successful HTTP response.
- Verify runtime environment overrides.
- Add a prediction/inference smoke test where practical.
- Verify expected behavior for invalid configuration.
- Stop and remove test containers.
- Ensure cleanup occurs after failed tests.
- Document how to execute container tests locally.
Acceptance Criteria
- Automated workflow detects Docker build failures.
- Automated workflow detects application startup failures.
-
/healthis tested against the running container. - Runtime configuration is verified.
- Tests do not leave containers running after completion.
- Tests do not leave unnecessary temporary resources.
- Existing unit and integration tests continue to pass.
Test Boundary
Container tests should complement, rather than duplicate, existing tests:
Unit Tests
↓
Python components
Integration Tests
↓
Serving components + FastAPI
Container Tests
↓
Docker Image
↓
Running Container
↓
FastAPI / Serving Layer
Definition of Done
- Container test workflow implemented.
- Image build tested.
- Container startup tested.
- Health endpoint tested.
- Runtime configuration tested.
- Cleanup behavior verified.
- Full test suite passes.
- MyPy passes.
- Ruff passes.
- Dominant language
- Python
- Stars
- 1
- Forks
- 0
- Avg merge
- 7m
- Merged PRs (30d)
- 3
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Emil57/ml-platform
-
Difficulty 3/5 1-2 days Newbie friendliness 78/100
Emil57/ml-platform#53 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Emil57/ml-platform#51 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
Emil57/ml-platform#50 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 68/100
Emil57/ml-platform#49 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
Emil57/ml-platform#48 ·
All issues in Emil57/ml-platform
Similar issues
-
area/config comp/tools P2 platform/telegram type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
NousResearch/hermes-agent#145412 ·
Maintainers usually reply within 1 day
-
[oblt-aw][autodoc] Update docs for security org scaffolding and Docs AI menu permission changesPossibly taken @github-actions claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Community project: hosted MOSS-Image studio with a visual JSON layout builder (no ComfyUI needed)Open
Difficulty 1/5 1-3 hours Newbie friendliness 65/100
OpenMOSS/MOSS-Image#27 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
deepspeedai/DeepSpeed#8925 · 1 comment ·
Maintainers usually reply within 3 days
-
external integration integration-submission
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
langchain-ai/docs#7077 ·
Maintainers usually reply within 1 day