python-testing-patterns
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.
By wshobson · 32,340 installs
npx skills add wshobson/agents --skill python-testing-patterns
Source repository · Upstream listing
Python Testing Patterns
Comprehensive guide to implementing robust testing strategies in Python using pytest, fixtures, mocking, parameterization, and test driven development practices.
When to Use This Skill
Writing unit tests for Python code
Setting up test suites and test infrastructure
Implementing test driven development (TDD)
Creating integration tests for APIs and services
Mocking external dependencies and services
Testing async code and concurrent operations
Setting up continuous testing in CI/CD
Implementing property based testing
Testing database operations
Debugging failing tests
Core Concepts
1. Test Types
Unit Tests : Test individual functions/classes in isolation
Integration Tests : Test interaction between components
Functional Tests : Test complete features end to end
Performance Tests : Measure speed and resource usage
2. Test Structure (AAA Pattern)
Arrange : Set up test data and preconditions
Act : Execute the code under test
Assert : Verify the results
3. Test Coverage
Measure what code is exercised by tests
Identify untested code paths
Aim for meaningful coverage, not just high percentages
4. Test Isolation
Tests should be independent
No shared state between tests
Each test should clean up after itself
Quick Start
Detailed patterns and worked examples
Detailed pattern documentation lives in references/details.md . Read that file when the navigation tier above is insufficient.
Testing Best Practices
Test Organization
Test Naming Convention
A common pattern: test <unit <scenario <expected outcome . Adapt to your team's preferences.
Testing Retry Behavior
Verify that retry logic works correctly using mock side effects.
Mocking Time with Freezegun
Use freezegun to control time in tests for predictable time dependent behavior.
Test Markers
Coverage Reporting
For advanced patterns (async testing, monkeypatching, property based testing, database testing, CI/CD integration, and configuration), see [references/advanced patterns.md](references/advanced patterns.md)