run-python-tests
This skill executes Python test suites with configurable timeouts to verify code changes.
Install
mkdir -p .claude/skills/run-python-tests && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3291" && unzip -o skill.zip -d .claude/skills/run-python-tests && rm skill.zipInstalls to .claude/skills/run-python-tests
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Run end-to-end Python tests after making changes to verify correctness. Use this when you want to verify your changes from an end-to-end perspective, after ensuring the build and Rust tests pass.Key capabilities
- →Execute full test suite
- →Run tests within specific files
- →Isolate specific test methods
- →Configure execution timeouts
- →Execute tests in parallel or batch
How it works
Wraps `./build.sh` commands with specific environment variables and arguments to trigger the Python test runner.
Inputs & outputs
When to use run-python-tests
- →Verify changes with E2E tests
- →Run tests in a specific python file
- →Execute full test suite after refactoring
About this skill
Run Python Tests Skill
Run end-to-end Python tests after making changes to verify correctness.
Arguments
- No arguments: Run all Python tests
<filename>: Run all Python tests in the specified file<filename>:<test_name>: Run a specific Python test in the specified file<filename 1> <filename 2>: Run all Python tests in the specified files
Arguments provided: $ARGUMENTS
Instructions
Test Timeout
Some tests take longer to run than others. The TEST_TIMEOUT parameter controls how long each test is allowed to run before being terminated.
- Quick verification (preferred): Pass
TEST_TIMEOUT=20to get fast feedback. Tests that exceed this timeout will be terminated. - Full test run: Omit
TEST_TIMEOUTto let tests run with the default timeout (300 seconds).
Always start with a quick verification, using TEST_TIMEOUT=20. Faster feedback loops lead to faster iteration.
If there are timeouts during a quick verification run, check if the timed-out tests are relevant to the current task:
- If you can determine relevance autonomously (e.g., the test name clearly relates to the code you changed), re-run those specific tests without a timeout.
- If you cannot determine relevance, ask the user whether the timed-out tests should be re-run without a timeout.
All Tests
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20
All Tests From A Specific File
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20 TEST="<filename without extension>"
For example:
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20 TEST="test_crash"
for running tests from tests/pytests/test_crash.py.
All Tests From Multiple Files
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20 TEST="<filename 1> <filename 2>"
For example:
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20 TEST="test_crash test_gc"
for running tests from tests/pytests/test_crash.py and tests/pytests/test_gc.py.
Specific Test From A Specific File
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20 TEST="<filename without extension>:<test_name>"
For example:
./build.sh RUN_PYTEST ENABLE_ASSERT=1 TEST_TIMEOUT=20 TEST="test_crash:test_query_thread_crash"
for running the test_query_thread_crash test from tests/pytests/test_crash.py.
Interpreting The Test Output
For each failed test, you'll see an error message with details about the failure, as seen from the Python test runner.
Each failed test will also have an associated log file, located under tests/pytests/logs. The name of the log file
changes with every test run, but it's included in the output of the test runner.
Report
After running the tests, put together a report:
- Number of tests passed
- Number of tests failed
- Number of tests skipped
- For each failing test:
- The error message reported in the test output, on the Python side
- The stack trace from the server logs for the Redis server:
- If the panic is in Rust code, include the Rust panic message and the Rust backtrace (from the
# search_rust_backtracesection) - If the crash is in C code, include just the C backtrace.
- If the panic is in Rust code, include the Rust panic message and the Rust backtrace (from the
- Path to the log file, relative to the root of the repository
When not to use it
- →When build or Rust-level tests are failing
- →When testing isolated logic not covered by E2E suites
Limitations
- →Quick verification (20s) may terminate long-running valid tests
- →Requires prior knowledge of relevant test file names
How it compares
This tool enforces a quick feedback loop by requiring a mandatory timeout parameter, unlike standard manual test execution.
Compared to similar skills
run-python-tests side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| run-python-tests (this skill) | 1 | 5mo | Review | Intermediate |
| python-testing-patterns | 77 | 2mo | Review | Intermediate |
| backtesting-frameworks | 17 | 2mo | No flags | Advanced |
| temporal-python-testing | 8 | 3mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by RediSearch
View all by RediSearch →You might also like
python-testing-patterns
wshobson
Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.
backtesting-frameworks
wshobson
Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.
temporal-python-testing
wshobson
Test Temporal workflows with pytest, time-skipping, and mocking strategies. Covers unit testing, integration testing, replay testing, and local development setup. Use when implementing Temporal workflow tests or debugging test failures.
home-assistant-integration-knowledge
home-assistant
Everything you need to know to build, test and review Home Assistant Integrations. If you're looking at an integration, you must use this as your primary reference.
testing-python
jlowin
Write and evaluate effective Python tests using pytest. Use when writing tests, reviewing test code, debugging test failures, or improving test coverage. Covers test design, fixtures, parameterization, mocking, and async testing.
pr-review
pytorch
Review PyTorch pull requests for code quality, test coverage, security, and backward compatibility. Use when reviewing PRs, when asked to review code changes, or when the user mentions "review PR", "code review", or "check this PR".