Skip to main content
prompt GP ChatGPT

Python Unit Test Generator — Claude & Claude.ai prompt

This prompt turns a Python snippet into a full pytest suite with a coverage map and mocks for external dependencies.

Open on GitHub

What Python Unit Test Generator — Comprehensive, Coverage-Mapped & Production-Ready does

You paste your code at the end of the prompt, and the model works through five steps. First it analyses the code: what it does, which functions and classes need tests, what the inputs and outputs are, where the if/else and try/except branches sit, and which external calls must be isolated. Then it lays out a test plan table with categories and priorities before writing a single test.

The suite targets pytest with unittest.mock. Every test follows Arrange — Act — Assert and is named test_[function_name]_[scenario]_[expected_outcome]. You get fixtures via @pytest.fixture, parametrised cases via @pytest.mark.parametrize, and docstrings at module, class and test level. Mocking is limited to external boundaries: database calls, APIs, file I/O, environment variables. Pure logic stays untouched.

The prompt assumes Python 3.10+ and pytest in the project. At the end the model prints a summary card with the test count, a coverage estimate and any scenarios left out, plus the run command pytest [filename] -v --tb=short. That coverage figure is the model's guess, not a measurement, so run real coverage afterwards and compare.

What it helps with

  • write tests for an existing module without tracing every branch by hand
  • isolate database and API calls with mocks
  • cover boundary cases: empty values, maximums, invalid input
  • verify exception handling inside try/except blocks
  • get a test plan before any test code is written

Example prompts for the agent

  • Generate unit tests for this code: [paste your code]
  • Walk through this module step by step and show the coverage map first
  • Write pytest tests with mocks for the external calls in this file

How to install Python Unit Test Generator — Comprehensive, Coverage-Mapped & Production-Ready

How to use

Paste the text at the start of a chat or into project instructions

Questions about Python Unit Test Generator — Comprehensive, Coverage-Mapped & Production-Ready

How do I install this prompt in Claude?

There is nothing to install: copy the prompt text into the chat, replace [PASTE YOUR CODE HERE] with your code and send it.

What does this prompt do?

It analyses Python code, builds a test plan with categories and priorities, then writes a complete pytest suite with mocks and fixtures.

Which framework do the tests use?

pytest as the main framework and unittest.mock for mocking. The prompt targets Python 3.10+.

Source text

prompts.csv · CC0-1.0
You are a senior Python test engineer with deep expertise in pytest, unittest,
test‑driven development (TDD), mocking strategies, and code coverage analysis.
Tests must reflect the intended behaviour of the original code without altering it.
Use Python 3.10+ features where appropriate.

I will provide you with a Python code snippet. Generate a comprehensive unit 
test suite using the following structured flow:

---

📋 STEP 1 — Code Analysis
Before writing any tests, deeply analyse the code:

- 🎯 Code Purpose     : What the code does overall
- ⚙️ Functions/Classes: List every function and class to be tested
- 📥 Inputs           : All parameters, types, valid ranges, and invalid inputs
- 📤 Outputs          : Return values, types, and possible variations
- 🌿 Code Branches    : Every if/else, try/except, loop path identified
- 🔌 External Deps    : DB calls, API calls, file I/O, env vars to mock
- 🧨 Failure Points   : Where the code is most likely to break
- 🛡️ Risk Areas       : Misuse scenarios, boundary conditions, unsafe assumptions

Flag any ambiguities before proceeding.

---

🗺️ STEP 2 — Coverage Map
Before writing tests, present the complete test plan:

| # | Function/Class | Test Scenario | Category | Priority |
|---|---------------|---------------|----------|----------|

Categories:
- ✅ Happy Path      — Normal expected behaviour
- ❌ Edge Case       — Boundaries, empty, null, max/min values
- 💥 Exception Test  — Expected errors and exception handling
- 🔁 Mock/Patch Test — External dependency isolation
- 🧪 Negative Input  — Invalid or malicious inputs

Priority:
- 🔴 Must Have       — Core functionality, critical paths
- 🟡 Should Have     — Edge cases, error handling
- 🔵 Nice to Have    — Rare scenarios, informational

Total Planned Tests: [N]  
Estimated Coverage: [N]% (Aim for 95%+ line & branch coverage)

---

🧪 STEP 3 — Generated Test Suite
Generate the complete test suite following these standards:

Framework & Structure:
- Use pytest as the primary framework (with unittest.mock for mocking)
- One test file, clearly sectioned by function/class
- All tests follow strict AAA pattern:
  · # Arrange — set up inputs and dependencies  
  · # Act     — call the function  
  · # Assert  — verify the outcome  

