Elysia Tools Docs
FR
Langue
ZHESPTRUFRDEEN
Retour au site
Parcourir les outils

Development

Détecteur de graphe de dépendances de fixtures pytest et de fuites mock.patch

Analyse statiquement une chaîne de conftest.py : construit le graphe de dépendances des fixtures selon les cinq portées (function/class/module/package/session), détecte les overrides des conftest plus profonds et signale les fuites d'état entre tests : mock.patch().start() sans .stop(), monkeypatch dans une fixture à portée large (son annulation au niveau fonction ne s'exécute jamais) et with mock.patch maintenu ouvert au travers d'un yield.

html· Résultat HTMLOuvrir l'outil

Démarrage rapide

Appelez cet outil depuis votre code en trois langages.

cURL
# 1) Request a presigned URL → returns { uploadUrl, storageKey }
curl -X POST 'https://api.elysiatools.com/api/upload/presign/pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector' \
  -H 'Content-Type: application/json' \
  -d '{"filename":"pythonFile.ext","contentType":"application/octet-stream","size":12345}'

# 2) PUT the file bytes directly to the presigned uploadUrl
curl -X PUT '<presigned uploadUrl>' \
  --data-binary @/path/to/file.ext

# 3) Call the tool, passing the returned storageKey for each file field
curl -X POST 'https://api.elysiatools.com/fr/api/tools/pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector' \
  -F 'sourceInput=# --- file: conftest.py ---
import pytest
from unittest import mock

@pytest.fixture(scope="session")
def db_engine():
    engine = {"url": "sqlite://"}
    yield engine
    engine.clear()

@pytest.fixture(scope="session")
def patched_auth():
    patcher = mock.patch("auth.verify_token", return_value=True)
    patcher.start()
    return None

@pytest.fixture
def api_client(db_engine, patched_auth):
    return {"db": db_engine}

# --- file: tests/unit/conftest.py ---
import pytest

@pytest.fixture(scope="module")
def fake_auth(monkeypatch):
    monkeypatch.setattr("auth.verify_token", lambda t: True)
    return True

@pytest.fixture
def api_client(fake_auth):
    return {"override": True}' \
  -F 'pythonFile=uploads/2026/01/01/your-tool-1700000000000-abc123.ext' \
  -F 'includeBuiltinGraph=true'

© 2026 Elysia Tools. Documentation développeur.

Retour au siteParcourir les outils

Référence de l'API

Envoyez une requête POST avec vos entrées en JSON. Les paramètres de type fichier nécessitent un upload préalable.

Point d'accès

HTTP
POST https://api.elysiatools.com/fr/api/tools/pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector

Paramètres

NomTypeRequisDescription
sourceInputtextareaOui—
pythonFilefileupload requisNon—
includeBuiltinGraphcheckboxNon—
Les paramètres de type fichier doivent d'abord être uploadés via POST /upload/pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector ; le filePath renvoyé est ensuite transmis au champ correspondant.

Format de réponse

Résultat HTML

JSON
{
  "result": "<div>Processed HTML content</div>",
  "error": "Error message (optional)",
  "message": "Notification message (optional)",
  "metadata": {
    "key": "value"
  }
}

Intégration MCP

Ajoutez cet outil à votre serveur Model Context Protocol pour que les agents IA puissent le lister et l'appeler.

Configuration du serveur

Ajoutez ce bloc à la configuration de votre client MCP :

mcp.json
{
  "mcpServers": {
    "elysiatools-pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector": {
      "name": "pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector",
      "description": "Analyse statiquement une chaîne de conftest.py : construit le graphe de dépendances des fixtures selon les cinq portées (function/class/module/package/session), détecte les overrides des conftest plus profonds et signale les fuites d'état entre tests : mock.patch().start() sans .stop(), monkeypatch dans une fixture à portée large (son annulation au niveau fonction ne s'exécute jamais) et with mock.patch maintenu ouvert au travers d'un yield.",
      "baseUrl": "https://api.elysiatools.com/mcp/sse?toolId=pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Lister les outils disponibles

Après connexion au point d'accès SSE, listez les outils exposés :

tools/list
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}

Appeler cet outil

Appelez l'outil par son id ; les arguments sont construits à partir de ses paramètres :

tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector",
    "arguments": {
  "sourceInput": "# --- file: conftest.py ---\nimport pytest\nfrom unittest import mock\n\[email protected](scope=\"session\")\ndef db_engine():\n    engine = {\"url\": \"sqlite://\"}\n    yield engine\n    engine.clear()\n\[email protected](scope=\"session\")\ndef patched_auth():\n    patcher = mock.patch(\"auth.verify_token\", return_value=True)\n    patcher.start()\n    return None\n\[email protected]\ndef api_client(db_engine, patched_auth):\n    return {\"db\": db_engine}\n\n# --- file: tests/unit/conftest.py ---\nimport pytest\n\[email protected](scope=\"module\")\ndef fake_auth(monkeypatch):\n    monkeypatch.setattr(\"auth.verify_token\", lambda t: True)\n    return True\n\[email protected]\ndef api_client(fake_auth):\n    return {\"override\": True}",
  "pythonFile": "https://example.com/file.ext",
  "includeBuiltinGraph": true
}
  }
}
Chaînez plusieurs outils dans une session avec une liste toolId séparée par des virgules, ex. /mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp (20 max).
Les paramètres fichier acceptent uniquement une URL de fichier publique (https://…). Les chemins locaux, les data: URI et les chaînes Base64 ne sont pas pris en charge.

Des questions ou un problème ? Contactez [email protected]

Parcourir les outils
Ouvrir l'outil