mirror of
https://github.com/hwchase17/langchain.git
synced 2025-12-24 08:24:14 +00:00
style(langchain): add ruff rules PT (#34434)
This commit is contained in:
committed by
GitHub
parent
3dcafac79b
commit
6a416c6186
@@ -141,7 +141,6 @@ ignore-var-parameters = true # ignore missing documentation for *args and **kwa
|
||||
"tests/unit_tests/agents/*" = [
|
||||
"ANN", # Annotations, needs to fix
|
||||
"ARG", # Arguments, needs to fix
|
||||
"PT", # pytest, needs to fix
|
||||
]
|
||||
"tests/unit_tests/agents/test_return_direct_spec.py" = ["F821"]
|
||||
"tests/unit_tests/agents/test_responses_spec.py" = ["F821"]
|
||||
|
||||
@@ -51,13 +51,13 @@ def _make_resource(
|
||||
|
||||
|
||||
def test_host_policy_validations() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(ValueError, match="max_output_lines must be positive"):
|
||||
HostExecutionPolicy(max_output_lines=0)
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(ValueError, match="cpu_time_seconds must be positive if provided"):
|
||||
HostExecutionPolicy(cpu_time_seconds=0)
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(ValueError, match="memory_bytes must be positive if provided"):
|
||||
HostExecutionPolicy(memory_bytes=-1)
|
||||
|
||||
|
||||
@@ -310,11 +310,13 @@ def test_docker_policy_spawns_docker_run(monkeypatch, tmp_path: Path) -> None:
|
||||
assert command[1:4] == ["run", "-i", "--rm"]
|
||||
assert "--memory" in command
|
||||
assert "4096" in command
|
||||
assert "-v" in command and any(str(tmp_path) in part for part in command)
|
||||
assert "-v" in command
|
||||
assert any(str(tmp_path) in part for part in command)
|
||||
assert "-w" in command
|
||||
w_index = command.index("-w")
|
||||
assert command[w_index + 1] == str(tmp_path)
|
||||
assert "-e" in command and "PATH=/bin" in command
|
||||
assert "-e" in command
|
||||
assert "PATH=/bin" in command
|
||||
assert command[-2:] == ["ubuntu:22.04", "/bin/bash"]
|
||||
|
||||
|
||||
@@ -324,7 +326,7 @@ def test_docker_policy_rejects_cpu_limit() -> None:
|
||||
|
||||
|
||||
def test_docker_policy_validates_memory() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(ValueError, match="memory_bytes must be positive if provided"):
|
||||
DockerExecutionPolicy(memory_bytes=0)
|
||||
|
||||
|
||||
@@ -357,17 +359,18 @@ def test_docker_policy_skips_mount_for_temp_workspace(
|
||||
w_index = command.index("-w")
|
||||
assert command[w_index + 1] == "/"
|
||||
assert "--cpus" in command
|
||||
assert "--network" in command and "none" in command
|
||||
assert "--network" in command
|
||||
assert "none" in command
|
||||
assert command[-2:] == [policy.image, "/bin/sh"]
|
||||
|
||||
|
||||
def test_docker_policy_validates_cpus() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(ValueError, match="cpus must be a non-empty string when provided"):
|
||||
DockerExecutionPolicy(cpus=" ")
|
||||
|
||||
|
||||
def test_docker_policy_validates_user() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(ValueError, match="user must be a non-empty string when provided"):
|
||||
DockerExecutionPolicy(user=" ")
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,11 @@ def test_summarization_middleware_initialization() -> None:
|
||||
assert middleware.summary_prompt == "Custom prompt: {messages}"
|
||||
assert middleware.trim_tokens_to_summarize == 4000
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
with pytest.raises(
|
||||
ValueError,
|
||||
match="Model profile information is required to use fractional token limits, "
|
||||
"and is unavailable for the specified model",
|
||||
):
|
||||
SummarizationMiddleware(model=model, keep=("fraction", 0.5)) # no model profile
|
||||
|
||||
# Test with string model
|
||||
@@ -346,7 +350,7 @@ def test_summarization_middleware_missing_profile() -> None:
|
||||
|
||||
def test_summarization_middleware_full_workflow() -> None:
|
||||
"""Test SummarizationMiddleware complete summarization workflow."""
|
||||
with pytest.warns(DeprecationWarning):
|
||||
with pytest.warns(DeprecationWarning, match="messages_to_keep is deprecated"):
|
||||
# keep test for functionality
|
||||
middleware = SummarizationMiddleware(
|
||||
model=MockChatModel(), max_tokens_before_summary=1000, messages_to_keep=2
|
||||
@@ -753,14 +757,14 @@ def test_summarization_middleware_cutoff_at_boundary() -> None:
|
||||
def test_summarization_middleware_deprecated_parameters_with_defaults() -> None:
|
||||
"""Test that deprecated parameters work correctly with default values."""
|
||||
# Test that deprecated max_tokens_before_summary is ignored when trigger is set
|
||||
with pytest.warns(DeprecationWarning):
|
||||
with pytest.warns(DeprecationWarning, match="max_tokens_before_summary is deprecated"):
|
||||
middleware = SummarizationMiddleware(
|
||||
model=MockChatModel(), trigger=("tokens", 2000), max_tokens_before_summary=1000
|
||||
)
|
||||
assert middleware.trigger == ("tokens", 2000)
|
||||
|
||||
# Test that messages_to_keep is ignored when keep is not default
|
||||
with pytest.warns(DeprecationWarning):
|
||||
with pytest.warns(DeprecationWarning, match="messages_to_keep is deprecated"):
|
||||
middleware = SummarizationMiddleware(
|
||||
model=MockChatModel(), keep=("messages", 5), messages_to_keep=10
|
||||
)
|
||||
|
||||
@@ -125,7 +125,7 @@ def test_appends_to_existing_system_prompt() -> None:
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"original_prompt,expected_prompt_prefix",
|
||||
("original_prompt", "expected_prompt_prefix"),
|
||||
[
|
||||
("Original prompt", "Original prompt\n\n## `write_todos`"),
|
||||
(None, "## `write_todos`"),
|
||||
@@ -291,7 +291,7 @@ def test_todo_middleware_custom_system_prompt_and_tool_description() -> None:
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"todos,expected_message",
|
||||
("todos", "expected_message"),
|
||||
[
|
||||
([], "Updated todo list to []"),
|
||||
(
|
||||
|
||||
@@ -65,7 +65,7 @@ class TestModelRequestSystemMessage:
|
||||
"""Test ModelRequest with system_message field."""
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"system_message,system_prompt,expected_msg,expected_prompt",
|
||||
("system_message", "system_prompt", "expected_msg", "expected_prompt"),
|
||||
[
|
||||
# Test with SystemMessage
|
||||
(
|
||||
@@ -124,7 +124,7 @@ class TestModelRequestSystemMessage:
|
||||
assert "Part 1" in request.system_prompt
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"override_with,expected_text",
|
||||
("override_with", "expected_text"),
|
||||
[
|
||||
("system_message", "New"),
|
||||
("system_prompt", "New prompt"),
|
||||
@@ -184,8 +184,8 @@ class TestModelRequestSystemMessage:
|
||||
"""Test that setting both system_prompt and system_message raises error."""
|
||||
model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
|
||||
|
||||
with pytest.raises(ValueError, match="Cannot specify both"):
|
||||
if use_constructor:
|
||||
if use_constructor:
|
||||
with pytest.raises(ValueError, match="Cannot specify both"):
|
||||
ModelRequest(
|
||||
model=model,
|
||||
system_prompt="String prompt",
|
||||
@@ -197,24 +197,25 @@ class TestModelRequestSystemMessage:
|
||||
state={},
|
||||
runtime=None,
|
||||
)
|
||||
else:
|
||||
request = ModelRequest(
|
||||
model=model,
|
||||
system_message=None,
|
||||
messages=[],
|
||||
tool_choice=None,
|
||||
tools=[],
|
||||
response_format=None,
|
||||
state={},
|
||||
runtime=None,
|
||||
)
|
||||
else:
|
||||
request = ModelRequest(
|
||||
model=model,
|
||||
system_message=None,
|
||||
messages=[],
|
||||
tool_choice=None,
|
||||
tools=[],
|
||||
response_format=None,
|
||||
state={},
|
||||
runtime=None,
|
||||
)
|
||||
with pytest.raises(ValueError, match="Cannot specify both"):
|
||||
request.override(
|
||||
system_prompt="String prompt",
|
||||
system_message=SystemMessage(content="Message prompt"),
|
||||
)
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"new_value,should_be_none",
|
||||
("new_value", "should_be_none"),
|
||||
[
|
||||
("New prompt", False),
|
||||
(None, True),
|
||||
@@ -651,7 +652,7 @@ class TestMetadataMerging:
|
||||
"""Test metadata merging behavior when updating system messages."""
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"metadata_type,initial_metadata,update_metadata,expected_result",
|
||||
("metadata_type", "initial_metadata", "update_metadata", "expected_result"),
|
||||
[
|
||||
# additional_kwargs merging
|
||||
(
|
||||
@@ -948,7 +949,7 @@ class TestEdgeCasesAndErrorHandling:
|
||||
"""Test edge cases and error handling for system messages."""
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"content,expected_blocks,expected_prompt",
|
||||
("content", "expected_blocks", "expected_prompt"),
|
||||
[
|
||||
("", 0, ""),
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user