Elysia Tools Docs
ES
Idioma
ZHESPTRUFRDEEN
Volver al sitio
Explorar herramientas

Development

Detector de grafo de dependencias de fixtures pytest y fugas de mock.patch

Analiza estáticamente una cadena de conftest.py: renderiza el grafo de dependencias de fixtures con sus cinco ámbitos (function/class/module/package/session), detecta overrides de conftests más profundos y marca fugas de estado entre tests: mock.patch().start() sin .stop(), monkeypatch en fixtures de ámbito amplio (su deshacer a nivel función nunca se ejecuta) y with mock.patch mantenido abierto a través de yield.

html· Resultado HTMLAbrir herramienta

Inicio rápido

Llama a esta herramienta desde tu código en tres lenguajes.

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/es/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. Documentación para desarrolladores.

Volver al sitioExplorar herramientas

Referencia de la API

Envía una petición POST con tus entradas en JSON. Los parámetros de tipo archivo requieren una subida previa.

Endpoint

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

Parámetros

NombreTipoObligatorioDescripción
sourceInputtextareaSí—
pythonFilefilesubida requeridaNo—
includeBuiltinGraphcheckboxNo—
Los parámetros de tipo archivo deben subirse primero mediante POST /upload/pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector; el filePath devuelto se pasa luego al campo correspondiente.

Formato de respuesta

Resultado HTML

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

Integración MCP

Añade esta herramienta a tu servidor Model Context Protocol para que los agentes de IA puedan listarla y llamarla.

Configuración del servidor

Añade este bloque a la configuración de tu cliente 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": "Analiza estáticamente una cadena de conftest.py: renderiza el grafo de dependencias de fixtures con sus cinco ámbitos (function/class/module/package/session), detecta overrides de conftests más profundos y marca fugas de estado entre tests: mock.patch().start() sin .stop(), monkeypatch en fixtures de ámbito amplio (su deshacer a nivel función nunca se ejecuta) y with mock.patch mantenido abierto a través de 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"
    }
  }
}

Listar herramientas disponibles

Tras conectar al endpoint SSE, lista las herramientas expuestas:

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

Llamar a esta herramienta

Invoca la herramienta por su id; los argumentos se construyen a partir de sus parámetros:

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
}
  }
}
Encadena varias herramientas en una sesión con una lista toolId separada por comas, p. ej. /mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp (máx. 20).
Los parámetros de archivo aceptan únicamente una URL de archivo pública (https://…). No se admiten rutas locales, data: URI ni cadenas Base64.

¿Dudas o problemas? Contacta con [email protected]

Explorar herramientas
Abrir herramienta