mirror of
https://github.com/hwchase17/langchain.git
synced 2026-01-24 05:50:18 +00:00
feat(standard-tests): enable parametrization of output_version (#33301)
This commit is contained in:
2
.github/scripts/check_diff.py
vendored
2
.github/scripts/check_diff.py
vendored
@@ -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")
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user