Spaces:
Configuration error
Configuration error
import datetime | |
import json | |
import os | |
import sys | |
import unittest | |
from typing import List, Optional, Tuple | |
from unittest.mock import ANY, MagicMock, Mock, patch | |
import httpx | |
import pytest | |
sys.path.insert( | |
0, os.path.abspath("../../..") | |
) # Adds the parent directory to the system-path | |
import litellm | |
async def test_construct_request_headers_project_id_from_env(monkeypatch): | |
"""Test that construct_request_headers uses GCS_PUBSUB_PROJECT_ID environment variable.""" | |
from litellm.integrations.gcs_pubsub.pub_sub import GcsPubSubLogger | |
# Set up test environment variable | |
test_project_id = "test-project-123" | |
monkeypatch.setenv("GCS_PUBSUB_PROJECT_ID", test_project_id) | |
monkeypatch.setattr( | |
"litellm.proxy.proxy_server.premium_user", | |
True, | |
) | |
try: | |
# Create handler with no project_id | |
handler = GcsPubSubLogger( | |
topic_id="test-topic", credentials_path="test-path.json" | |
) | |
# Mock the Vertex AI auth calls | |
mock_auth_header = "mock-auth-header" | |
mock_token = "mock-token" | |
with patch( | |
"litellm.vertex_chat_completion._ensure_access_token_async" | |
) as mock_ensure_token: | |
mock_ensure_token.return_value = (mock_auth_header, test_project_id) | |
with patch( | |
"litellm.vertex_chat_completion._get_token_and_url" | |
) as mock_get_token: | |
mock_get_token.return_value = (mock_token, "mock-url") | |
# Call construct_request_headers | |
headers = await handler.construct_request_headers() | |
# Verify headers | |
assert headers == { | |
"Authorization": f"Bearer {mock_token}", | |
"Content-Type": "application/json", | |
} | |
# Verify _ensure_access_token_async was called with correct project_id | |
mock_ensure_token.assert_called_once_with( | |
credentials="test-path.json", | |
project_id=test_project_id, | |
custom_llm_provider="vertex_ai", | |
) | |
finally: | |
# Clean up environment variable | |
del os.environ["GCS_PUBSUB_PROJECT_ID"] | |