Python testing patterns with pytest including unit tests, integration tests, fixtures, mocking, and coverage. Use when writing Python tests.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Python Testing Skill
You are a testing specialist for Python projects.
## Testing Framework
### Framework Detection
- `conftest.py` or `pytest.ini` → pytest
- `[tool.pytest.ini_options]` in `pyproject.toml` → pytest
- `unittest` imports → unittest (suggest migrating to pytest)
- `tox.ini` → tox runner
- `nox` → nox runner
## Test Distribution
- **~75% Unit Tests**: Fast, mocked dependencies
- **~20% Integration Tests**: Database, API interactions
- **~5% E2E Tests**: Full workflows
## Unit Test Patterns
### Arrange-Act-Assert with Fixtures
```python
import pytest
from unittest.mock import Mock, AsyncMock, patch
class TestUserService:
@pytest.fixture
def mock_repository(self) -> Mock:
return Mock(spec=UserRepository)
@pytest.fixture
def service(self, mock_repository: Mock) -> UserService:
return UserService(mock_repository)
def test_get_user_returns_user_when_exists(
self, service: UserService, mock_repository: Mock
) -> None:
# Arrange
expected_user = User(id="1", name="Test", email="test@example.com")
mock_repository.find_by_id.return_value = expected_user
# Act
…
The line at the top of this page pins the label git:20260310.7891929, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_maczcs3enxhiorqx
GET https://markdownregistry.com/api/v1/resolve?ref=dmitriyyukhanov/claude-plugins/python-testing
GET https://markdownregistry.com/api/v1/blob/8704ca4da2e4517c2ce74dce63ab2f9592096eb3a0f3035cb2b3323a008d9eef
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
dmitriyyukhanov/claude-plugins · plugins/agent-dispatch/skills/setup/SKILL.md · Set up agent-dispatch on this machine: check what a tick needs, ask each repo's auto-merge threshold, check the…
dmitriyyukhanov/claude-plugins · plugins/claude-md-slim/skills/slim-claude-md/SKILL.md · Slim or restructure an oversized CLAUDE.md into path-scoped .claude/rules/ files, verifying nothing was lost. Use when…
dmitriyyukhanov/claude-plugins · plugins/codex-collaboration/skills/collaborative-loop/SKILL.md · Sequential drive/validate/act collaboration between Claude and Codex. Claude analyzes, Codex validates each finding…
dmitriyyukhanov/claude-plugins · plugins/codex-collaboration/skills/cross-review/SKILL.md · Parallel dual review between Claude and Codex. Both models review independently. Findings confirmed by reviewer…
dmitriyyukhanov/claude-plugins · plugins/humanizer/skills/humanizer/SKILL.md · Use when removing AI-generation patterns from text in English or Russian.
Auto-detects language by Cyrillic ratio and…
dmitriyyukhanov/claude-plugins · plugins/implementation-prd/skills/implementation-prd/SKILL.md · Create implementation-ready PRD/spec bundles for new apps, products, services, platforms, mobile or desktop software…
dmitriyyukhanov/claude-plugins · plugins/issue-to-pr/skills/run/SKILL.md · Drive a GitHub issue — bare or tracked on a Project board — from triage to a merge-ready PR through a gated pipeline…
dmitriyyukhanov/claude-plugins · plugins/issue-to-pr/skills/setup/SKILL.md · Check issue-to-pr prerequisites in Claude Code or Codex: shell, GitHub access, optional config and available companion…
dmitriyyukhanov/claude-plugins · plugins/learning-guide/skills/learning-guide/SKILL.md · Use when the user asks to "create a learning guide", "make an interactive tour", "generate onboarding doc", "build a…
dmitriyyukhanov/claude-plugins · plugins/learning-guide/skills/render/SKILL.md · Renders an existing tour-spec.json to a single-file interactive HTML guide via the bundled Node renderer. Use when the…
athola/claude-night-market · plugins/parseltongue/skills/python-testing/SKILL.md · Python testing patterns with pytest, fixtures, TDD, mocking, async and integration tests. Use when writing or auditing…
dmitriyyukhanov/agent-plugins · plugins/python-dev/skills/python-testing/SKILL.md · Python testing patterns with pytest including unit tests, integration tests, fixtures, mocking, and coverage. Use when…