Table of Contents
-
Quick Start
-
Detailed Patterns
-
Integration with Other Skills
-
Exit Criteria
-
Troubleshooting
Pytest Configuration Patterns
Standardized pytest configuration and patterns for consistent testing infrastructure across Claude Night Market plugins.
When To Use
-
Setting up pytest configuration and fixtures
-
Configuring conftest.py patterns for test infrastructure
When NOT To Use
-
Non-Python projects or projects using other test frameworks
-
Simple scripts that do not need test infrastructure
Quick Start
Basic pyproject.toml Configuration
[tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_.py"] python_classes = ["Test"] python_functions = ["test_*"] addopts = [ "-v", "--cov=src", "--cov-report=term-missing", "--cov-fail-under=80", "--strict-markers", ] markers = [ "unit: marks tests as unit tests", "integration: marks tests as integration tests", "slow: marks tests as slow running", ]
[tool.coverage.run] source = ["src"] omit = ["/tests/", "/migrations/", "/pycache/"] branch = true
[tool.coverage.report] exclude_lines = [ "pragma: no cover", "def repr", "def str", "raise NotImplementedError", "if name == .main.:", "if TYPE_CHECKING:", "class .*\bProtocol\):", "@(abc\.)?abstractmethod", ] precision = 2 show_missing = true
Verification: Run pytest --collect-only to verify discovery, pytest -v --co -q for markers, and pytest --cov for coverage thresholds.
Detailed Patterns
For detailed implementation patterns, see:
-
Conftest Patterns - Conftest.py templates, fixtures, test markers, and directory structure
-
Git Testing Fixtures - GitRepository helper class for testing git workflows
-
Mock Fixtures - Mock tool fixtures for Bash, TodoWrite, and other Claude Code tools
-
CI Integration - GitHub Actions workflows and test commands for automated testing
-
Module Index: See modules/README.md for module organization overview
Integration with Other Skills
This skill provides foundational patterns referenced by:
-
parseltongue:python-testing
-
Uses pytest configuration and fixtures
-
pensive:test-review
-
Uses test quality standards
-
sanctum:test-*
-
Uses conftest patterns and Git fixtures
Reference in your skill's frontmatter:
dependencies: [leyline:pytest-config, leyline:testing-quality-standards]
Exit Criteria
-
pytest configuration standardized across plugins
-
conftest.py provides reusable fixtures
-
test markers defined and documented
-
coverage configuration enforces quality thresholds
-
CI/CD integration configured for automated testing
Troubleshooting
Common Issues
Tests not discovered Ensure test files match pattern test_*.py or *_test.py . Run pytest --collect-only to verify.
Import errors Check that the module being tested is in PYTHONPATH or install with pip install -e .
Async tests failing Install pytest-asyncio and decorate test functions with @pytest.mark.asyncio