Elysia Tools Docs
PT
Idioma
ZHESPTRUFRDEEN
Voltar ao site
Explorar ferramentas

Development

Detector de grafo de dependências de fixtures pytest e vazamentos de mock.patch

Analisa estaticamente uma cadeia de conftest.py: renderiza o grafo de dependências de fixtures nos cinco escopos (function/class/module/package/session), detecta overrides de conftests mais profundos e marca vazamentos de estado entre testes: mock.patch().start() sem .stop(), monkeypatch em fixtures de escopo amplo (o desfazer em nível de função nunca executa) e with mock.patch aberto através de yield.

html· Resultado HTMLAbrir ferramenta

Início rápido

Chame esta ferramenta a partir do seu código em três idiomas.

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/pt/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. Documentação para desenvolvedores.

Voltar ao siteExplorar ferramentas

Referência da API

Envie uma requisição POST com suas entradas em JSON. Parâmetros do tipo arquivo exigem upload prévio.

Endpoint

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

Parâmetros

NomeTipoObrigatórioDescrição
sourceInputtextareaSim—
pythonFilefileupload necessárioNão—
includeBuiltinGraphcheckboxNão—
Parâmetros do tipo arquivo devem ser enviados primeiro via POST /upload/pytest-conftest-fixture-dependency-graph-and-mock-patch-leak-detector; o filePath retornado é então passado ao campo correspondente.

Formato de resposta

Resultado HTML

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

Integração MCP

Adicione esta ferramenta ao seu servidor Model Context Protocol para que agentes de IA possam listá-la e chamá-la.

Configuração do servidor

Adicione este bloco à configuração do seu 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": "Analisa estaticamente uma cadeia de conftest.py: renderiza o grafo de dependências de fixtures nos cinco escopos (function/class/module/package/session), detecta overrides de conftests mais profundos e marca vazamentos de estado entre testes: mock.patch().start() sem .stop(), monkeypatch em fixtures de escopo amplo (o desfazer em nível de função nunca executa) e with mock.patch aberto atravé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 ferramentas disponíveis

Após conectar ao endpoint SSE, liste as ferramentas expostas:

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

Chamar esta ferramenta

Invoque a ferramenta pelo seu id; os argumentos são construídos a partir de seus 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
}
  }
}
Encadeie várias ferramentas em uma sessão com uma lista toolId separada por vírgulas, p. ex. /mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp (máx. 20).
Parâmetros de arquivo aceitam somente uma URL de arquivo pública (https://…). Caminhos locais, data: URI e strings Base64 não são suportados.

Dúvidas ou problemas? Contate [email protected]

Explorar ferramentas
Abrir ferramenta