Run Unit Tests#
This section shows how to run the unit test suite for Model Download.
Prerequisites#
Environment Setup#
You can use either the pip installer, venv tool, or uv tool for dependency management.
Uv Tool#
# Navigate to the model-download service directory
cd microservices/model-download
# Install uv tool if not already installed
pip install uv
# Create and activate the virtual environment
uv venv
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows
# Install core testing dependencies
uv pip install -e ".[dev]"
Test Structure#
The test suite is organized as follows:
tests/
├── conftest.py # Test configuration and fixtures
├── unit/
│ ├── test_api_main.py # API endpoint tests
│ ├── test_huggingface_plugin.py # HuggingFace plugin tests
│ ├── test_ollama_plugin.py # Ollama plugin tests
│ ├── test_openvino_plugin.py # OpenVINO plugin tests
│ └── test_ultralytics_plugin.py # Ultralytics plugin tests
└── test_data/ # Test data and temporary files
Basic Test Commands#
Run All Tests#
# From the project root directory
pytest tests/ -v
Run Tests with Coverage Report#
# Generate coverage report in the terminal and HTML
pytest tests/ --cov=src --cov-report=html --cov-report=term
# Open the HTML coverage report
open htmlcov/index.html # macOS
xdg-open htmlcov/index.html # Linux
start htmlcov/index.html # Windows
Run Specific Test Categories#
# API tests only
pytest tests/unit/test_api_main.py -v
# All plugin tests
pytest tests/unit/test_*_plugin.py -v
# A specific plugin test
pytest tests/unit/test_huggingface_plugin.py -v
pytest tests/unit/test_ollama_plugin.py -v
pytest tests/unit/test_openvino_plugin.py -v
pytest tests/unit/test_ultralytics_plugin.py -v