Skip to content

Commit 3416952

Browse files
committed
cover
1 parent d22dec5 commit 3416952

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

tests/test_zeep_transport.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,3 +868,46 @@ async def test_cookie_jar_type():
868868
# Verify cookies are accessible in requests response
869869
assert hasattr(requests_result.cookies, "__getitem__")
870870
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

Comments
 (0)