From f823916043f3df46b0a6c327c8ea849972c398b0 Mon Sep 17 00:00:00 2001 From: Shibayan003 <143069295+Shibayan003@users.noreply.github.com> Date: Tue, 15 Jul 2025 19:50:55 +0800 Subject: [PATCH 1/2] test: Add failing test for BaseCallbackManager.merge bug #32028 --- .../callbacks/test_sync_callback_manager.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py b/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py index d8b3aab6001..3a08516c092 100644 --- a/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py +++ b/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py @@ -13,3 +13,24 @@ def test_remove_handler() -> None: manager = BaseCallbackManager([handler1], inheritable_handlers=[handler2]) manager.remove_handler(handler1) manager.remove_handler(handler2) + + +def test_merge_preserves_handler_distinction() -> None: + """Test that merging managers preserves the distinction between handlers. + + This test verifies the correct behavior of the BaseCallbackManager.merge() + method. When two managers are merged, their handlers and + inheritable_handlers should be combined independently. + """ + h1 = BaseCallbackHandler() + h2 = BaseCallbackHandler() + ih1 = BaseCallbackHandler() + ih2 = BaseCallbackHandler() + + m1 = BaseCallbackManager(handlers=[h1], inheritable_handlers=[ih1]) + m2 = BaseCallbackManager(handlers=[h2], inheritable_handlers=[ih2]) + + merged = m1.merge(m2) + + assert set(merged.handlers) == {h1, h2} + assert set(merged.inheritable_handlers) == {ih1, ih2} From 86867797b38905a2b165fac84fdd412ab60ab698 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Tue, 15 Jul 2025 10:35:54 -0400 Subject: [PATCH 2/2] lint --- .../tests/unit_tests/callbacks/test_sync_callback_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py b/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py index 3a08516c092..44076c8460a 100644 --- a/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py +++ b/libs/core/tests/unit_tests/callbacks/test_sync_callback_manager.py @@ -18,8 +18,8 @@ def test_remove_handler() -> None: def test_merge_preserves_handler_distinction() -> None: """Test that merging managers preserves the distinction between handlers. - This test verifies the correct behavior of the BaseCallbackManager.merge() - method. When two managers are merged, their handlers and + This test verifies the correct behavior of the BaseCallbackManager.merge() + method. When two managers are merged, their handlers and inheritable_handlers should be combined independently. """ h1 = BaseCallbackHandler()