File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2525from hotdata_runtime .result import QueryResult
2626
2727_TERMINAL = frozenset ({"succeeded" , "failed" , "cancelled" })
28+ _RESULT_FAILURE = frozenset ({"failed" , "cancelled" })
2829
2930
3031class HotdataClient :
@@ -206,9 +207,9 @@ def _wait_result_ready(
206207 last = results .get_result (result_id )
207208 if last .status == "ready" :
208209 return last
209- if last .status == "failed" :
210+ if last .status in _RESULT_FAILURE :
210211 raise RuntimeError (
211- last .error_message or "Result persistence failed "
212+ last .error_message or f "Result { last . status } "
212213 )
213214 time .sleep (interval_s )
214215 raise TimeoutError (
Original file line number Diff line number Diff line change @@ -109,3 +109,15 @@ def test_list_qualified_table_names_passes_connection_id():
109109 client .list_qualified_table_names (limit = 5 , connection_id = "conn_a" )
110110 it .assert_called_once ()
111111 assert it .call_args .kwargs ["connection_id" ] == "conn_a"
112+
113+
114+ def test_wait_result_ready_raises_on_cancelled ():
115+ client = HotdataClient ("k" , "ws" , host = "https://api.hotdata.dev" )
116+
117+ class FakeResultsApi :
118+ def get_result (self , result_id : str ):
119+ return SimpleNamespace (status = "cancelled" , error_message = None )
120+
121+ with patch .object (client , "_results_api" , return_value = FakeResultsApi ()):
122+ with pytest .raises (RuntimeError , match = "cancelled" ):
123+ client ._wait_result_ready ("res_1" , timeout_s = 0.1 , interval_s = 0 )
You can’t perform that action at this time.
0 commit comments