Skip to content

Commit a87a9cb

Browse files
fix use spec=textblock in mock
1 parent 68afc45 commit a87a9cb

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ requires-python = ">=3.11"
1212
dependencies = [
1313
"anthropic>=0.40.0",
1414
"openai>=1.50.0",
15-
"google-generativeai>=0.8.0",
15+
"google-genai>=1.0.0",
1616
"pygithub>=2.4.0",
1717
"httpx>=0.27.0",
1818
"pydantic>=2.9.0",
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22

3-
import google.generativeai as genai
3+
import google.genai as genai
4+
from google.genai import types as genai_types
45

56
from ..models import ReviewResult
67
from .base import LLMProvider
@@ -9,18 +10,18 @@
910

1011
class GeminiProvider(LLMProvider):
1112
def __init__(self, api_key: str, model: str):
12-
genai.configure(api_key=api_key) # type: ignore[attr-defined]
13-
self.model = genai.GenerativeModel( # type: ignore[attr-defined]
14-
model_name=model,
13+
self.client = genai.Client(api_key=api_key)
14+
self.model = model
15+
self.config = genai_types.GenerateContentConfig(
1516
system_instruction=SYSTEM_PROMPT,
16-
generation_config=genai.GenerationConfig( # type: ignore[attr-defined]
17-
response_mime_type="application/json",
18-
max_output_tokens=4096,
19-
),
17+
response_mime_type="application/json",
18+
max_output_tokens=4096,
2019
)
2120

2221
async def review(self, diff: str, review_level: str, security_only: bool) -> ReviewResult:
23-
response = await self.model.generate_content_async(
24-
build_user_prompt(diff, review_level, security_only)
22+
response = await self.client.aio.models.generate_content(
23+
model=self.model,
24+
contents=build_user_prompt(diff, review_level, security_only),
25+
config=self.config,
2526
)
2627
return ReviewResult.model_validate(json.loads(response.text))

tests/test_providers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from unittest.mock import AsyncMock, MagicMock, patch
33

44
import pytest
5+
from anthropic.types import TextBlock
56

67
from ai_reviewer.models import ReviewResult, Severity
78
from ai_reviewer.providers.anthropic import AnthropicProvider
@@ -32,7 +33,7 @@ async def test_anthropic_provider_parses_result():
3233
mock_client = MagicMock()
3334
mock_cls.return_value = mock_client
3435
mock_client.messages.create = AsyncMock(
35-
return_value=MagicMock(content=[MagicMock(text=json.dumps(MOCK_RESULT))])
36+
return_value=MagicMock(content=[MagicMock(spec=TextBlock, text=json.dumps(MOCK_RESULT))])
3637
)
3738

3839
provider = AnthropicProvider(api_key="test-key", model="claude-sonnet-4-20250514")

0 commit comments

Comments
 (0)