community.docker/tests/unit/plugins
Paul Berruti 2019cd8f3c fix: Handle tag@digest format in pull_image methods
When using combined image:tag@digest references, parse_repository_tag
returns (repo, "tag@digest"). The Docker SDK and API don't accept
tag@digest in the tag parameter, causing "invalid tag format" errors.

This fix:
1. Adds build_pull_arguments() helper function to _util.py
2. Uses the helper in both pull_image implementations
3. When tag contains @ (but isn't a pure digest), passes the full
   reference as the repository/fromImage parameter instead of splitting

Tested formats:
- portainer/portainer-ee:2.35.0-alpine@sha256:abc...
- ghcr.io/gethomepage/homepage:v1.7@sha256:abc...
- localhost:5000/myapp:v2.0@sha256:abc...

The existing filter_images_by_tag already handles tag@digest for
lookups, so find_image continues to work correctly.

Includes comprehensive unit tests for build_pull_arguments().
2025-11-23 19:13:11 -08:00
..
connection Add typing information, 2/n (#1178) 2025-10-25 01:16:04 +02:00
inventory Python code modernization, 8/n (#1179) 2025-10-25 00:36:04 +00:00
module_utils fix: Handle tag@digest format in pull_image methods 2025-11-23 19:13:11 -08:00
modules Cleanup with ruff check (#1182) 2025-10-28 06:58:15 +01:00
plugin_utils Add typing information, 2/n (#1178) 2025-10-25 01:16:04 +02:00
test_support Cleanup with ruff check (#1182) 2025-10-28 06:58:15 +01:00