CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

python-testing

Python testing strategies using pytest, TDD methodology, fixtures, mocking, parametrization, and coverage requirements. Use when writing pytest tests — fixtures, mocks, parametrization, or coverage.

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/python-testing/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

52%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable — comprehensive, mostly executable pytest recipes for every major testing topic — but it is an inlined beginner-to-advanced tutorial that re-teaches pytest fundamentals Claude already knows and buries the few genuinely valuable details (e.g., the LifespanManager guidance) in the noise. Its two structural problems are token waste and the complete absence of progressive disclosure: no reference files exist to split the deep-dive material into.

Suggestions

Cut the sections documenting pytest basics Claude already knows (Basic Test Structure, the Assertions catalog, pytest Fundamentals, and the run-flags portion of Running Tests); retain only non-obvious guidance such as the ASGITransport/LifespanManager note and project-specific coverage/marker conventions.

Split the deep-dive material into referenced files — e.g., references/mocking.md, references/async-testing.md, references/frameworks.md for the Flask/FastAPI patterns — and keep SKILL.md as a short overview with clearly signaled one-level-deep links.

Consolidate redundant examples (tmp_path vs tmpdir, three separate parametrized-fixture demos, near-duplicate Flask client fixtures) into one representative example each, and fix the small import gaps (mock_open, os) so every snippet is copy-paste runnable.

DimensionReasoningScore

Conciseness

An ~825-line body spends most of its budget on pytest fundamentals Claude already knows — a "Basic Test Structure" section asserting `2 + 2 == 4`, an "Assertions" catalog (`assert result == expected`, `assert result is None`), and running-tests basics (`pytest -v`, `pytest -x`) — with only the ASGITransport/LifespanManager note adding genuinely non-obvious knowledge. This is 'noticeably verbose; several unnecessary explanations or padded sections', bordering on the severely-verbose score-1 anchor; the terse code-block style (rather than padded prose) keeps it at 2.

2 / 5

Actionability

Nearly every section provides copy-paste-ready executable code and commands covering the common cases (fixtures with setup/teardown, parametrize with ids, patch with side_effect, pytest --cov). It falls short of 'fully executable' only through small gaps: `new_callable=mock_open` is used without importing `mock_open`, and the `temp_file` fixture calls `os.remove` without importing `os` — matching 'mostly executable guidance; minor gaps'.

4 / 5

Workflow Clarity

The TDD cycle is a clearly numbered sequence (RED: write failing test, GREEN: minimal implementation, REFACTOR) and the Running Tests section supplies concrete verification commands, so the sequence and its validation tooling are explicit. It is not 5 because the validate-then-proceed checkpoint (confirm the new test actually fails before implementing) is only implicit, and no fix-and-retry feedback loop is spelled out — 'clear sequence with most checkpoints present; minor validation gaps'.

4 / 5

Progressive Disclosure

There are no bundle files at all: the entire ~800-line cookbook — including deep dives on mocking recipes, async testing, and Flask/FastAPI-specific patterns — is inlined in SKILL.md with zero references to offload content, matching 'content that clearly belongs in separate files is inlined'. Good section headers and a Quick Reference table keep it above the structureless score-1 anchor, but the total absence of any file split or referenced path keeps it below score 3.

2 / 5

Total

12

/

20

Passed

Description

88%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: it states concrete capabilities in third person, explicitly separates what from when, and includes natural pytest-specific triggers. Its only weakness is trigger breadth — 'unit tests', 'test suite', and 'TDD' as user-spoken phrases are missing — which slightly limits both keyword coverage and distinctiveness.

DimensionReasoningScore

Specificity

"pytest, TDD methodology, fixtures, mocking, parametrization, and coverage requirements" enumerates multiple concrete capabilities that comprehensively cover the Python-testing domain, matching the score-5 anchor rather than the 'minor gaps' of score 4.

5 / 5

Completeness

The first sentence answers 'what' concretely and "Use when writing pytest tests — fixtures, mocks, parametrization, or coverage" answers 'when' with explicit concrete trigger phrases, matching the score-5 anchor; the when-clause is specific, so the 'could be more explicit' score-4 anchor does not fit.

5 / 5

Trigger Term Quality

"Use when writing pytest tests — fixtures, mocks, parametrization, or coverage" supplies natural trigger phrases, but common variations users would say such as "unit tests", "test suite", or "TDD" are absent, fitting 'good keyword coverage; a few natural terms missing' rather than the comprehensive score-5 anchor.

4 / 5

Distinctiveness Conflict Risk

"Python testing" + "pytest" carves a clear niche, but broad trigger words like "coverage" and "mocking" create minor overlap risk with general testing, TDD, or mocking skills, matching 'mostly distinct; minor overlap risk' rather than the minimal-conflict score-5 anchor.

4 / 5

Total

18

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (826 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

Total

14

/

16

Passed

Repository

affaan-m/ECC

Path

skills/python-testing/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.