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.
- Author
- sebastiendegodez ↗
- Repository
- skraft-plugin ↗
- Licence
- GPL-3.0
- Last repository change
- 11.10.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 1
No signals detected. Repository changed on 11.10.2026, without references to retired models or APIs.
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
- Dev dependencies
- Recipe — mock the downstream + wire the app
- Structured result back to the lead
- Rules
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.