@@ -137,14 +137,37 @@ def test_authentication_error(self) -> None:
137137class TestMakeAuthenticatedRequest :
138138 """Tests for make_authenticated_request function using a server mock."""
139139
140- def test_request_no_auth_raises_error (self , mock_client ) -> None :
141- """Test that request without auth raises AuthenticationError."""
140+ def test_request_no_auth_raises_error_when_server_requires_it (self , mock_settings ) -> None :
141+ """Test that request without auth raises AuthenticationError when server requires it ."""
142142 # Ensure no token is available
143143 with patch ("cforge.common.load_token" , return_value = None ):
144- with pytest .raises (AuthenticationError ) as exc_info :
145- make_authenticated_request ("GET" , "/test" )
144+ # Mock a 401 response from server (authentication required)
145+ mock_response = Mock ()
146+ mock_response .status_code = 401
147+ mock_response .text = "Unauthorized"
146148
147- assert "No authentication configured" in str (exc_info .value )
149+ with patch ("cforge.common.requests.request" , return_value = mock_response ):
150+ with pytest .raises (AuthenticationError ) as exc_info :
151+ make_authenticated_request ("GET" , "/test" )
152+
153+ assert "Authentication required but not configured" in str (exc_info .value )
154+
155+ def test_request_without_auth_succeeds_on_unauthenticated_server (self , mock_settings ) -> None :
156+ """Test that request without auth succeeds when server doesn't require it."""
157+ # Ensure no token is available
158+ with patch ("cforge.common.load_token" , return_value = None ):
159+ # Mock a successful response from server (no auth required)
160+ mock_response = Mock ()
161+ mock_response .status_code = 200
162+ mock_response .json .return_value = {"result" : "success" }
163+
164+ with patch ("cforge.common.requests.request" , return_value = mock_response ) as mock_req :
165+ result = make_authenticated_request ("GET" , "/test" )
166+
167+ # Verify the request was made without Authorization header
168+ call_args = mock_req .call_args
169+ assert "Authorization" not in call_args [1 ]["headers" ]
170+ assert result == {"result" : "success" }
148171
149172 def test_request_with_bearer_token (self , mock_client ) -> None :
150173 """Test successful request with Bearer token."""
0 commit comments