- Migrate to e2e pytest the `test/system/050-pull.bats` bat test.
- Ollama fixture has been added to test on a insolated ollama instance
- The tests cover a wide range of functionalities, including:
- Pulling models from different transports like Ollama, Hugging Face, OCI, and local files.
- Verifying the use of local caches from Ollama and Hugging Face to speed up subsequent pulls.
- Testing error handling for non-existent models and endianness mismatches.
- Ensuring proper interaction with authenticated OCI registries for pulling private models.
- Validating the handling of models with multiple layers and references.
Signed-off-by: Roberto Majadas <rmajadas@redhat.com>
a committed CLAUDE.md can ensure more consistent
behavior for contributors utilizing Claude Code
or other supported agents for ramalama development
Signed-off-by: Nathan Weinberg <nweinber@redhat.com>
Add support for generating multiple Mount= declarations in quadlet files
for multi-part models (e.g., models split into multiple GGUF files).
Changes:
- Add _get_all_model_part_paths() method to Transport class to retrieve
all parts of a multi-part model from the ref file
- Update Quadlet class to accept and store model_parts list
- Modify _gen_model_volume() to generate Mount= entries for each part
- Update generate_container_config() to pass model parts to quadlet
- Add test case for multi-part model quadlet generation
The fix ensures that when generating quadlet files for models like
gpt-oss-120b that are split across multiple files, all parts are
properly mounted into the container with correct src/dest paths.
Fixes #2017
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
When testing with nvidia hardware, passing "--dri off" prevents access to the hardware
and causes the cuda image to crash.
Signed-off-by: Mike Bonnet <mikeb@redhat.com>
To run CI in Konflux we're using podman-in-podman to provide fine-grained control
over the test environment. Previously we were deleting the CDI hooks from the outer
podman environment because they were unnecessary.
Recent changes to the cuda image require the symlinks created by the hooks to be
present, so mount /usr/bin/nvidia-container-runtime and /usr/bin/nvidia-cdi-hook
into the outer podman environment and re-enable the hooks.
Signed-off-by: Mike Bonnet <mikeb@redhat.com>
Implement support for silencing CUDA version warnings and other warnings
by using the existing --quiet/-q flag. When specified, the log level is
set to ERROR, which suppresses WARNING level messages.
The flag was already defined but not properly connected to the logging
system. This change updates post_parse_setup() to respect the quiet flag
and set the appropriate log level.
Log level priority: --debug > --quiet > config > default
This addresses user feedback in issue #2151 where CUDA version warnings
were being displayed even when the user wanted to suppress them.
Fixes #2151
*This PR was created with the assistance of Cursor AI.*
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Using the "with pytest.raises" context manager explicitly guarantees
that the test will fail unless the expected exception is
raised. "pytest.mark.xfail" without the strict parameter will merely
log the unexpected behavior but will not necessarily fail the test.
Collapse the two invalid_log_level tests into one parametrized test.
Signed-off-by: John Wiele <jwiele@redhat.com>
Typically the container runtime for CUDA is specified using the `podman
--runtime` arg.
However lama-stack uses `podman kube play` which has no way to override the runtime.
Use a temporary containers.conf file to do this instead.
Signed-off-by: Oliver Walsh <owalsh@redhat.com>
Removing binary blob files previously relied on following the symlink from a
snapshot file to the binary blob file.
This no longer works now that hardlinks are used by default.
Signed-off-by: Oliver Walsh <owalsh@redhat.com>
Add Podman >= 5.7.0 version requirement for artifact tests
Artifact support requires Podman 5.7.0 or later. This commit adds version
checking to skip artifact tests on systems with older Podman versions.
Changes:
- Add get_podman_version() and skip_if_podman_too_old() functions to test/system/helpers.bash
- Add skip_if_podman_too_old decorator to test/conftest.py for e2e tests
- Apply version check to all artifact-related tests in:
- test/system/056-artifact.bats (BATS tests)
- test/e2e/test_artifact.py (pytest e2e tests)
- Tests will be skipped with clear message on systems with Podman < 5.7.0
- Docker and nocontainer tests are also skipped as they don't support artifacts
The version check extracts the Podman version and compares it numerically,
handling development versions like "5.7.0-dev" correctly.
Cursor-AI-Generated
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>