From e7a4fd6903f0b2ad475ff1704bc67b31601b6c50 Mon Sep 17 00:00:00 2001 From: bahtya Date: Thu, 9 Apr 2026 01:08:52 +0800 Subject: [PATCH 1/2] fix(tests): split pytest.raises blocks to eliminate dead code pytest.raises exits after the first exception, so multiple statements in a single block are dead code. Split each multi-statement pytest.raises block into separate blocks so all error cases are actually tested. Also remove the dead detect_media_type_from_base64(data_str="") call which does not raise (base64.b64decode("") is valid). Fixes #5115 Signed-off-by: bahtya --- python/packages/core/tests/core/test_types.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python/packages/core/tests/core/test_types.py b/python/packages/core/tests/core/test_types.py index cf945dae0e..3b45dfa14a 100644 --- a/python/packages/core/tests/core/test_types.py +++ b/python/packages/core/tests/core/test_types.py @@ -194,15 +194,18 @@ def test_data_content_detect_image_format_from_base64(): # Test error handling with pytest.raises(ValueError, match="Invalid base64 data provided."): detect_media_type_from_base64(data_str="invalid_base64!") - detect_media_type_from_base64(data_str="") with pytest.raises(ValueError, match="Provide exactly one of data_bytes, data_str, or data_uri."): detect_media_type_from_base64() + with pytest.raises(ValueError, match="Provide exactly one of data_bytes, data_str, or data_uri."): detect_media_type_from_base64( data_bytes=b"data", data_str="data", data_uri="data:application/octet-stream;base64,AAA" ) + with pytest.raises(ValueError, match="Provide exactly one of data_bytes, data_str, or data_uri."): detect_media_type_from_base64(data_bytes=b"data", data_str="data") + with pytest.raises(ValueError, match="Provide exactly one of data_bytes, data_str, or data_uri."): detect_media_type_from_base64(data_bytes=b"data", data_uri="data:application/octet-stream;base64,AAA") + with pytest.raises(ValueError, match="Provide exactly one of data_bytes, data_str, or data_uri."): detect_media_type_from_base64(data_str="data", data_uri="data:application/octet-stream;base64,AAA") From c35571c29cfea55a6998ce9b571d1e71775b2f25 Mon Sep 17 00:00:00 2001 From: bahtya Date: Mon, 13 Apr 2026 20:18:10 +0800 Subject: [PATCH 2/2] fix: handle empty string in detect_media_type_from_base64 and restore test - Add empty string check before base64.b64decode() to properly reject empty data_str input with ValueError - Restore the test case for empty string as its own pytest.raises block per maintainer feedback (thanks @Serjbory) --- python/packages/core/agent_framework/_types.py | 2 ++ python/packages/core/tests/core/test_types.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/python/packages/core/agent_framework/_types.py b/python/packages/core/agent_framework/_types.py index 87799d0848..9493ce7ba0 100644 --- a/python/packages/core/agent_framework/_types.py +++ b/python/packages/core/agent_framework/_types.py @@ -125,6 +125,8 @@ def detect_media_type_from_base64( if data_str is not None: if data is not None: raise ValueError("Provide exactly one of data_bytes, data_str, or data_uri.") + if not data_str: + raise ValueError("Invalid base64 data provided.") try: data = base64.b64decode(data_str) except Exception as exc: diff --git a/python/packages/core/tests/core/test_types.py b/python/packages/core/tests/core/test_types.py index 3b45dfa14a..e6db22177b 100644 --- a/python/packages/core/tests/core/test_types.py +++ b/python/packages/core/tests/core/test_types.py @@ -194,6 +194,8 @@ def test_data_content_detect_image_format_from_base64(): # Test error handling with pytest.raises(ValueError, match="Invalid base64 data provided."): detect_media_type_from_base64(data_str="invalid_base64!") + with pytest.raises(ValueError, match="Invalid base64 data provided."): + detect_media_type_from_base64(data_str="") with pytest.raises(ValueError, match="Provide exactly one of data_bytes, data_str, or data_uri."): detect_media_type_from_base64()