From test-suite
Run comprehensive Python quality checks in parallel (pytest, ruff, mypy, bandit, coverage)
npx claudepluginhub infiquetra/infiquetra-claude-plugins --plugin test-suiteThis skill uses the workspace's default tool permissions.
You are helping the user run comprehensive Python quality checks for their project.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
You are helping the user run comprehensive Python quality checks for their project.
The quality check suite runs 5 checks in parallel for maximum speed:
Parallel execution reduces total time by ~60% compared to sequential checks.
Execute all checks in parallel:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --all
Expected output:
Running Python quality checks in parallel...
[pytest] ━━━━━━━━━━━━━━━━━━━━━ 48/48 tests passed
[ruff] ━━━━━━━━━━━━━━━━━━━━━ 0 issues found
[mypy] ━━━━━━━━━━━━━━━━━━━━━ Type check passed
[bandit] ━━━━━━━━━━━━━━━━━━━━━ 0 security issues
[coverage] ━━━━━━━━━━━━━━━━━━━ 85% coverage
✓ All checks passed in 45s (4x faster than sequential)
Run unit and integration tests:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --pytest
Options:
--pytest-args="-v" - Verbose output--pytest-args="-k test_auth" - Run specific tests--pytest-args="--maxfail=1" - Stop after first failureCheck code style and common errors:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --ruff
Options:
--ruff-fix - Auto-fix issues where possible--ruff-args="--select E,F" - Select specific rule categoriesVerify type annotations:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --mypy
Options:
--mypy-args="--strict" - Strict type checking--mypy-args="--ignore-missing-imports" - Ignore missing type stubsScan for security vulnerabilities:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --bandit
Options:
--bandit-args="-ll" - Low and low confidence issues--bandit-args="--exclude tests/" - Exclude directoriesGenerate coverage report:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --coverage
Options:
--coverage-min=80 - Set minimum coverage threshold--coverage-html - Generate HTML coverage report[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_functions = "test_*"
addopts = "-v --strict-markers"
markers = [
"unit: Unit tests",
"integration: Integration tests",
"slow: Slow tests"
]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "N", "UP", "S", "B", "A", "C4", "SIM"]
ignore = ["E501"] # Line too long (handled by formatter)
[tool.mypy]
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
ignore_missing_imports = false
[tool.bandit]
exclude_dirs = ["tests", "scripts"]
skips = ["B101", "B601"] # Skip specific checks
[tool.coverage.run]
source = ["src"]
omit = ["*/tests/*", "*/scripts/*"]
[tool.coverage.report]
precision = 2
show_missing = true
fail_under = 80
Check:
# Run specific failing test with verbose output
pytest tests/test_auth.py::test_login -v
Solutions:
Check:
# See detailed error with context
ruff check . --show-source
Solutions:
ruff check . --fix# noqa: E501 to ignore specific line (use sparingly)Check:
# Show detailed type error messages
mypy --show-error-codes --pretty
Solutions:
from typing import List, Dict, Optional# type: ignore for third-party library issuesCheck:
# See detailed security issue descriptions
bandit -r src/ -f txt
Solutions:
# nosec comment for false positives (with justification)Check:
# Generate HTML report to see uncovered lines
coverage html
open htmlcov/index.html
Solutions:
name: Quality Checks
on: [push, pull_request]
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run quality checks
run: |
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --all
For Infiquetra projects, aim for:
After running checks: