Installs into .claude/skills of the current project.
Are you the author of Python Testing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/athola-python-testing)
---
name: python-testing
description: Python testing patterns with pytest, fixtures, TDD, mocking, async and integration tests. Use when writing or auditing a Python test suite.
globs: "**/*.py"
alwaysApply: false
category: testing
tags:
- python
- testing
- pytest
- tdd
- test-automation
- quality-assurance
tools: []
usage_patterns:
- testing-implementation
- test-suite-setup
- test-refactoring
- ci-cd-integration
complexity: intermediate
model_hint: standard
estimated_tokens: 900
progressive_loading: true
modules:
- modules/unit-testing.md
- modules/fixtures-and-mocking.md
- modules/test-infrastructure.md
- modules/testing-workflows.md
- modules/test-quality.md
- modules/async-testing.md
---
# Python Testing Hub
Testing standards for pytest configuration, fixture management, and TDD implementation.
## Quick Start
1. **Dependencies**: `pip install pytest pytest-cov pytest-asyncio pytest-mock`
2. **Configuration**: Add the following to `pyproject.toml`:
```toml
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "--cov=src"
```
3. **Verification**: Run `pytest` to confirm discovery of files matching `test_*.py`.
## When To Use
- Constructing unit and integration tests for Python 3.9+ projects.
- Isolating external dependencies using `pytest-mock` or custom monkeypatching.
- Validating asynchronous logic with `pytest-asyncio` markers and event loop management.
- Configuring project-wide coverage thresholds and reporting.
## When NOT To Use
- Evaluating test
quality - use pensive:test-review instead
- Infrastructure test
config - use leyline:pytest-config
## Modules
This skill uses modular loading to manage the system prompt budget.
### Core Implementation
- See `modules/unit-testing.md` - AAA (Arrange-Act-Assert) pattern, basic test structure, and exception validation.
- See `modules/fixtures-and-mocking.md` - Request-scoped fixtures, parameterization, and boundary mocking.
- See `modules/async-testing.md` - Coroutine testing, async fixtures, and concurrency validation.
### Infrastructure & Workflow
- See `modules/test-infrastructure.md` - Directory standards, `conftest.py` management, and coverage tools.
- See `modules/testing-workflows.md` - Local execution patterns and GitHub Actions integration.
### Standards
- See `modules/test-quality.md` - Identification of common anti-patterns like broad exception catching or shared state between tests.
## Exit Criteria
- Tests implement the AAA pattern.
- Coverage reaches the 80% project minimum.
- Individual tests are independent and do not rely on execution order.
- Fixtures are scoped appropriately (function, class, or session) to prevent side effects.
- Mocking is restricted to external system boundaries.
## Troubleshooting
- **Test Discovery**: Verify filenames match the `test_*.py` pattern. Use `pytest --collect-only` to debug discovery paths.
- **Import Errors**: Ensure the local source directory is in the path, typically by installing in editable mode with `pip install -e .`.
- **Async Failures**: Confirm that `pytest-asyncio` is installed and that async tests use the `@pytest.mark.asyncio` decorator or corresponding auto-mode configuration.