# Test Generator

> Генерация pytest-скелетов из Python-модуля по AST с ghostwriter-эвристикой значений аргументов (bool→True/False, int→0/-1/1, str→sample/пустая, list/dict→пустые, Optional→None). Скрипт test_gen.py парсит функции/async-функции через ast, пропускает приватные (_), генерирует @pytest.mark.parametrize с assert-заглушками. Включает референс по генерации тестов на TypeScript (ts-morph, *.test.ts) и Go…

- **Type:** Skill
- **Install:** `agentstack add skill-bestdeejay-design-agent-skills-test-generator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [bestdeejay-design](https://agentstack.voostack.com/s/bestdeejay-design)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [bestdeejay-design](https://github.com/bestdeejay-design)
- **Source:** https://github.com/bestdeejay-design/agent-skills/tree/main/skills/test-generator
- **Website:** https://bestdeejay-design.github.io/agent-skills/

## Install

```sh
agentstack add skill-bestdeejay-design-agent-skills-test-generator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Test Generator

> Генерация pytest-скелетов из сигнатур функций: AST-парсинг + эвристика значений,
> готовый параметризованный тест-файл в stdout или файл.

Загружай этот скилл когда нужно **создать стартовый pytest-набор** для
существующих функций или модуля. Скилл читает исходник, извлекает сигнатуры
и генерирует `@pytest.mark.parametrize`-скелеты с разумными тестовыми значениями —
остаётся лишь дописать assert-ожидания.

## 🎯 When to use

Use this skill when:
- Нужны тесты для нового модуля, где покрытие начинается с пустого файла
- Просят «сгенерируй тесты», «test skeleton», «покрой функциям»
- Нужна быстрая заготовка parametrize-кейсов с типичными значениями
- Хочешь перейти к TDD: сгенерируй красные скелеты и реализуй

Do NOT use when:
- Нужны осмысленные ассерты под конкретную логику — скрипт даёт заглушки, логику пишешь сам
- Тесты уже покрывают функции — файл-генератор всё перезапишет
- Нужны моки/фикстуры вне модуля — это уровень pytest напрямую

## 📦 Files

- `SKILL.md` — этот файл
- `scripts/test_gen.py` — генератор из AST (Python 3 stdlib)
- `references/` — примеры и референс TS/Go (в будущих версиях)

## 🧰 Usage

```bash
# В stdout:
python3 skills/test-generator/scripts/test_gen.py --file path/to/module.py

# В файл (рядом с модулем):
python3 skills/test-generator/scripts/test_gen.py \
    --file path/to/module.py --out tests/test_module.py
```

## ⚙️ Эвристика значений аргументов

| Аннотация | Значения |
|-----------|----------|
| `bool` | `True`, `False` |
| `int` | `0`, `-1`, `1` |
| `float` | `0.0`, `-1.5` |
| `str` / `text` | `"sample"`, `""` |
| `list[...]` | `[]` |
| `tuple[...]` | `()` |
| `dict[...]` | `{}` |
| `Optional[...]` | `None` |
| иное | значение не подставляется → `None`-заглушка |

Правила:
- Функции, начинающиеся с `_`, пропускаются.
- `async def` оборачивается в `asyncio.run(...)`.
- В генерируемом коде assert-заглушка: `assert result is not None` — допиши реальные ожидания.

## ✅ Definition of Done
- Скрипт отработал: валидный pytest-файл в stdout или `--out`.
- Сгенерированный код проходит `python3 -c "import ast"` (синтаксис корректный).
- Значения аргументов соответствуют эвристикам (таблица выше).

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [bestdeejay-design](https://github.com/bestdeejay-design)
- **Source:** [bestdeejay-design/agent-skills](https://github.com/bestdeejay-design/agent-skills)
- **License:** MIT
- **Homepage:** https://bestdeejay-design.github.io/agent-skills/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-bestdeejay-design-agent-skills-test-generator
- Seller: https://agentstack.voostack.com/s/bestdeejay-design
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
