tests/_image_fixtures.py
Rama main · réplica de lectura del repositorio original.
"""Shared tiny image fixtures for tool-result replay tests.
Real Pillow-generated images, small enough to inline: used by both the
Claude-native transcript tests and the runtime tool-result-content tests.
"""
from typing import Any
# Genuinely decodable 1x1 images (generated and round-trip verified), so the
# replay tests exercise the exact payloads real MCP screenshot tools persist.
_TINY_PNG_BASE64 = (
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGNgYGBgAAAABQAB"
"pfZFQAAAAABJRU5ErkJggg=="
)
_TINY_JPEG_BASE64 = (
"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRof"
"Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwh"
"MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAAR"
"CAABAAEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA"
"AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK"
"FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG"
"h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl"
"5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA"
"AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk"
"NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE"
"hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk"
"5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDi6KKK+ZP3E//Z"
)
_TINY_PROGRESSIVE_JPEG_BASE64 = (
"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a"
"HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy"
"MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wgARCAAEAAQDASIA"
"AhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAEBv/aAAwD"
"AQACEAMQAAABjgVN/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQABBQJ//8QAFBEBAAAAAAAA"
"AAAAAAAAAAAAAP/aAAgBAwEBPwF//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPwF//8QA"
"FBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
"AQABPyF//9oADAMBAAIAAwAAABDz/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAwEBPxB//8QA"
"FBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPxB//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
"AQABPxB//9k="
)
_TINY_PROGRESSIVE_GRAY_JPEG_BASE64 = (
"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a"
"HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wgALCAAEAAQBAREA/8QAFAABAAAAAAAA"
"AAAAAAAAAAAAAP/aAAgBAQAAAAF//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQABBQJ//8QA"
"FBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
"AQABPyF//9oACAEBAAAAEH//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAE/EH//2Q=="
)
_TINY_CMYK_JPEG_BASE64 = (
"/9j/7gAOQWRvYmUAZAAAAAAA/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwc"
"ICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/8IAFAgABAAEBEMRAE0RAFkRAEsRAP/EABYA"
"AQEBAAAAAAAAAAAAAAAAAAYBB//aAA4EQwBNAFkASwAAAAF/M/f/AP/EABQQAQAAAAAAAAAAAAAA"
"AAAAAAD/2gAIAUMAAQUCf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAU0AAQUCf//EABQQAQAA"
"AAAAAAAAAAAAAAAAAAD/2gAIAVkAAQUCf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUsAAQUC"
"f//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUMABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/"
"2gAIAU0ABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAVkABj8Cf//EABQQAQAAAAAAAAAA"
"AAAAAAAAAAD/2gAIAUsABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUMAAT8hf//EABQQ"
"AQAAAAAAAAAAAAAAAAAAAAD/2gAIAU0AAT8hf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAVkA"
"AT8hf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAUsAAT8hf//aAA4EQwBNAFkASwAAABDf/8QA"
"FBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBQwABPxB//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB"
"TQABPxB//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBWQABPxB//8QAFBABAAAAAAAAAAAAAAAA"
"AAAAAP/aAAgBSwABPxB//9k="
)
_TINY_GIF_BASE64 = "R0lGODdhAQABAIAAAAAAAAAAACwAAAAAAQABAAAIBAABBAQAOw=="
_TINY_WEBP_BASE64 = (
"UklGRj4AAABXRUJQVlA4IDIAAADQAQCdASoBAAEAAUAmJaACdLoB+AADsAD+6SIf+8+fufP3"
"Pn/Rn/+U/fI4/kcf/KBAAA=="
)
def mcp_call_output(*content_blocks: Any, is_error: bool = False) -> str:
"""Format a real ``CallToolResult`` through the real ``_format_call_result``.
``is_error=True`` gives the failed spelling, which that formatter prefixes.
"""
from mcp.types import CallToolResult
from omnigent.tools.mcp import _format_call_result
return _format_call_result(CallToolResult(content=list(content_blocks), isError=is_error))