from typing import List import pytest from autogen_agentchat.utils import remove_images from autogen_core import Image from autogen_core.models import AssistantMessage, LLMMessage, SystemMessage, UserMessage @pytest.mark.asyncio async def test_remove_images() -> None: img_base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4//8/AAX+Av4N70a4AAAAAElFTkSuQmCC" messages: List[LLMMessage] = [ SystemMessage(content="System.1"), UserMessage(content=["User.1", Image.from_base64(img_base64)], source="user.1"), AssistantMessage(content="Assistant.1", source="assistant.1"), UserMessage(content="User.2", source="assistant.2"), ] result = remove_images(messages) # Check all the invariants assert len(result) == 4 assert isinstance(result[0], SystemMessage) assert isinstance(result[1], UserMessage) assert isinstance(result[2], AssistantMessage) assert isinstance(result[3], UserMessage) assert result[0].content == messages[0].content assert result[2].content == messages[2].content assert result[3].content == messages[3].content assert isinstance(messages[2], AssistantMessage) assert isinstance(messages[3], UserMessage) assert result[2].source == messages[2].source assert result[3].source == messages[3].source # Check that the image was removed. assert result[1].content == "User.1\n"