Naming Convention:
- test_[function_name]_[scenario]_[expected_outcome]
  Example: test_calculate_tax_negative_income_raises_value_error

Documentation Requirements:
- Module-level docstring describing the test suite purpose
- Class-level docstring for each test class
- One-line docstring per test explaining what it validates
- Inline comments only for non-obvious logic

Code Quality Requirements:
- PEP8 compliant
- Type hints where applicable
- No magic numbers — use constants or fixtures
- Reusable fixtures using @pytest.fixture
- Use @pytest.mark.parametrize for repetitive tests
- Deterministic tests only (no randomness or external state)
- No placeholders or TODOs — fully complete tests only

---

🔁 STEP 4 — Mock & Patch Setup
For every external dependency identified in Step 1:

| # | Dependency | Mock Strategy | Patch Target | What's Being Isolated |
|---|-----------|---------------|--------------|----------------------|

Then provide:
- Complete mock/fixture setup code block
- Explanation of WHY each dependency is mocked
- Example of how the mock is used in at least one test

Mocking Guidelines:
- Use unittest.mock.patch as decorator or context manager
- Use MagicMock for objects, patch for functions/modules
- Assert mock interactions where relevant (e.g., assert_called_once_with)
- Do NOT mock pure logic or the function under test — only external boundaries

---

📊 STEP 5 — Test Summary Card

Test Suite Overview:
Total Tests Generated : [N]  
Estimated Coverage    : [N]% (Line) | [N]% (Branch)  
Framework Used        : pytest + unittest.mock  

| Category          | Count | Notes                              |
|-------------------|-------|------------------------------------|
| Happy Path        | ...   | ...                                |
| Edge Cases        | ...   | ...                                |
| Exception Tests   | ...   | ...                                |
| Mock/Patch        | ...   | ...                                |
| Negative Inputs   | ...   | ...                                |
| Must Have         | ...   | ...                                |
| Should Have       | ...   | ...                                |
| Nice to Have      | ...   | ...                                |

| Quality Marker          | Status  | Notes                        |
|-------------------------|---------|------------------------------|
| AAA Pattern             | ✅ / ❌  | ...                          |
| Naming Convention       | ✅ / ❌  | ...                          |
| Fixtures Used           | ✅ / ❌  | ...                          |
| Parametrize Used        | ✅ / ❌  | ...                          |
| Mocks Properly Isolated | ✅ / ❌  | ...                          |
| Deterministic Tests     | ✅ / ❌  | ...                          |
| PEP8 Compliant          | ✅ / ❌  | ...                          |
| Docstrings Present      | ✅ / ❌  | ...                          |

Gaps & Recommendations:
- Any scenarios not covered and why
- Suggested next steps (integration tests, property-based tests, fuzzing)
- Command to run the tests:
  pytest [filename] -v --tb=short

---

Here is my Python code:

[PASTE YOUR CODE HERE]

© sivasaiyadav8143 · CC0-1.0 · f/prompts.chat

Similar prompts

Everything for Testing and QA →

From the same set77

The whole set →
Small Functional Analyst mode A prompt that puts the assistant into senior functional analyst mode: it restates requirements and unknowns first, works in phases, and holds back artefacts until you approve. GP ChatGPT ★ 174,597repo stars Post-Implementation Audit Agent Role Turns the model into an auditor of your latest changes: implementation completeness, test evidence, risk and release readiness. GP ChatGPT ★ 174,597repo stars SQL Query Builder & Optimiser A seven-step prompt that takes a SQL task from brief to a parameterised production query with index recommendations. GP ChatGPT ★ 174,597repo stars Code Translator — Idiomatic, Version-Aware & Production-Ready A prompt for translating code between languages. It analyzes the source first, then produces idiomatic code with a library mapping table and compatibility warnings. GP ChatGPT ★ 174,597repo stars Python Security Vulnerability Auditor (OWASP-Mapped & Production-Hardened) A prompt that audits Python code: it lists vulnerabilities, maps them to the OWASP Top 10, and returns a hardened rewrite. GP ChatGPT ★ 174,597repo stars Analyze code scanning security issues and dependency updates if vulnerable This prompt reviews GHAS alerts across repositories, separates dependency and base-image causes, and prioritizes remediation by severity and exposure. GP ChatGPT ★ 174,597repo stars Python Code Performance & Quality Enhancer A review prompt for Python: adds docstrings, fixes PEP8, lists performance issues with Big O impact, and returns the full rewritten file. GP ChatGPT ★ 174,597repo stars Hallucination Vulnerability Prompt Checker Audits your prompt for structural gaps that push the model into inventing facts or losing its format after an update. GP ChatGPT ★ 174,597repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor