Conversation
…y.eu when down Planemo already uses galaxy-util's skip_if_site_down for Zenodo. Apply it to the rest of the tests that need a live external service - a quay.io read timeout just failed test_data_manager_docker_mount in CI with an unrelated diff. New probes in tests/test_utils.py next to skip_if_zenodo_down: dockstore, quay, toolshed, testtoolshed, usegalaxy.eu. galaxy-util 26.0.1 exports only skip_if_github_down and skip_if_workflowhub_down, so the rest are defined locally until the pin picks up galaxyproject/galaxy#23685. Decorated: - quay.io: --biocontainers tests in test_cmd_test.py and test_cmd_serve.py - Tool Shed: tool id/version linting in test_cmd_workflow_lint.py, workflow autoupdate tests (one also needs the Test Tool Shed) - Dockstore: test_run_trs_id - github.com: test_ok_http, test_git_ls_remote - usegalaxy.eu: the two remote-workflow training tests Probes hit root pages, so they catch an unreachable service, not a slow API behind a working front page. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jmchilton
marked this pull request as ready for review
September 24, 2026 20:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Planemo already had one of these —
skip_if_zenodo_down, added in 423898f. This applies thesame
skip_if_site_downmechanism to the rest of the tests that need a live external service,mirroring galaxyproject/galaxy#23685 on the Galaxy side.
Motivating failure: a quay.io read timeout failed
test_data_manager_docker_mountin CI on anunrelated branch. Container resolution timed out, so the job ran without the biocontainer,
bowtie2 wasn't there, and the data manager JSON didn't match:
New probes
In
tests/test_utils.py, beside the existingskip_if_zenodo_down:galaxy-util 26.0.1 exports only
skip_if_github_downandskip_if_workflowhub_down—skip_if_quay_down,skip_if_dockstore_downandskip_if_galaxy_depot_downlanded in Galaxydev with #23685 but aren't in the pinned release yet. So these are defined locally against the
shared
skip_if_site_downprimitive and can collapse into upstream imports when the pin moves.The two that do exist upstream are imported from
galaxy.util.unittest_utilsrather thanre-exported.
Tests decorated
test_data_manager_docker_mount,test_workflow_test_repository_installation_gxformat2,test_serve_interactivetool— all--biocontainerstest_cmd_workflow_lint.py; 5 workflow autoupdate tests (test_autoupdate_workflow_from_multiple_tool_shedsalso getsskip_if_testtoolshed_down)test_run_trs_idtest_ok_http(lints a tool over https from raw.githubusercontent.com),test_git_ls_remotetest_training_generate_from_wf_command_remote_wf,test_training_init_command_tutorial_remote_wfEach new decorator sits innermost, below the existing
@skip_if_environ(...)marks, so the envgate is still a collection-time pytest mark and the network probe only runs if the test would
actually execute.
tests/test_trs_id.pyis deliberately untouched — it mocks Dockstore withresponses, so itneeds no probe.
Verification
is_site_uprequires exactly 200, so a URL that neverreturns 200 would skip its tests permanently — worth checking, and they're clean).
SkipTest: Test depends on [...] being up and it appears to be down.test_git_ls_remoteandtest_ok_http: 9 passed.Caveat
The probes hit root pages, so they catch a service that is unreachable, not a slow API behind a
working front page. The quay.io failure above was a 12s read timeout on the API while the front
page was presumably fine — so this would not have caught that specific one. It is the same
tradeoff #23685 accepted upstream; a tighter probe would mean per-service API URLs and more
maintenance.
🤖 Generated with Claude Code