APM

>Agent Skill

@github/pytest-gen

skilltesting

Generate comprehensive pytest tests - use when generating tests, creating test suites, or testing Python code

pythontesting
apm::install
$apm install @github/pytest-gen
apm::skill.md
---
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.parametrize` for 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

```python
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
```