Skip to content
Skills Library
Programming · Testing

mocking-microcks-python

/mocking-microcks-python

Use when the mocking-strategy-roster resolved (microcks, Python) — the default mocking strategy for a Python integration test. Provides the MicrocksContainer wiring (unofficial microcks-testcontainers binding, pinned) of a Microcks container seeded from the downstream dependency's contract and the pytest fixture that points the system-under-test's HTTP client at the mock URL through the app factory. Emits mock wiring only; the business TDD cycle stays with the software-engineer lead.

Licence
GPL-3.0
Last repository change
11.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
1
Deprecation

No signals detected. Repository changed on 11.10.2026, without references to retired models or APIs.

Licence

GPL-3.0, otwarta.

What it does and when to use it

Use when the mocking-strategy-roster resolved (microcks, Python) — the default mocking strategy for a Python integration test. Provides the MicrocksContainer wiring (unofficial microcks-testcontainers binding, pinned) of a Microcks container seeded from the downstream dependency's contract and the pytest fixture that points the system-under-test's HTTP client at the mock URL through the app factory. Emits mock wiring only; the business TDD cycle stays with the software-engineer lead.

Original author description

Use when the mocking-strategy-roster resolved (microcks, Python) — the default mocking strategy for a Python integration test. Provides the MicrocksContainer wiring (unofficial microcks-testcontainers binding, pinned) of a Microcks container seeded from the downstream dependency's contract and the pytest fixture that points the system-under-test's HTTP client at the mock URL through the app factory. Emits mock wiring only; the business TDD cycle stays with the software-engineer lead.

How it works

  1. Dev dependencies
  2. Recipe — mock the downstream + wire the app
  3. Structured result back to the lead
  4. Rules
Original SKILL.md headings · 78 lines, 332 words
SKILL.md preview
---
name: mocking-microcks-python
description: Use when the mocking-strategy-roster resolved (microcks, Python) — the default mocking strategy for a Python integration test. Provides the MicrocksContainer wiring (unofficial microcks-testcontainers binding, pinned) of a Microcks container seeded from the downstream dependency's contract and the pytest fixture that points the system-under-test's HTTP client at the mock URL through the app factory. Emits mock wiring only; the business TDD cycle stays with the software-engineer lead.
---

# Mocking — Microcks x Python adapter (default)

Mocks a downstream dependency the SUT calls with a Microcks container seeded from that
dependency's OpenAPI/examples contract, and wires it into a pytest integration test.

Loaded ONLY when `mocking-strategy-roster` resolved `(microcks, Python)`.

**Boundary:** mock wiring + an integration-test scaffold. No RED->GREEN, no Object
Calisthenics, no provider contract verification (that is `contract-testing-python`). The
`software-engineer` lead integrates this into its own TDD loop.

## Dev dependencies

```
microcks-testcontainers @ git+https://github.com/Caesarsage/microcks-testcontainers-python@b61580e9b8dd18be6ea98d3a24ad6248971656dd
testcontainers>=4.14
```

`microcks-testcontainers` is an unofficial binding, not on PyPI: pin it to this commit, never
to a branch. It mirrors the official Java/.NET API (`with_main_artifacts`,
`get_rest_mock_endpoint`, `verify`).

## Recipe — mock the downstream + wire the app

```python
# tests/integration/conftest.py
import pytest
from fastapi.testclient import TestClient
from microcks_testcontainers import MicrocksContainer

from {context}.api.app import create_app
from {context}.api.composition import build

MICROCKS_IMAGE = "quay.io/microcks/microcks-uber:1.14.0-native"


@pytest.fixture(scope="session")
def microcks():
    # Seed mocks from the DOWNSTREAM dependency's contract (not our API).
    with MicrocksContainer(MICROCKS_IMAGE).with_main_artifacts(["resources/third-parties/{downstream-api}-openapi.yaml"]) as container:
        yield container


@pytest.fixture
def client(microcks):
    # Point the SUT's downstream client at the Microcks mock endpoint.
    downstream = microcks.get_rest_mock_endpoint("{Downstream+API+Name}", "1.0.0")
    return TestClient(create_app(build(downstream_base_url=downstream)))
```

The service name is the contract's `info.title` with spaces encoded (`API+Pastries`); the
binding does not encode it. The app factory takes its wiring as an argument
(`clean-architecture-python`); never patch a module to swap the URL. To assert the mock was
hit, use `microcks.verify("{Downstream API Name}", "1.0.0")` or
`get_service_invocations_count(...)`.

## Structured result back to the lead

Return, do not commit:

```yaml
strategy: microcks
stack: python
files:
  - tests/integration/conftest.py
testCommand: <resolved via resolving-stack-commands>   # e.g. {python} -m pytest
notes: MicrocksContainer seeded from {downstream-api} contract ; SUT base URL -> get_rest_mock_endpoint
```

## Rules

- Mock the DOWNSTREAM dependency, never the SUT itself.
- Seed with `MicrocksContainer(...).with_main_artifacts([...])`; reach the mock with `get_rest_mock_endpoint(name, version)`.
- `verify` / `get_service_invocations_count` only ASSERT the mock was used; they are not provider contract verification.
- Inject the mock URL through the app factory's wiring, never with `monkeypatch` on a module.
- Use `resolving-stack-commands` for the test command — never hardcode `pytest`.

Versions

The database has no other skills named mocking-microcks-python.

Database snapshot: 13.11.2026 · package version 640471c7908a (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100mocking-microcks-dotnet
    Use when the mocking-strategy-roster resolved (microcks, .NET) — the default mocking strategy for a .NET integration test. Provides the concrete Microcks Testcontainers wiring and the WebApplicationFactory scaffold that points the system-under-test's typed HttpClient at the mock…
  • 100mocking-microcks-typescript
    Use when the mocking-strategy-roster resolved (microcks, TypeScript) — the default mocking strategy that serves a downstream HTTP API from its OpenAPI contract in a Microcks container (@microcks/microcks-testcontainers) for a Vitest gateway integration test. Emits mock wiring…
  • 100python-testing
    Python testing with pytest, coverage, fixtures, and mocking. Use when the user mentions pytest, unit tests, coverage, fixtures, mocking, or writing Python tests.
  • 100pytest
    pytest Python testing framework. Covers fixtures, parametrize, and mocking. Use for Python testing. USE WHEN: user mentions "pytest", "python test", "fixture", asks about "@pytest.fixture", "@pytest.mark.parametrize", "conftest.py", "pytest coverage", "python unit test" DO NOT…
  • 100python-testing-patterns
    Guide pytest patterns and testing strategies when the user asks about Python testing, fixtures, mocking, or test organization
  • 90python-testing-patterns
    Comprehensive pytest patterns for Python 3.14 / FastAPI — fixtures, parametrize, mocking, async testing, database fixtures, test markers, coverage config, and CI integration. Use when writing or structuring Python test suites beyond the basic TDD cycle.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.