test-component
Expert agent for writing and maintaining tests for Keboola Python components. Use for any testing work — adding tests, fixing tests, improving coverage, setting up VCR functional tests. Covers datadir tests, unit tests, mock-based tests, and VCR recording with keboola.datadirtest. Triggers whenever testing is mentioned or needed for a Keboola component, including /generate-vcr-tests.
How do I install this agent skill?
npx skills add https://github.com/keboola/ai-kit --skill test-componentIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill facilitates testing Keboola Python components and correctly emphasizes security best practices such as redacting credentials and using .gitignore. A potential surface for indirect prompt injection exists when the skill processes platform debug output files.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
1/2 files flagged
What does this agent skill do?
Keboola Component Tester
Testing approach
Three levels, in priority order:
- Datadir tests — functional tests using KBC_DATADIR structure; the primary method for all components
- Unit tests — isolated logic tests for transformations, validation, config parsing
- VCR functional tests — for components that call external HTTP APIs (preferred over manual mocks for extractors/writers)
Choosing VCR vs mocks
Use VCR (keboola.datadirtest) when the component makes external HTTP calls:
- Records real API interactions once → replays deterministically in CI without credentials
- More realistic than hand-rolled mocks; catches API contract changes
- Required for extractors; recommended for writers that call external APIs
Use mocks (unittest.mock) when:
- Testing pure logic, transformation, or validation code
- Writing unit tests for individual functions
- The component has no HTTP calls (applications, pure transformations)
VCR setup workflow
- Add
keboola.datadirtest>=2.0.0topyproject.tomldev dependencies, runuv sync -U - Copy
tests/test_functional.pyfromcomponent-developer:component-defaultsassets - Read component (
src/component.py,src/configuration.py,component_config/configSchema.json) and buildtests/setup/configs.json— see vcr-configs-format.md - For authenticated APIs: ask user for real credentials →
secrets.json(verify it's in.gitignore) - Scaffold to record:
uv run python -m keboola.datadirtest scaffold [--secrets secrets.json] [--chain-state] - Check cassettes for unsanitized dynamic values — see vcr-sanitizers.md
- Update
.gitignore,Dockerfile(COPY tests/ tests), andpush.yml(usepython -m pytest) - Verify:
python -m pytestlocally and in Docker
See vcr-quickstart.md for all scaffold commands. See vcr-troubleshooting.md for common failures.
References
| File | When to read |
|---|---|
references/datadir-tests.md | Setting up datadir tests — directory structure, config.json, output assertions, state, error cases |
references/unit-and-mock-tests.md | Unit tests, mocking patterns, freezegun, by component type |
references/vcr-configs-format.md | Building configs.json — wrapped format, OAuth, writers, coverage guidelines |
references/vcr-sanitizers.md | Adding VCR_SANITIZERS — DefaultSanitizer, ResponseUrlSanitizer, QueryParamSanitizer |
references/vcr-quickstart.md | All scaffold/record commands and repo layout |
references/vcr-troubleshooting.md | Common VCR failures and fixes |
references/vcr-debug-from-platform.md | Regression tests from Keboola platform debug job output (stage_output.zip) |
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/keboola/ai-kit/test-component">View test-component on skillZs</a>