Files
pi_mcps/mcp/mcp-image-gen/tests/conftest.py
T
Patrick Plate 8112ff2f12 feat(mcp-image-gen): scaffold ComfyUI-backed image generation MCP server
- FastMCP server with 4 tools: generate_image, list_available_models,
  get_generation_status, get_output_directory
- ComfyUI REST API client (httpx) polling lifecycle
- FLUX.1-schnell workflow JSON template
- Dual output: TextContent (path + seed) + ImageContent (base64 PNG)
- 14 passing pytest tests with respx HTTP mocking
- ROCm/AMD RX 7900 XTX optimized setup in README
- Ollama Linux migration path documented (future)
2026-04-04 11:49:31 +02:00

77 lines
1.9 KiB
Python

"""Pytest fixtures for mcp-image-gen tests."""
import base64
import io
import sys
from pathlib import Path
import pytest
# Make src/ importable
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
@pytest.fixture(autouse=True)
def comfyui_url(monkeypatch):
"""Set COMFYUI_URL to a test URL for all tests."""
monkeypatch.setenv("COMFYUI_URL", "http://test-comfyui:8188")
# Also patch the module-level constant in server
import server
monkeypatch.setattr(server, "COMFYUI_URL", "http://test-comfyui:8188")
@pytest.fixture
def sample_image_bytes():
"""Generate a 1x1 red pixel PNG as bytes using Pillow."""
from PIL import Image
img = Image.new("RGB", (1, 1), color=(255, 0, 0))
buf = io.BytesIO()
img.save(buf, format="PNG")
return buf.getvalue()
@pytest.fixture
def mock_history_response():
"""Sample ComfyUI history response for prompt_id='test-uuid-1234'."""
return {
"test-uuid-1234": {
"outputs": {
"9": {
"images": [
{
"filename": "mcp-image-gen_00001_.png",
"subfolder": "",
"type": "output",
}
]
}
},
"status": {"completed": True},
}
}
@pytest.fixture
def queue_empty():
"""ComfyUI queue response with nothing running or pending."""
return {"queue_running": [], "queue_pending": []}
@pytest.fixture
def queue_with_pending():
"""ComfyUI queue response with our test prompt pending."""
return {
"queue_running": [],
"queue_pending": [[1, "test-uuid-1234", {}, {}]],
}
@pytest.fixture
def queue_with_running():
"""ComfyUI queue response with our test prompt running."""
return {
"queue_running": [[1, "test-uuid-1234", {}, {}]],
"queue_pending": [],
}