Skip to content
Development
Skill

/python-testing

Python testing patterns with pytest, fixtures, TDD, mocking, async and integration tests. Use when writing or auditing a Python test suite.

From plugin
claude-night-market
337200 skills59 agents162 commands1 MCP
Install
$ npx -y skills add athola/claude-night-market --skill python-testing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/python-testing

Context preview

The summary Claude sees to decide when to auto-load this skill.

Python testing patterns with pytest, fixtures, TDD, mocking, async and integration tests. Use when writing or auditing a Python test suite.

SKILL.md

python-testing.SKILL.md
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.

Table of Contents

1. [Quick Start](#quick-start) 2. [When to Use](#when-to-use) 3. [Modules](#modules)

Quick Start

1. **Dependencies**: `pip install pytest pytest-cov pytest-asyncio pytest-mock` 2. **Configuration**: Add the following to `pyproject.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.
Read more
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

Get the whole plugin

Other skills on claude-night-market.