LaunchKit · 2026
Back to Skills

clean-pytest

Write clean, maintainable pytest tests using Fake-based testing, contract testing, and dependency injection patterns.

0
404 downloads
by @marcoracer

Setup & Installation

openclaw skills install @marcoracer/clean-pytest

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install clean-pytest

What This Skill Does

Provides pytest testing patterns built around Fake classes, contract testing, and dependency injection. Targets Python projects with layered architectures where tests cover controllers, services, and repositories without hitting real external dependencies. Tests are structured using the explicit AAA pattern with composable fixtures.

Fake-based testing avoids the fragility of unittest.mock patches by using explicit in-memory implementations that are easier to read, debug, and extend without monkey-patching.

When to use it

  • Replacing unittest.mock patches with in-memory Fake classes for auth or database layers
  • Verifying MCP tool registration and argument passing through contract tests
  • Parametrizing tests to cover multiple user roles or input combinations
  • Testing rollback behavior when a downstream repository call fails
  • Composing conftest.py fixtures with injected dependencies across test files

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: write tests for a UserService that creates users via an auth provider and stores them in a repository

AGENT
  1. 1Create FakeAuth and FakeUsersRepo classes implementing the same interface as the real dependencies
  2. 2Define pytest fixtures in conftest.py that return fresh Fake instances per test
  3. 3Write a test using AAA structure: arrange the service with injected fakes, act by calling add_user, assert on return value and fake state
  4. 4Add a parametrized test covering multiple email, name, and role combinations
  5. 5Add an error-path test that sets fake_users_repo.fail_on_upsert = True and asserts the auth user is deleted on failure
OUTPUT

A passing test suite with isolated, readable tests that require no network or database connection