@@ -60,6 +60,9 @@ def test_dispatcher_initialization(self, mock_thread, mock_queue):
6060 @patch ("proxy_worker.dispatcher.is_system_log_category" )
6161 def test_on_logging_levels_and_categories (self , mock_is_system , mock_rpc_log ,
6262 mock_streaming_message ):
63+ # Import module to access cached constants
64+ import proxy_worker .dispatcher as dispatcher_module
65+
6366 loop = Mock ()
6467 dispatcher = Dispatcher (loop , "localhost" , 5000 , "worker" ,
6568 "req" , 5.0 )
@@ -68,23 +71,33 @@ def test_on_logging_levels_and_categories(self, mock_is_system, mock_rpc_log,
6871 mock_streaming_message .return_value = Mock ()
6972
7073 levels = [
71- (logging .CRITICAL , mock_rpc_log . Critical ),
72- (logging .ERROR , mock_rpc_log . Error ),
73- (logging .WARNING , mock_rpc_log . Warning ),
74- (logging .INFO , mock_rpc_log . Information ),
75- (logging .DEBUG , mock_rpc_log . Debug ),
76- (5 , getattr ( mock_rpc_log , 'None' ) ),
74+ (logging .CRITICAL , dispatcher_module . _LOG_LEVEL_CRITICAL ),
75+ (logging .ERROR , dispatcher_module . _LOG_LEVEL_ERROR ),
76+ (logging .WARNING , dispatcher_module . _LOG_LEVEL_WARNING ),
77+ (logging .INFO , dispatcher_module . _LOG_LEVEL_INFO ),
78+ (logging .DEBUG , dispatcher_module . _LOG_LEVEL_DEBUG ),
79+ (5 , dispatcher_module . _LOG_LEVEL_NONE ),
7780 ]
7881
7982 for level , expected in levels :
80- record = Mock (levelno = level , name = "custom.logger" )
83+ record = Mock (levelno = level )
84+ record .name = "custom.logger"
8185 mock_is_system .return_value = level % 2 == 0 # alternate True/False
8286 dispatcher .on_logging (record , "Test message" )
8387
88+ # Determine expected category from cached constants
8489 if mock_is_system .return_value :
85- mock_rpc_log . RpcLogCategory . Value . assert_called_with ( "System" )
90+ expected_category = dispatcher_module . _LOG_CATEGORY_SYSTEM
8691 else :
87- mock_rpc_log .RpcLogCategory .Value .assert_called_with ("User" )
92+ expected_category = dispatcher_module ._LOG_CATEGORY_USER
93+
94+ # Verify RpcLog was initialized with correct mapped values
95+ # We use call_args to verify kwargs, ignoring any extra kwargs like invocation_id if present
96+ args , kwargs = mock_rpc_log .call_args
97+ self .assertEqual (kwargs ['level' ], expected )
98+ self .assertEqual (kwargs ['log_category' ], expected_category )
99+ self .assertEqual (kwargs ['message' ], "Test message" )
100+ self .assertEqual (kwargs ['category' ], "custom.logger" )
88101
89102
90103def fake_import (name , globals = None , locals = None , fromlist = (), level = 0 ):
@@ -96,7 +109,7 @@ def fake_import(name, globals=None, locals=None, fromlist=(), level=0):
96109 mock_module .version .VERSION = AsyncMock (return_value = "1.0.0" )
97110 if name in ["azure_functions_runtime" , "azure_functions_runtime_v1" ]:
98111 return mock_module
99- return builtins . __import__ (name , globals , locals , fromlist , level )
112+ return _real_import (name , globals , locals , fromlist , level )
100113
101114
102115@patch ("proxy_worker.dispatcher.DependencyManager.should_load_cx_dependencies" ,
0 commit comments