Skip to content

CVS-169692_enable_on_commit_tests_part_II#4309

Open
ngrozae wants to merge 13 commits into
mainfrom
CVS-169692_enable_on_commit_tests_part_II
Open

CVS-169692_enable_on_commit_tests_part_II#4309
ngrozae wants to merge 13 commits into
mainfrom
CVS-169692_enable_on_commit_tests_part_II

Conversation

@ngrozae

@ngrozae ngrozae commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

🛠 Summary

CVS-169692 enable python testing (part II)

🧪 Checklist

  • Unit tests added.
  • The documentation updated.
  • Change follows security best practices.
    ``

Copilot AI review requested due to automatic review settings June 22, 2026 11:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues the effort to enable OVMS Python testing on commit by expanding the functional test framework, adding model/download utilities (including HF direct-load support), and introducing Docker image build helpers for BINARY/CAPI test modes across Ubuntu/Red Hat.

Changes:

  • Expanded Python test dependencies and added a repo-local models layer (tests/functional/models/*) to decouple parts of the framework from external ovms.constants.* definitions.
  • Added/extended functional-test orchestration: resource downloads, optional docker image builds, timeout/xdist scheduling, and HF model refresh support.
  • Updated CI on-commit groovy pipeline and various test utilities/Dockerfiles to support the new workflow.

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 21 comments.

Show a summary per file
File Description
tests/requirements.txt Updated/pinned Python test dependencies for the new framework capabilities
tests/functional/utils/test_framework.py Made remove_dir_tree() compatible with Python <3.12 vs 3.12+ shutil.rmtree callback args
tests/functional/utils/ovms_testing_image/Dockerfile.redhat Switched Red Hat base image reference for test image builds
tests/functional/utils/ovms_capi_image/Dockerfile.ubuntu Added Ubuntu CAPI test image Dockerfile (binary package based)
tests/functional/utils/ovms_capi_image/Dockerfile.redhat Added Red Hat CAPI test image Dockerfile (binary package based)
tests/functional/utils/ovms_binary_image/Dockerfile.ubuntu Added Ubuntu “binary docker” test image Dockerfile
tests/functional/utils/ovms_binary_image/Dockerfile.redhat Added Red Hat “binary docker” test image Dockerfile
tests/functional/utils/ov_hf_downloader.py New HF downloader/refresh helper for local model cache management
tests/functional/utils/hooks.py Major expansion of pytest hooks: resource download, docker image build, timeout selection, selection/deselection logic
tests/functional/utils/generative_ai/validation_utils.py Updated generative AI utilities to use repo-local datasets/utils
tests/functional/utils/generative_ai/utils.py New shared generative AI helper utilities (request params, resource prep, unload verification)
tests/functional/utils/download.py New download helper functions (wget/curl + locking)
tests/functional/utils/docker.py Added DOCKER_CONTAINER_TMP_PATH constant for build/runtime logic
tests/functional/utils/assertions.py Added OVHfDownloadException
tests/functional/pylintrc Added pylintrc for functional tests
tests/functional/object_model/python_custom_nodes/python_custom_nodes.py Refactored “LLM” node wrappers into more generic “generative” node hierarchy
tests/functional/object_model/ovms_params.py Updated model handling to use repo-local ModelInfo and generalized CPU extension selection
tests/functional/object_model/ovms_instance.py Switched ModelInfo import to repo-local models module
tests/functional/object_model/ovms_info.py Moved DockerClient import to module scope
tests/functional/object_model/ovms_config.py Switched ModelInfo import to repo-local models module
tests/functional/object_model/ovms_capi.py Switched ModelInfo import to repo-local models module
tests/functional/object_model/ovms_binary.py Generalized CPU extension selection based on model attribute
tests/functional/object_model/mediapipe_calculators.py Switched ModelInfo import to repo-local models module
tests/functional/object_model/inference_helpers.py Updated generative response validation branch to use is_generative
tests/functional/object_model/custom_node.py Switched ModelInfo import to repo-local models module
tests/functional/models/models.py New repo-local ModelInfo definition and model utilities
tests/functional/models/models_library.py New minimal models library (currently generative/embeddings focused)
tests/functional/models/models_generative.py New generative-model definitions, including HF-direct-load variants
tests/functional/models/models_datasets.py New datasets module for generative and binary/image datasets
tests/functional/models/__init__.py New package init for repo-local models
tests/functional/fixtures/ovms.py Switched ModelInfo import to repo-local models module
tests/functional/constants/requirements.py Added/organized requirement IDs for new generative endpoints/features
tests/functional/constants/pipelines.py Switched ModelInfo import + updated mediapipe graph naming logic
tests/functional/constants/paths.py Added shared lock-file paths for builds/downloads/clones
tests/functional/constants/ovms_type.py Removed legacy type and added/organized dependency/tooling constants
tests/functional/constants/ovms_images.py Added helper to calculate image/os combinations
tests/functional/constants/ovms_cohere.py Added Cohere request params builder wrapper
tests/functional/constants/os_version.py Added OS base-image constants/mappings
tests/functional/conftest.py Added functional test conftest / plugin wiring and collection logic
tests/functional/config.py Expanded config/env var support for on-commit execution (requirements/components filters, HF token, base images, etc.)
ci/build_test_OnCommit.groovy Updated pipeline parameters/examples and exported env vars for doc tests

Comment thread tests/functional/utils/ov_hf_downloader.py
Comment thread tests/functional/utils/hooks.py
Comment thread tests/functional/utils/hooks.py
Comment thread tests/functional/utils/hooks.py
Comment thread tests/functional/utils/hooks.py Outdated
Comment thread tests/functional/object_model/inference_helpers.py
Comment thread tests/functional/constants/pipelines.py
Comment thread tests/functional/utils/ovms_binary_image/Dockerfile.ubuntu Outdated
Comment thread tests/functional/utils/ovms_capi_image/Dockerfile.ubuntu Outdated
Comment thread tests/functional/pylintrc
Comment on lines +25 to +27
# libtbb is now available in /ovms/lib
#ARG OVMS_DEPENDENCIES="https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/tbb-2018.2-9.el8.x86_64.rpm"
#RUN dnf install -y pkg-config && rpm -ivh ${OVMS_DEPENDENCIES}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it necessary?

Comment on lines +25 to +27
# libtbb is now available in /ovms/lib
#ARG OVMS_DEPENDENCIES="https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/Packages/tbb-2020.3-8.el9.x86_64.rpm"
#RUN dnf install -y pkg-config && rpm -ivh ${OVMS_DEPENDENCIES}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it necessary?

Comment on lines +43 to +44
#COPY install_va.sh /tmp/install_va.sh
#RUN chmod 775 /tmp/install_va.sh && /tmp/install_va.sh

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it necessary?

@ngrozae ngrozae force-pushed the CVS-169692_enable_on_commit_tests_part_II branch from 06959d4 to 64e7a6c Compare June 23, 2026 11:30
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.

3 participants