Files
wehub-resource-sync 97e91a83f3
Ruff / Ruff (push) Has been cancelled
Test / Core Tests (push) Has been cancelled
Test / Offline Coverage Tests (Python 3.10) (push) Has been cancelled
Test / Offline Coverage Tests (Python 3.11) (push) Has been cancelled
Test / Offline Coverage Tests (Python 3.12) (push) Has been cancelled
Test / Offline Coverage Tests (Python 3.13) (push) Has been cancelled
Test / Offline Coverage Tests (Python 3.9) (push) Has been cancelled
Test / Full Coverage (Python 3.11) (push) Has been cancelled
Test / Core Provider Tests (OpenAI) (push) Has been cancelled
Test / Core Provider Tests (Anthropic) (push) Has been cancelled
Test / Core Provider Tests (Google) (push) Has been cancelled
Test / Core Provider Tests (Other) (push) Has been cancelled
Test / Anthropic Tests (push) Has been cancelled
Test / Gemini Tests (push) Has been cancelled
Test / Google GenAI Tests (push) Has been cancelled
Test / Vertex AI Tests (push) Has been cancelled
Test / OpenAI Tests (push) Has been cancelled
Test / Writer Tests (push) Has been cancelled
Test / Auto Client Tests (push) Has been cancelled
ty / type-check (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:36:38 +08:00

42 lines
1.1 KiB
Python

import pytest
from itertools import product
from pydantic import BaseModel
import instructor
from ..util import models, modes
class UserDetails(BaseModel):
name: str
age: int
# Lists for models, test data, and modes
test_data = [
("Jason is 10", "Jason", 10),
("Alice is 25", "Alice", 25),
("Bob is 35", "Bob", 35),
]
@pytest.mark.parametrize("model, data, mode", product(models, test_data, modes))
def test_extract(model, data, mode):
sample_data, expected_name, expected_age = data
client = instructor.from_provider(model=f"google/{model}", mode=mode)
# Calling the extract function with the provided model, sample data, and mode
response = client.chat.completions.create(
response_model=UserDetails,
messages=[
{"role": "user", "content": sample_data},
],
)
# Assertions
assert response.name == expected_name, (
f"Expected name {expected_name}, got {response.name}"
)
assert response.age == expected_age, (
f"Expected age {expected_age}, got {response.age}"
)