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)