@@ -868,3 +868,46 @@ async def test_cookie_jar_type():
868
868
# Verify cookies are accessible in requests response
869
869
assert hasattr (requests_result .cookies , "__getitem__" )
870
870
assert "test" in requests_result .cookies
871
+
872
+
873
+ @pytest .mark .asyncio
874
+ async def test_http_error_responses_no_exception ():
875
+ """Test that HTTP error responses (401, 500, etc.) don't raise exceptions."""
876
+ mock_session = create_mock_session ()
877
+ transport = AIOHTTPTransport (session = mock_session )
878
+
879
+ # Test 401 Unauthorized
880
+ mock_401_response = Mock (spec = aiohttp .ClientResponse )
881
+ mock_401_response .status = 401
882
+ mock_401_response .headers = {"Content-Type" : "text/xml" }
883
+ mock_401_response .method = "POST"
884
+ mock_401_response .url = "http://example.com/service"
885
+ mock_401_response .charset = "utf-8"
886
+ mock_401_response .cookies = {}
887
+ mock_401_response .read = AsyncMock (return_value = b"<error>Unauthorized</error>" )
888
+
889
+ mock_session = Mock (spec = aiohttp .ClientSession )
890
+ mock_session .post = AsyncMock (return_value = mock_401_response )
891
+ transport .session = mock_session
892
+
893
+ # Should not raise exception
894
+ result = await transport .post ("http://example.com/service" , "<request/>" , {})
895
+ assert isinstance (result , httpx .Response )
896
+ assert result .status_code == 401
897
+ assert result .read () == b"<error>Unauthorized</error>"
898
+
899
+ # Test 500 Internal Server Error
900
+ mock_500_response = Mock (spec = aiohttp .ClientResponse )
901
+ mock_500_response .status = 500
902
+ mock_500_response .headers = {"Content-Type" : "text/xml" }
903
+ mock_500_response .charset = "utf-8"
904
+ mock_500_response .cookies = {}
905
+ mock_500_response .read = AsyncMock (return_value = b"<error>Server Error</error>" )
906
+
907
+ mock_session .get = AsyncMock (return_value = mock_500_response )
908
+
909
+ # Should not raise exception
910
+ result = await transport .get ("http://example.com/wsdl" )
911
+ assert isinstance (result , RequestsResponse )
912
+ assert result .status_code == 500
913
+ assert result .content == b"<error>Server Error</error>"
0 commit comments