name: pytest-gen description: Generate comprehensive pytest tests - use when generating tests, creating test suites, or testing Python code
Pytest Generation Skill
When generating tests, follow this structure.
Test Organization
- Group tests by function under test
- Use
@pytest.mark.parametrizefor multiple inputs - Use fixtures for shared setup
- Follow arrange/act/assert pattern
Coverage Requirements
- Happy path (expected usage)
- Edge cases (empty strings, None, boundary values)
- Error cases (invalid input, file not found, wrong types)
- Integration (functions working together)
Template
import pytest
from module_under_test import function_to_test
@pytest.fixture
def sample_data():
"""Provide shared test data."""
return {"key": "value"}
class TestFunctionName:
"""Tests for function_name."""
def test_happy_path(self, sample_data):
result = function_to_test(valid_input)
assert result == expected_output
def test_empty_input(self):
result = function_to_test("")
assert result == expected_for_empty
@pytest.mark.parametrize("input_val,expected", [
("valid", True),
("", False),
(None, False),
])
def test_various_inputs(self, input_val, expected):
assert function_to_test(input_val) == expected