feat(standard-tests): enable parametrization of output_version (#33301)

This commit is contained in:
ccurme
2025-10-06 14:37:33 -04:00
committed by GitHub
parent bfed5f67a8
commit 426b8e2e6a
3 changed files with 19 additions and 4 deletions

View File

@@ -280,8 +280,6 @@ if __name__ == "__main__":
# Note: won't run on external repo partners
dirs_to_run["lint"].add("libs/standard-tests")
dirs_to_run["test"].add("libs/standard-tests")
dirs_to_run["lint"].add("libs/cli")
dirs_to_run["test"].add("libs/cli")
dirs_to_run["test"].add("libs/partners/mistralai")
dirs_to_run["test"].add("libs/partners/openai")
dirs_to_run["test"].add("libs/partners/anthropic")

View File

@@ -779,6 +779,7 @@ class ChatModelIntegrationTests(ChatModelTests):
assert isinstance(result.text, str)
assert len(result.content) > 0
@pytest.mark.parametrize("model", [{}, {"output_version": "v1"}], indirect=True)
def test_stream(self, model: BaseChatModel) -> None:
"""Test to verify that ``model.stream(simple_message)`` works.
@@ -804,13 +805,20 @@ class ChatModelIntegrationTests(ChatModelTests):
"""
num_chunks = 0
full: AIMessageChunk | None = None
for chunk in model.stream("Hello"):
assert chunk is not None
assert isinstance(chunk, AIMessageChunk)
assert isinstance(chunk.content, str | list)
num_chunks += 1
full = chunk if full is None else full + chunk
assert num_chunks > 0
assert isinstance(full, AIMessageChunk)
assert full.content
assert len(full.content_blocks) == 1
assert full.content_blocks[0]["type"] == "text"
@pytest.mark.parametrize("model", [{}, {"output_version": "v1"}], indirect=True)
async def test_astream(self, model: BaseChatModel) -> None:
"""Test to verify that ``await model.astream(simple_message)`` works.
@@ -839,12 +847,18 @@ class ChatModelIntegrationTests(ChatModelTests):
"""
num_chunks = 0
full: AIMessageChunk | None = None
async for chunk in model.astream("Hello"):
assert chunk is not None
assert isinstance(chunk, AIMessageChunk)
assert isinstance(chunk.content, str | list)
num_chunks += 1
full = chunk if full is None else full + chunk
assert num_chunks > 0
assert isinstance(full, AIMessageChunk)
assert full.content
assert len(full.content_blocks) == 1
assert full.content_blocks[0]["type"] == "text"
def test_batch(self, model: BaseChatModel) -> None:
"""Test to verify that ``model.batch([messages])`` works.
@@ -3007,6 +3021,7 @@ class ChatModelIntegrationTests(ChatModelTests):
assert isinstance(result.text, str)
assert len(result.content) > 0
@pytest.mark.parametrize("model", [{}, {"output_version": "v1"}], indirect=True)
def test_agent_loop(self, model: BaseChatModel) -> None:
"""Test that the model supports a simple ReAct agent loop.

View File

@@ -83,13 +83,15 @@ class ChatModelTests(BaseStandardTests):
}
@pytest.fixture
def model(self) -> BaseChatModel:
def model(self, request: Any) -> BaseChatModel:
"""Model fixture."""
extra_init_params = getattr(request, "param", None) or {}
return self.chat_model_class(
**{
**self.standard_chat_model_params,
**self.chat_model_params,
}
},
**extra_init_params,
)
@pytest.fixture