@@ -73,12 +73,10 @@ def test_model_not_available(self, mock_get) -> None:
7373 client = OllamaClient ()
7474 assert client .is_model_available () is False
7575
76- @patch ('src.utils.model_client.requests.Session ' )
77- def test_model_availability_error_handling (self , mock_session_class ) -> None :
76+ @patch ('src.utils.model_client.requests.get ' )
77+ def test_model_availability_error_handling (self , mock_get ) -> None :
7878 """Test error handling in model availability check"""
79- mock_session = MagicMock ()
80- mock_session .get .side_effect = RequestsConnectionError ("Connection failed" )
81- mock_session_class .return_value = mock_session
79+ mock_get .side_effect = RequestsConnectionError ("Connection failed" )
8280
8381 client = OllamaClient ()
8482 assert client .is_model_available () is False
@@ -87,19 +85,18 @@ def test_model_availability_error_handling(self, mock_session_class) -> None:
8785class TestOllamaClientGenerate :
8886 """Test response generation"""
8987
90- @patch ('src.utils.model_client.requests.Session ' )
91- def test_generate_simple_response (self , mock_session_class ) -> None :
88+ @patch ('src.utils.model_client.requests.post ' )
89+ def test_generate_simple_response (self , mock_post ) -> None :
9290 """Test successful response generation"""
93- mock_session = MagicMock ()
9491 mock_response = MagicMock ()
9592 mock_response .json .return_value = {
9693 "model" : "gpt-oss:20b" ,
9794 "response" : "This is a test response" ,
9895 "done" : True ,
9996 "total_duration" : 1500000000 ,
10097 }
101- mock_session . post .return_value = mock_response
102- mock_session_class .return_value = mock_session
98+ mock_response . raise_for_status .return_value = None
99+ mock_post .return_value = mock_response
103100
104101 client = OllamaClient ()
105102 response = client .generate ("Test prompt" )
@@ -110,19 +107,18 @@ def test_generate_simple_response(self, mock_session_class) -> None:
110107 assert response .error is None
111108 assert response .timed_out is False
112109
113- @patch ('src.utils.model_client.requests.Session ' )
114- def test_generate_with_thinking (self , mock_session_class ) -> None :
110+ @patch ('src.utils.model_client.requests.post ' )
111+ def test_generate_with_thinking (self , mock_post ) -> None :
115112 """Test response generation with thinking tags"""
116- mock_session = MagicMock ()
117113 mock_response = MagicMock ()
118114 mock_response .json .return_value = {
119115 "model" : "gpt-oss:20b" ,
120116 "response" : "<thinking>Internal thoughts</thinking>Public response" ,
121117 "done" : True ,
122118 "total_duration" : 2000000000 ,
123119 }
124- mock_session . post .return_value = mock_response
125- mock_session_class .return_value = mock_session
120+ mock_response . raise_for_status .return_value = None
121+ mock_post .return_value = mock_response
126122
127123 client = OllamaClient ()
128124 response = client .generate ("Test prompt" )
@@ -132,33 +128,30 @@ def test_generate_with_thinking(self, mock_session_class) -> None:
132128 # thinking field is set to None since extraction not implemented
133129 assert response .thinking is None or response .thinking == ""
134130
135- @patch ('src.utils.model_client.requests.Session ' )
136- def test_generate_with_system_prompt (self , mock_session_class ) -> None :
131+ @patch ('src.utils.model_client.requests.post ' )
132+ def test_generate_with_system_prompt (self , mock_post ) -> None :
137133 """Test generation with system prompt"""
138- mock_session = MagicMock ()
139134 mock_response = MagicMock ()
140135 mock_response .json .return_value = {
141136 "model" : "gpt-oss:20b" ,
142137 "response" : "Response with system context" ,
143138 "done" : True ,
144139 }
145- mock_session . post .return_value = mock_response
146- mock_session_class .return_value = mock_session
140+ mock_response . raise_for_status .return_value = None
141+ mock_post .return_value = mock_response
147142
148143 client = OllamaClient ()
149144 client .generate ("User prompt" , "System prompt" )
150145
151146 # Verify the request was made with system prompt
152- call_args = mock_session . post .call_args
147+ call_args = mock_post .call_args
153148 assert call_args [1 ]['json' ]['system' ] == "System prompt"
154149 assert call_args [1 ]['json' ]['prompt' ] == "User prompt"
155150
156- @patch ('src.utils.model_client.requests.Session ' )
157- def test_generate_timeout_handling (self , mock_session_class ) -> None :
151+ @patch ('src.utils.model_client.requests.post ' )
152+ def test_generate_timeout_handling (self , mock_post ) -> None :
158153 """Test timeout handling during generation"""
159- mock_session = MagicMock ()
160- mock_session .post .side_effect = Timeout ("Request timed out" )
161- mock_session_class .return_value = mock_session
154+ mock_post .side_effect = Timeout ("Request timed out" )
162155
163156 client = OllamaClient ()
164157 response = client .generate ("Test prompt" )
@@ -167,12 +160,10 @@ def test_generate_timeout_handling(self, mock_session_class) -> None:
167160 assert response .timed_out is True
168161 assert response .content == ""
169162
170- @patch ('src.utils.model_client.requests.Session ' )
171- def test_generate_connection_error (self , mock_session_class ) -> None :
163+ @patch ('src.utils.model_client.requests.post ' )
164+ def test_generate_connection_error (self , mock_post ) -> None :
172165 """Test connection error handling"""
173- mock_session = MagicMock ()
174- mock_session .post .side_effect = RequestsConnectionError ("Connection refused" )
175- mock_session_class .return_value = mock_session
166+ mock_post .side_effect = RequestsConnectionError ("Connection refused" )
176167
177168 client = OllamaClient ()
178169 response = client .generate ("Test prompt" )
@@ -181,18 +172,17 @@ def test_generate_connection_error(self, mock_session_class) -> None:
181172 assert response .timed_out is False
182173 assert response .content == ""
183174
184- @patch ('src.utils.model_client.requests.Session ' )
185- def test_generate_malformed_response (self , mock_session_class ) -> None :
175+ @patch ('src.utils.model_client.requests.post ' )
176+ def test_generate_malformed_response (self , mock_post ) -> None :
186177 """Test handling of malformed API responses"""
187- mock_session = MagicMock ()
188178 mock_response = MagicMock ()
189179 # Missing 'response' key
190180 mock_response .json .return_value = {
191181 "model" : "gpt-oss:20b" ,
192182 "done" : True ,
193183 }
194- mock_session . post .return_value = mock_response
195- mock_session_class .return_value = mock_session
184+ mock_response . raise_for_status .return_value = None
185+ mock_post .return_value = mock_response
196186
197187 client = OllamaClient ()
198188 response = client .generate ("Test prompt" )
@@ -255,52 +245,48 @@ def test_busy_check_command_failure(self, mock_run) -> None:
255245class TestOllamaClientHelpers :
256246 """Test helper methods"""
257247
258- @patch ('src.utils.model_client.requests.Session ' )
259- def test_make_request_get (self , mock_session_class ) -> None :
248+ @patch ('src.utils.model_client.requests.get ' )
249+ def test_make_request_get (self , mock_get ) -> None :
260250 """Test GET request helper"""
261- mock_session = MagicMock ()
262251 mock_response = MagicMock ()
263252 mock_response .json .return_value = {"result" : "success" }
264- mock_session . get .return_value = mock_response
265- mock_session_class .return_value = mock_session
253+ mock_response . raise_for_status .return_value = None
254+ mock_get .return_value = mock_response
266255
267256 client = OllamaClient ()
268257 result = client ._make_request ("api/test" , method = "GET" )
269258
270259 assert result == {"result" : "success" }
271- mock_session . get .assert_called_once_with (
260+ mock_get .assert_called_once_with (
272261 "http://localhost:11434/api/test" ,
273262 timeout = 180
274263 )
275264
276- @patch ('src.utils.model_client.requests.Session ' )
277- def test_make_request_post (self , mock_session_class ) -> None :
265+ @patch ('src.utils.model_client.requests.post ' )
266+ def test_make_request_post (self , mock_post ) -> None :
278267 """Test POST request helper"""
279- mock_session = MagicMock ()
280268 mock_response = MagicMock ()
281269 mock_response .json .return_value = {"result" : "success" }
282- mock_session . post .return_value = mock_response
283- mock_session_class .return_value = mock_session
270+ mock_response . raise_for_status .return_value = None
271+ mock_post .return_value = mock_response
284272
285273 client = OllamaClient ()
286274 data = {"key" : "value" }
287275 result = client ._make_request ("api/test" , data = data , method = "POST" )
288276
289277 assert result == {"result" : "success" }
290- mock_session . post .assert_called_once_with (
278+ mock_post .assert_called_once_with (
291279 "http://localhost:11434/api/test" ,
292280 json = data ,
293281 timeout = 180
294282 )
295283
296- @patch ('src.utils.model_client.requests.Session ' )
297- def test_make_request_error_handling (self , mock_session_class ) -> None :
284+ @patch ('src.utils.model_client.requests.post ' )
285+ def test_make_request_error_handling (self , mock_post ) -> None :
298286 """Test request error handling"""
299- mock_session = MagicMock ()
300287 mock_response = MagicMock ()
301288 mock_response .raise_for_status .side_effect = requests .HTTPError ("404 Not Found" )
302- mock_session .post .return_value = mock_response
303- mock_session_class .return_value = mock_session
289+ mock_post .return_value = mock_response
304290
305291 client = OllamaClient ()
306292
@@ -313,16 +299,16 @@ def test_make_request_error_handling(self, mock_session_class) -> None:
313299class TestOllamaClientIntegration :
314300 """Integration tests for complete workflows"""
315301
316- @patch ('src.utils.model_client.requests.Session' )
317- def test_full_generation_workflow (self , mock_session_class ) -> None :
302+ @patch ('src.utils.model_client.requests.post' )
303+ @patch ('src.utils.model_client.requests.get' )
304+ def test_full_generation_workflow (self , mock_get , mock_post ) -> None :
318305 """Test complete generation workflow with all features"""
319- mock_session = MagicMock ()
320-
321306 # First call: check model availability
322307 availability_response = MagicMock ()
323308 availability_response .json .return_value = {
324309 "models" : [{"name" : "gpt-oss:20b" }]
325310 }
311+ availability_response .raise_for_status .return_value = None
326312
327313 # Second call: generate response
328314 generation_response = MagicMock ()
@@ -334,10 +320,10 @@ def test_full_generation_workflow(self, mock_session_class) -> None:
334320 "prompt_eval_count" : 15 ,
335321 "eval_count" : 25 ,
336322 }
323+ generation_response .raise_for_status .return_value = None
337324
338- mock_session .get .return_value = availability_response
339- mock_session .post .return_value = generation_response
340- mock_session_class .return_value = mock_session
325+ mock_get .return_value = availability_response
326+ mock_post .return_value = generation_response
341327
342328 client = OllamaClient ()
343329
@@ -356,18 +342,17 @@ def test_full_generation_workflow(self, mock_session_class) -> None:
356342 assert response .response_time > 0
357343
358344 @patch ('src.utils.model_client.time.time' )
359- @patch ('src.utils.model_client.requests.Session ' )
360- def test_response_timing (self , mock_session_class , mock_time ) -> None :
345+ @patch ('src.utils.model_client.requests.post ' )
346+ def test_response_timing (self , mock_post , mock_time ) -> None :
361347 """Test accurate response time measurement"""
362- mock_session = MagicMock ()
363348 mock_response = MagicMock ()
364349 mock_response .json .return_value = {
365350 "model" : "gpt-oss:20b" ,
366351 "response" : "Test" ,
367352 "done" : True ,
368353 }
369- mock_session . post .return_value = mock_response
370- mock_session_class .return_value = mock_session
354+ mock_response . raise_for_status .return_value = None
355+ mock_post .return_value = mock_response
371356
372357 # Simulate 2.5 second response time
373358 mock_time .side_effect = [0.0 , 2.5 ]
0 commit comments