python-testing-patterns
/python-testing-patterns
Stosuje wzorce testowania Python z pytest, mockowaniem i testami właściwości, przy testach jednostkowych, integracyjnych i programowaniu sterowanym testami.
- Autor
- NickCrew ↗
- Repozytorium
- Claude-Cortex ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 28.06.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 13
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 3
Brak sygnałów. Repozytorium zmienione 28.06.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Stosuje wzorce testowania Python z pytest, mockowaniem i testami właściwości, przy testach jednostkowych, integracyjnych i programowaniu sterowanym testami.
Oryginalny opis (EN)
Python testing patterns and best practices using pytest, mocking, and property-based testing. Use when writing unit tests, integration tests, or implementing test-driven development in Python projects.
Jak działa
- When to Use This Skill
- Core Concepts
- Quick Reference
- Workflow
- Common Patterns
- Common Mistakes
- Resources
Podgląd SKILL.md
---
name: python-testing-patterns
description: Python testing patterns and best practices using pytest, mocking, and property-based testing. Use when writing unit tests, integration tests, or implementing test-driven development in Python projects.
keywords:
- TDD
- hypothesis testing
- integration test
- mocking
- parametrize
- pytest
- test coverage
- test fixture
- test-driven development
- unit test
file_patterns:
- '**/*_test.py'
- '**/test_*.py'
- '**/tests/**/*.py'
confidence: 0.85
---
# Python Testing Patterns
Comprehensive guide to implementing robust testing strategies in Python using pytest, fixtures, mocking, parameterization, and property-based testing.
## When to Use This Skill
- Writing unit tests for Python functions and classes
- Setting up comprehensive test suites and infrastructure
- Implementing test-driven development (TDD) workflows
- Creating integration tests for APIs, databases, and services
- Mocking external dependencies and third-party services
- Testing async code and concurrent operations
- Implementing property-based testing with Hypothesis
- Setting up CI/CD test automation
- Debugging failing tests and improving test coverage
## Core Concepts
**Test Discovery**: Files matching `test_*.py` or `*_test.py`, functions starting with `test_`
**Fixtures**: Reusable test resources with setup and teardown
- Scopes: `function` (default), `class`, `module`, `session`
- Composition: Build complex fixtures from simple ones
- Share via `conftest.py` for project-wide availability
**Assertions**: Use `assert` statements, `pytest.raises()` for exceptions
**Organization**: Separate `unit/`, `integration/`, `e2e/` directories
## Quick Reference
Load detailed references for specific topics:
| Task | Reference File |
|------|----------------|
| Pytest basics, test structure, AAA pattern | `skills/python-testing-patterns/references/pytest-fundamentals.md` |
| Fixtures, scopes, setup/teardown, conftest.py | `skills/python-testing-patterns/references/fixtures.md` |
| Parametrization, multiple test cases | `skills/python-testing-patterns/references/parametrized-tests.md` |
| Mocking, patching, unittest.mock, pytest-mock | `skills/python-testing-patterns/references/mocking.md` |
| Async tests, pytest-asyncio, event loops | `skills/python-testing-patterns/references/async-testing.md` |
| Property-based testing, Hypothesis, strategies | `skills/python-testing-patterns/references/property-based-testing.md` |
| Monkeypatch, environment variables, attributes | `skills/python-testing-patterns/references/monkeypatch.md` |
| Test structure, markers, conftest.py patterns | `skills/python-testing-patterns/references/test-organization.md` |
| Coverage measurement, reports, thresholds | `skills/python-testing-patterns/references/coverage.md` |
| Database, API, Redis, message queue testing | `skills/python-testing-patterns/references/integration-testing.md` |
| Best practices, test quality, fixture design | `skills/python-testing-patterns/references/best-practices.md` |
## Workflow
### 1. Basic Test Setup
```python
# test_example.py
import pytest
def test_something():
"""Descriptive test name."""
# Arrange
expected = 5
# Act
result = 2 + 3
# Assert
assert result == expected
```
**Run tests:**
```bash
pytest # Run all tests
pytest -v # Verbose output
pytest tests/unit/ # Specific directory
pytest -k "test_user" # Match pattern
pytest -m unit # Run marked tests
```
### 2. Using Fixtures
```python
@pytest.fixture
def sample_data():
"""Provide test data."""
data = {"key": "value"}
yield data
# Cleanup if needed
def test_with_fixture(sample_data):
assert sample_data["key"] == "value"
```
### 3. Parametrized Tests
```python
@pytest.mark.parametrize("input,expected", [
(2, 4),
(3, 9),
(4, 16),
])
def test_square(input, expected):
assert input ** 2 == expected
```
### 4. Mocking External Dependencies
```python
from unittest.mock import patch
@patch("module.external_api_call")
def test_with_mock(mock_api):
mock_api.return_value = {"status": "ok"}
result = my_function()
assert result["status"] == "ok"
mock_api.assert_called_once()
```
### 5. Coverage Measurement
```bash
pytest --cov=src --cov-report=term-missing
pytest --cov=src --cov-report=html
pytest --cov=src --cov-fail-under=80
```
### 6. Test Configuration
**pytest.ini:**
```ini
[pytest]
testpaths = tests
python_files = test_*.py
addopts = -v --strict-markers --cov=src
markers =
unit: Unit tests
integration: Integration tests
slow: Slow tests
```
## Common Patterns
**Exception testing:**
```python
with pytest.raises(ValueError, match="error message"):
function_that_raises()
```
**Async testing:**
```python
@pytest.mark.asyncio
async def test_async_function():
result = await async_operation()
assert result is not None
```
**Temporary files:**
```python
def test_file_operation(tmp_path):
test_file = tmp_path / "test.txt"
test_file.write_text("content")
assert test_file.read_text() == "content"
```
**Markers for test selection:**
```python
@pytest.mark.slow
@pytest.mark.integration
def test_database_operation():
pass
```
## Common Mistakes
1. **Not using fixtures**: Repeating setup code across tests
- Solution: Create fixtures in conftest.py
2. **Tests depending on order**: Global state pollution
- Solution: Ensure test independence with proper fixtures
3. **Over-mocking**: Mocking internal implementation
- Solution: Mock only external boundaries (APIs, databases)
4. **Missing edge cases**: Only testing happy path
- Solution: Test boundary conditions, errors, and invalid inputs
5. **Slow tests**: Running full integration tests frequently
- Solution: Separate unit/integration, use markers, optimize fixtures
6. **Ignoring coverage gaps**: Not measuring test coverage
- Solution: Use pytest-cov and track metrics
7. **Poor test names**: Generic names like `test_1()`
- Solution: Use descriptive names: `test_<behavior>_<condition>_<expected>`
8. **No cleanup**: Resources not released
- Solution: Use fixtures with proper teardown (yield pattern)
## Resources
- **pytest**: https://docs.pytest.org/
- **unittest.mock**: https://docs.python.org/3/library/unittest.mock.html
- **pytest-asyncio**: Testing async code
- **pytest-cov**: Coverage reporting
- **pytest-mock**: pytest wrapper for mock
- **Hypothesis**: https://hypothesis.readthedocs.io/
- **pytest-xdist**: Parallel test execution
- **testcontainers**: Docker containers for testing
Pliki w paczce (13)
- SKILL.md 6 KB
- references/async-testing.md 3 KB
- references/best-practices.md 8 KB
- references/coverage.md 6 KB
- references/fixtures.md 3 KB
- references/integration-testing.md 8 KB
- references/mocking.md 4 KB
- references/monkeypatch.md 5 KB
- references/parametrized-tests.md 2 KB
- references/property-based-testing.md 6 KB
- references/pytest-fundamentals.md 2 KB
- references/test-organization.md 6 KB
- validation/rubric.yaml 2 KB
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · NickCrew/Claude-Cortex | 100 | MIT |
| FrancoStino/opencode-skills-collection | 100 | MIT |
| rootcastleco/rei-skills | 100 | MIT |
| davila7/claude-code-templates | 100 | MIT |
| wshobson/agents | 100 | MIT |
| jerelvelarde/chalk-skills | 100 | MIT |
| vladolaru/claude-code-plugins | 95 | MIT |
| HermeticOrmus/LibreUIUX-Claude-Code | 91 | MIT |
| LeoYeAI/openclaw-master-skills | 91 | MIT |
Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.
Migawka bazy z 28.10.2026 · wersja paczki c799488bc462 (skrót SHA-256 całej paczki)
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100python-testing
Stosuje wzorce testowania Python z pytest, fixtures, TDD, mockowaniem oraz testami asynchronicznymi i integracyjnymi, przy pisaniu lub audycie zestawu testów. - 100python-testing
Pomaga pisać testy w Pythonie z pytest: jednostkowe i integracyjne, fixtury, mockowanie oraz pokrycie kodu. - 100python-testing
Wspiera testowanie w Python z pytest: pokrycie kodu, fixtures i mockowanie. - 100python-testing
Pisze i uruchamia testy Python w pytest z fixtures, mockowaniem, pokryciem kodu i wzorcem AAA oraz konfiguruje pytest. - 100python-testing
Stosuje dobre praktyki testowania Python w pytest: fixtures, parametryzacja, mockowanie, analiza pokrycia, testy asynchroniczne i organizacja testów. - 100testing-best-practices
Opisuje zasady testów jednostkowych, integracyjnych i test-driven development przy pisaniu testów, przeglądzie kodu testowego, zwiększaniu pokrycia i ustalaniu strategii testowania.