name: fai-pytest-coverage description: "Generate Python pytest test suites with fixtures, parametrization, mocking (pytest-mock), and coverage reports." waf: ["Reliability", "Operational Excellence"] plays: ["32-test-generation", "24-code-assistant"]
Fai Pytest Coverage
Generates pytest test suites with fixtures, parametrize, mocks, and coverage configuration.
Overview
This skill provides a structured, repeatable procedure for generates pytest test suites with fixtures, parametrize, mocks, and coverage configuration.. It can be used standalone as a LEGO block or auto-wired inside solution plays via the FAI Protocol.
Category: Testing Complexity: Medium Estimated Time: 10-30 minutes
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
target |
string | Yes | — | Target resource, file, or endpoint |
environment |
enum | No | dev |
Target environment: dev, staging, prod |
verbose |
boolean | No | false |
Enable detailed output logging |
dry_run |
boolean | No | false |
Validate without making changes |
config_path |
string | No | config/ |
Path to configuration directory |
Steps
Step 1: Validate Prerequisites
Verify all required tools, credentials, and dependencies are available.
# Check required tools
command -v node >/dev/null 2>&1 || { echo 'Node.js required'; exit 1; }
command -v az >/dev/null 2>&1 || { echo 'Azure CLI required'; exit 1; }
Step 2: Load Configuration
Read settings from the FAI manifest and TuneKit config files.
# Load from fai-manifest.json if inside a play
CONFIG_DIR="${config_path:-config}"
if [ -f "fai-manifest.json" ]; then
echo "FAI Protocol detected — auto-wiring context"
fi
Step 3: Execute Core Logic
Perform the primary operation: generates pytest test suites with fixtures, parametrize, mocks, and coverage configuration..
Step 4: Validate Results
Verify the output meets quality thresholds and WAF compliance.
# Validate output
if [ "$?" -eq 0 ]; then
echo "✅ Skill completed successfully"
else
echo "❌ Skill failed — check logs"
exit 1
fi
Output
| Output | Type | Description |
|---|---|---|
status |
enum | success, warning, failure |
duration_ms |
number | Execution time in milliseconds |
artifacts |
string[] | List of generated/modified files |
logs |
string | Detailed execution log |
WAF Alignment
| Pillar | How This Skill Contributes |
|---|---|
| reliability | Includes retry logic, validates outputs, provides rollback steps |
| operational-excellence | Produces structured logs, integrates with CI/CD, follows IaC patterns |
Compatible Solution Plays
- Play 32
Error Handling
| Exit Code | Meaning | Action |
|---|---|---|
| 0 | Success | Proceed to next step |
| 1 | Validation failure | Check input parameters |
| 2 | Dependency missing | Install required tools |
| 3 | Runtime error | Check logs, retry with --verbose |
Usage
Standalone
# Run this skill directly
npx frootai skill run fai-pytest-coverage
Inside a Solution Play
When referenced in fai-manifest.json, this skill auto-wires with the play's context:
{
"primitives": {
"skills": ["skills/fai-pytest-coverage/"]
}
}
Via Agent Invocation
Agents can invoke this skill using the /skill command in Copilot Chat.
RAG Pipeline Reference
| Stage | Tool | Config |
|---|---|---|
| Chunking | Semantic chunker | 512 tokens, 10% overlap |
| Embedding | text-embedding-3-large | 3072 dimensions |
| Indexing | Azure AI Search | Hybrid (vector + BM25) |
| Retrieval | Hybrid search | 60% semantic, 40% keyword |
| Reranking | Semantic reranker | Top 5 after rerank |
| Generation | GPT-4o | temp=0.1, top_p=0.9 |
Chunking Strategy
from azure.ai.formrecognizer import DocumentAnalysisClient
# Semantic chunking preserves paragraph boundaries
chunks = semantic_chunk(
text=document,
max_tokens=512,
overlap_tokens=50,
respect_boundaries=True # Don't split mid-sentence
)
Search Configuration
{
"search_type": "hybrid",
"semantic_weight": 0.6,
"keyword_weight": 0.4,
"top_k": 5,
"min_score": 0.78,
"reranker": "semantic",
"filter": "category eq 'technical'"
}
Notes
- This skill follows the FAI SKILL.md specification
- All outputs are deterministic when
dry_run=true - Integrates with FAI Engine for automated pipeline execution
- Part of the Testing category in the FAI primitives catalog
Source: frootai/frootai — distributed by TomeVault.