@@ -83,6 +83,12 @@ def test_export_initial_telemetry_log(self, noop_telemetry_client):
8383 driver_connection_params = MagicMock (), user_agent = "test"
8484 )
8585
86+ def test_export_failure_log (self , noop_telemetry_client ):
87+ """Test that export_failure_log does nothing."""
88+ noop_telemetry_client .export_failure_log (
89+ error_name = "TestError" , error_message = "Test error message"
90+ )
91+
8692 def test_close (self , noop_telemetry_client ):
8793 """Test that close does nothing."""
8894 noop_telemetry_client .close ()
@@ -127,6 +133,47 @@ def test_export_initial_telemetry_log(
127133 mock_frontend_log .assert_called_once ()
128134 client .export_event .assert_called_once_with (mock_frontend_log .return_value )
129135
136+ @patch ("databricks.sql.telemetry.telemetry_client.TelemetryFrontendLog" )
137+ @patch ("databricks.sql.telemetry.telemetry_client.TelemetryHelper.getDriverSystemConfiguration" )
138+ @patch ("databricks.sql.telemetry.telemetry_client.DriverErrorInfo" )
139+ @patch ("databricks.sql.telemetry.telemetry_client.uuid.uuid4" )
140+ @patch ("databricks.sql.telemetry.telemetry_client.time.time" )
141+ def test_export_failure_log (
142+ self ,
143+ mock_time ,
144+ mock_uuid4 ,
145+ mock_driver_error_info ,
146+ mock_get_driver_config ,
147+ mock_frontend_log ,
148+ telemetry_client_setup
149+ ):
150+ """Test exporting failure telemetry log."""
151+ mock_time .return_value = 2000
152+ mock_uuid4 .return_value = "test-error-uuid"
153+ mock_get_driver_config .return_value = "test-driver-config"
154+ mock_driver_error_info .return_value = MagicMock ()
155+ mock_frontend_log .return_value = MagicMock ()
156+
157+ client = telemetry_client_setup ["client" ]
158+ client .export_event = MagicMock ()
159+
160+ client ._driver_connection_params = "test-connection-params"
161+ client ._user_agent = "test-user-agent"
162+
163+ error_name = "TestError"
164+ error_message = "This is a test error message"
165+
166+ client .export_failure_log (error_name , error_message )
167+
168+ mock_driver_error_info .assert_called_once_with (
169+ error_name = error_name ,
170+ stack_trace = error_message
171+ )
172+
173+ mock_frontend_log .assert_called_once ()
174+
175+ client .export_event .assert_called_once_with (mock_frontend_log .return_value )
176+
130177 def test_export_event (self , telemetry_client_setup ):
131178 """Test exporting an event."""
132179 client = telemetry_client_setup ["client" ]
0 commit comments