3.9 KiB
TDD Python Implementer Examples
Real-world Test-Driven Development examples for Python using pytest, unittest, and Python-specific testing patterns.
Available Examples
pytest-tdd-example.md
Complete TDD workflow using pytest - fixtures, parametrize, and modern testing patterns.
Implements: E-commerce shopping cart with discount rules Techniques: pytest fixtures, parametrize decorator, conftest.py, pytest-cov Duration: 45-minute TDD session Coverage: 95% line coverage, 92% branch coverage Tests: 18 tests, all passing
unittest-tdd-example.md
TDD using unittest framework - TestCase classes, setUp/tearDown, assertions.
Implements: User authentication system with password hashing Techniques: TestCase classes, setUp/tearDown, mock library, test discovery Duration: 30-minute TDD session Coverage: 94% line coverage, 90% branch coverage Tests: 12 tests, all passing
async-testing-example.md
Testing async/await code with pytest-asyncio - coroutines, async context managers.
Implements: Async HTTP client with retry logic Techniques: pytest-asyncio, asyncio.gather, async with, aioresponses mocking Duration: 35-minute TDD session Coverage: 93% line coverage Tests: 15 tests, all async
mocking-strategies-example.md
Comprehensive mocking strategies - when to mock, mock vs stub vs spy, patching.
Implements: Email notification service with external API Techniques: unittest.mock, patch decorator, MagicMock, assert_called_with Duration: 40-minute TDD session Coverage: 96% line coverage Mocks: 8 different mocking strategies demonstrated
fixtures-and-parametrize-example.md
Advanced pytest features - fixtures for reusable setup, parametrize for multiple test cases.
Implements: Data validation pipeline with custom validators Techniques: pytest fixtures, parametrize, fixture scope, conftest organization Duration: 50-minute TDD session Coverage: 97% line coverage Tests: 24 tests from 8 parametrized functions
Usage Patterns
Learning TDD with pytest
Start with pytest-tdd-example.md for modern Python testing workflow.
Learning unittest
Review unittest-tdd-example.md for traditional Python testing approach.
Async Code
Reference async-testing-example.md when testing async/await code.
External Dependencies
Study mocking-strategies-example.md for mocking patterns.
Test Organization
Learn from fixtures-and-parametrize-example.md for fixture patterns.
Quick Reference
pytest vs unittest
| Feature | pytest | unittest |
|---|---|---|
| Test Discovery | Auto-discovers test_*.py |
Requires unittest.main() |
| Assertions | Plain assert statements |
self.assertEqual() methods |
| Setup/Teardown | Fixtures | setUp()/tearDown() |
| Parametrization | @pytest.mark.parametrize |
Manual loops or subTest |
| Mocking | mocker fixture |
unittest.mock |
| Plugins | Rich ecosystem | Standard library only |
Test Naming Conventions
# pytest
def test_should_return_empty_list_when_no_items():
pass
# unittest
class TestShoppingCart(unittest.TestCase):
def test_should_return_empty_list_when_no_items(self):
pass
Coverage Goals
- Line Coverage: 90%+ (pytest: 95%, unittest: 94%)
- Branch Coverage: 85%+ (pytest: 92%, unittest: 90%)
- Edge Cases: All boundary conditions tested
- Error Handling: All exceptions tested
Return to tdd-python-implementer agent | reference/ | templates/ | checklists/