myrmidon / python /tests /test_mock_sovereignty.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
2.1 kB
import openai
import pytest
from google import genai
from pydantic_ai import Agent
from src.server.config.model_ssot import SYSTEM_MODELS
@pytest.mark.asyncio
async def test_genai_client_is_mocked():
"""Verify that google.genai.Client generates mocked content locally without internet."""
client = genai.Client(api_key="fake-test-key")
response = client.models.generate_content(model=SYSTEM_MODELS["DEFAULT_TEXT"], contents="Hello")
assert "Mocked GenAI Response" in response.text
# Verify async
response_async = await client.aio.models.generate_content(model=SYSTEM_MODELS["DEFAULT_TEXT"], contents="Hello")
assert "Mocked GenAI Response" in response_async.text
@pytest.mark.asyncio
async def test_openai_client_is_mocked():
"""Verify that openai.OpenAI / AsyncOpenAI returns mocked completions."""
client = openai.OpenAI(api_key="fake-test-key")
resp = client.chat.completions.create(model="gpt-4", messages=[{"role": "user", "content": "hi"}])
assert "Mocked OpenAI Response" in resp.choices[0].message.content
client_async = openai.AsyncOpenAI(api_key="fake-test-key")
resp_async = await client_async.chat.completions.create(model="gpt-4", messages=[{"role": "user", "content": "hi"}])
assert "Mocked OpenAI Response" in resp_async.choices[0].message.content
@pytest.mark.asyncio
async def test_pydantic_ai_agent_is_mocked():
"""Verify that pydantic_ai.Agent.run utilizes global mock result."""
pydantic_model = f"google-gla:{SYSTEM_MODELS['DEFAULT_TEXT'].replace('models/', '')}"
agent = Agent(pydantic_model, system_prompt="Test system prompt")
result = await agent.run("test user prompt")
assert result.data == "Mocked Agent Response"
assert result.output == "Mocked Agent Response"
assert result.usage.input_tokens == 10
assert result.usage.output_tokens == 10
@pytest.mark.integration
def test_integration_auto_skip_check():
"""This integration test should run only if keys and internet are available.
Otherwise it will be skipped by pytest_runtest_setup.
"""
assert True