From d5206f7b8715fdb84696e517ef2862f7295d264c Mon Sep 17 00:00:00 2001 From: David Ahmann Date: Fri, 20 Feb 2026 08:08:17 -0500 Subject: [PATCH] tests: lock collision-safe event ids in A2A converter coverage (#4567) --- .../a2a/converters/test_event_converter.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/unittests/a2a/converters/test_event_converter.py b/tests/unittests/a2a/converters/test_event_converter.py index 47f0bbf435..a7fffaa189 100644 --- a/tests/unittests/a2a/converters/test_event_converter.py +++ b/tests/unittests/a2a/converters/test_event_converter.py @@ -14,6 +14,7 @@ from unittest.mock import Mock from unittest.mock import patch +import uuid from a2a.types import DataPart from a2a.types import Message @@ -177,6 +178,20 @@ def test_get_context_metadata_none_context(self): _get_context_metadata(self.mock_event, None) assert "Invocation context cannot be None" in str(exc_info.value) + def test_event_new_id_uses_uuid4(self): + """Event IDs must be collision-safe random UUID4 values.""" + event_id = Event.new_id() + parsed = uuid.UUID(event_id) + + assert parsed.version == 4 + + def test_event_ids_are_unique_for_same_author(self): + """Events from the same author should not reuse normalized-name IDs.""" + events = [Event(author="same_author") for _ in range(64)] + ids = {event.id for event in events} + + assert len(ids) == len(events) + def test_create_artifact_id(self): """Test artifact ID creation.""" app_name = "test-app"