From jmchilton
Run Galaxy Tool Shed functional tests. The test harness automatically starts both a Tool Shed server and a Galaxy server instance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/jmchilton:galaxy-toolshed-testsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run Galaxy Tool Shed functional tests. The test harness automatically starts both a Tool Shed server and a Galaxy server instance.
Run Galaxy Tool Shed functional tests. The test harness automatically starts both a Tool Shed server and a Galaxy server instance.
/galaxy-toolshed-tests [test_path] [extra_args...]
Examples:
/galaxy-toolshed-tests - run all toolshed functional tests/galaxy-toolshed-tests lib/tool_shed/test/functional/test_shed_repositories.py - specific test file/galaxy-toolshed-tests lib/tool_shed/test/functional/test_shed_categories.py::TestShedCategoriesApi::test_create_okay - specific test method/galaxy-toolshed-tests lib/tool_shed/test/functional/test_0430_browse_utilities.py - browser-based test (requires playwright)Before running tests, verify:
Virtualenv exists at .venv/
test -d .venv && echo "EXISTS" || echo "MISSING"/galaxy-bootstrap skill to set it upGalaxy root detection
run_tests.sh and lib/tool_shed/)test -f run_tests.sh && test -d lib/tool_shed && echo "OK" || echo "NOT GALAXY ROOT"Tool Shed frontend built
/ which serves the SPA frontend. If the frontend isn't built, the server returns 500 and tests fail with: Test HTTP server on host 127.0.0.1 and port XXXX did not return '200 OK' after 150 triestest -f lib/tool_shed/webapp/frontend/dist/index.html && echo "EXISTS" || echo "MISSING"cd lib/tool_shed/webapp/frontend && pnpm install && pnpm build
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
./run_tests.sh -toolshed $TEST_PATH --skip-common-startup
$TEST_PATH is the path to the test file or directory. If omitted, defaults to ./lib/tool_shed/test/functional.
Default environment variables — always set unless the user explicitly asks otherwise:
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false — prevents unnecessary Conda download/installrun_tests.sh handles:
common_startup.sh (use --skip-common-startup if run recently)Use -- to pass args through to pytest:
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT=false \
./run_tests.sh -toolshed $TEST_PATH --skip-common-startup -- -s
-s is useful for debugging since it shows live output (server startup logs, test progress).
Located in lib/tool_shed/test/functional/test_shed_*.py. These use ShedApiTestCase and interact via API calls only.
| File | Tests |
|---|---|
test_shed_categories.py | Category CRUD |
test_shed_configuration.py | Configuration endpoints |
test_shed_repositories.py | Repository CRUD, metadata, search |
test_shed_tools.py | Tool-related operations |
test_shed_users.py | User management |
test_repositories_integration.py | Repository integration scenarios |
test_galaxy_install.py | Installing from shed into Galaxy |
Located in lib/tool_shed/test/functional/test_0*.py and test_1*.py. These use ShedTestCase which includes Playwright browser interaction (tests are parameterized with [chromium]).
test_0* — Tool Shed operations (create repos, dependencies, search, etc.)test_1* — Galaxy install operations (install, uninstall, reinstall repos)Located in lib/tool_shed/test/functional/test_frontend_*.py. These test the Tool Shed web UI directly.
The test driver (lib/tool_shed/test/base/driver.py) starts:
TOOL_SHED_TEST_OMIT_GALAXY is set)Both servers use temporary SQLite databases and temp directories that are cleaned up after tests.
| Option | Effect |
|---|---|
--skip-common-startup | Skip common_startup.sh if already run recently |
--skip-venv | Don't create/activate .venv |
--no_cleanup | Keep temp files after tests |
--verbose_errors | More verbose error reporting |
--debug | Drop into pdb on failure |
-- -s | Show live stdout (useful for debugging server startup) |
-- -k "test_name" | Run specific test by name pattern |
| Variable | Purpose |
|---|---|
GALAXY_CONFIG_OVERRIDE_CONDA_AUTO_INIT | Set false (default for this skill) |
TOOL_SHED_TEST_OMIT_GALAXY | Set to skip starting a Galaxy instance (for shed-only tests) |
TOOL_SHED_TEST_FILE_DIR | Defaults to lib/tool_shed/test/test_data |
TOOL_SHED_TEST_HOST | Host for test tool shed server |
TOOL_SHED_TEST_PORT | Port for test tool shed server |
run_tests.sh).venv exists, if not run /galaxy-bootstraplib/tool_shed/webapp/frontend/dist/index.html), if not build it with cd lib/tool_shed/webapp/frontend && pnpm install && pnpm build./run_tests.sh -toolshed with the provided arguments| Type | Directory |
|---|---|
| API tests | lib/tool_shed/test/functional/test_shed_*.py |
| Legacy browser tests | lib/tool_shed/test/functional/test_0*.py, test_1*.py |
| Frontend tests | lib/tool_shed/test/functional/test_frontend_*.py |
| Test data | lib/tool_shed/test/test_data/ |
| Test base classes | lib/tool_shed/test/base/ |
| Test driver | lib/tool_shed/test/base/driver.py |
test_shed_*.py) are faster than legacy numbered tests--skip-common-startup to save time if you've run tests recently and deps haven't changed-- -s to see live output when debugging server startup issuesnpx claudepluginhub jmchilton/claude-jmchilton-plugins --plugin jmchiltonDiscovers and executes 8,000+ bioinformatics tools from usegalaxy.org via natural language. Recommends Galaxy tools, suggests workflows, and chains Galaxy + local tools across pipelines.
Tests backend APIs with vitest/jest, go test, pytest, cargo test; verifies endpoints, DB changes, errors, collects evidence. Prohibits curl; mandates pre-completion verification.
Sets up shinytest2 end-to-end browser tests and testServer() unit tests for Shiny apps. Covers snapshot testing, mock services, and CI integration.