mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-07-29 15:23:51 +00:00
Restore improved exception handling and update test for specific httpx.HTTPStatusError
- Use httpx.HTTPStatusError for more specific exception catching - Provide better error message: 'GitHub token validation failed. Please check your token and try again.' - Update test to expect improved error message and properly mock httpx exceptions
This commit is contained in:
parent
871021adc4
commit
7f4d55f5f7
2 changed files with 7 additions and 4 deletions
|
@ -328,9 +328,9 @@ class GitHubTokenAuthProvider(AuthProvider):
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
user_info = await _get_github_user_info(token, self.config.github_api_base_url)
|
user_info = await _get_github_user_info(token, self.config.github_api_base_url)
|
||||||
except Exception as e:
|
except httpx.HTTPStatusError as e:
|
||||||
logger.warning(f"GitHub token validation failed: {e}")
|
logger.warning(f"GitHub token validation failed: {e}")
|
||||||
raise ValueError("Invalid GitHub token") from e
|
raise ValueError("GitHub token validation failed. Please check your token and try again.") from e
|
||||||
|
|
||||||
principal = user_info["user"]["login"]
|
principal = user_info["user"]["login"]
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
from unittest.mock import AsyncMock, patch
|
from unittest.mock import AsyncMock, patch
|
||||||
|
|
||||||
|
import httpx
|
||||||
import pytest
|
import pytest
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
|
@ -24,7 +25,9 @@ class MockResponse:
|
||||||
|
|
||||||
def raise_for_status(self):
|
def raise_for_status(self):
|
||||||
if self.status_code != 200:
|
if self.status_code != 200:
|
||||||
raise Exception(f"HTTP error: {self.status_code}")
|
# Create a mock request for the HTTPStatusError
|
||||||
|
mock_request = httpx.Request("GET", "https://api.github.com/user")
|
||||||
|
raise httpx.HTTPStatusError(f"HTTP error: {self.status_code}", request=mock_request, response=self)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -127,7 +130,7 @@ def test_authenticated_endpoint_with_invalid_github_token(mock_client_class, git
|
||||||
|
|
||||||
response = github_token_client.get("/test", headers={"Authorization": "Bearer invalid_token"})
|
response = github_token_client.get("/test", headers={"Authorization": "Bearer invalid_token"})
|
||||||
assert response.status_code == 401
|
assert response.status_code == 401
|
||||||
assert "Invalid GitHub token" in response.json()["error"]["message"]
|
assert "GitHub token validation failed. Please check your token and try again." in response.json()["error"]["message"]
|
||||||
|
|
||||||
|
|
||||||
@patch("llama_stack.distribution.server.auth_providers.httpx.AsyncClient")
|
@patch("llama_stack.distribution.server.auth_providers.httpx.AsyncClient")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue