[CI][RFC] Replace black-jupyter with ruff-format (#37210)

Co-authored-by: Alison Shao <a.shao@wustl.edu>
This commit is contained in:
Alex Nails
2026-09-02 19:46:08 -07:00
committed by GitHub
co-authored by Alison Shao
parent 2641e427be
commit 28262c20df
1411 changed files with 7766 additions and 8176 deletions
@@ -120,9 +120,9 @@ class TestEnableThinking:
if "content" in delta and delta["content"]:
has_content = True
assert (
has_reasoning
), "The reasoning content is not included in the stream response"
assert has_reasoning, (
"The reasoning content is not included in the stream response"
)
assert has_content, "The stream response does not contain normal content"
def test_stream_chat_completion_without_reasoning(self, setup_backend):
@@ -162,7 +162,7 @@ class TestEnableThinking:
if "content" in delta and delta["content"]:
has_content = True
assert (
not has_reasoning
), "The reasoning content should not be included in the stream response"
assert not has_reasoning, (
"The reasoning content should not be included in the stream response"
)
assert has_content, "The stream response does not contain normal content"
@@ -153,9 +153,9 @@ class TestOpenAIServerFunctionCalling:
tool_calls = response.choices[0].message.tool_calls
assert (
isinstance(tool_calls, list) and len(tool_calls) > 0
), "tool_calls should be a non-empty list"
assert isinstance(tool_calls, list) and len(tool_calls) > 0, (
"tool_calls should be a non-empty list"
)
function_name = tool_calls[0].function.name
assert function_name == "add", "Function name should be 'add'"
@@ -221,20 +221,20 @@ class TestOpenAIServerFunctionCalling:
if choice.delta.tool_calls:
tool_call = choice.delta.tool_calls[0]
if tool_call.function.name:
assert (
tool_call.function.name == "get_current_weather"
), "Function name should be 'get_current_weather'"
assert tool_call.function.name == "get_current_weather", (
"Function name should be 'get_current_weather'"
)
found_function_name = True
break
assert (
found_function_name
), "Target function name 'get_current_weather' was not found in the streaming chunks"
assert found_function_name, (
"Target function name 'get_current_weather' was not found in the streaming chunks"
)
finish_reason = chunks[-1].choices[0].finish_reason
assert (
finish_reason == "tool_calls"
), "Final response of function calling should have finish_reason 'tool_calls'"
assert finish_reason == "tool_calls", (
"Final response of function calling should have finish_reason 'tool_calls'"
)
def test_function_calling_streaming_args_parsing(self, setup_backend):
"""Test: Whether the function call arguments returned in streaming mode can be correctly concatenated into valid JSON.
@@ -299,14 +299,14 @@ class TestOpenAIServerFunctionCalling:
assert function_name == "add", "Function name should be 'add'"
joined_args = "".join(argument_fragments)
assert (
len(joined_args) > 0
), "No parameter fragments were returned in the function call"
assert len(joined_args) > 0, (
"No parameter fragments were returned in the function call"
)
finish_reason = chunks[-1].choices[0].finish_reason
assert (
finish_reason == "tool_calls"
), "Final response of function calling should have finish_reason 'tool_calls'"
assert finish_reason == "tool_calls", (
"Final response of function calling should have finish_reason 'tool_calls'"
)
# Check whether the concatenated JSON is valid
try:
@@ -445,21 +445,21 @@ class TestOpenAIServerFunctionCalling:
arguments = tool_calls[0].function.arguments
args_obj = json.loads(arguments)
assert (
function_name == "get_weather"
), f"Function name should be 'get_weather', got: {function_name}"
assert (
"city" in args_obj
), f"Function arguments should have 'city', got: {args_obj}"
assert function_name == "get_weather", (
f"Function name should be 'get_weather', got: {function_name}"
)
assert "city" in args_obj, (
f"Function arguments should have 'city', got: {args_obj}"
)
# Make the test more robust by checking type and accepting valid responses
city_value = args_obj["city"]
assert isinstance(
city_value, str
), f"Parameter city should be a string, got: {type(city_value)}"
assert (
"Paris" in city_value or "France" in city_value
), f"Parameter city should contain either 'Paris' or 'France', got: {city_value}"
assert isinstance(city_value, str), (
f"Parameter city should be a string, got: {type(city_value)}"
)
assert "Paris" in city_value or "France" in city_value, (
f"Parameter city should contain either 'Paris' or 'France', got: {city_value}"
)
def test_function_call_specific(self, setup_backend):
"""Test: Whether tool_choice: ToolChoice works as expected.
@@ -592,9 +592,9 @@ class TestOpenAIServerFunctionCalling:
finish_reason_chunks[index].append(choice.finish_reason)
# Verify we got finish_reason chunks for both indices
assert (
len(finish_reason_chunks) == 2
), f"Expected finish_reason chunks for 2 indices, got {len(finish_reason_chunks)}"
assert len(finish_reason_chunks) == 2, (
f"Expected finish_reason chunks for 2 indices, got {len(finish_reason_chunks)}"
)
# Verify both index 0 and 1 have finish_reason
assert 0 in finish_reason_chunks, "Missing finish_reason chunk for index 0"
@@ -602,9 +602,9 @@ class TestOpenAIServerFunctionCalling:
# Verify the finish_reason is "tool_calls" since we forced tool calls
for index, reasons in finish_reason_chunks.items():
assert (
reasons[-1] == "tool_calls"
), f"Expected finish_reason 'tool_calls' for index {index}, got {reasons[-1]}"
assert reasons[-1] == "tool_calls", (
f"Expected finish_reason 'tool_calls' for index {index}, got {reasons[-1]}"
)
def test_function_calling_streaming_no_tool_call(self, setup_backend):
"""Test: Whether the finish_reason is stop in streaming mode when no tool call is given.
@@ -663,14 +663,14 @@ class TestOpenAIServerFunctionCalling:
found_tool_call = True
break
assert (
not found_tool_call
), "Shouldn't have any tool_call in the streaming chunks"
assert not found_tool_call, (
"Shouldn't have any tool_call in the streaming chunks"
)
finish_reason = chunks[-1].choices[0].finish_reason
assert (
finish_reason == "stop"
), "Final response of no function calling should have finish_reason 'stop'"
assert finish_reason == "stop", (
"Final response of no function calling should have finish_reason 'stop'"
)
def test_streaming_multiple_choices_without_tools(self, setup_backend):
"""Test: Verify that each choice gets its own finish_reason chunk without tool calls.
@@ -705,9 +705,9 @@ class TestOpenAIServerFunctionCalling:
finish_reason_chunks[index].append(choice.finish_reason)
# Verify we got finish_reason chunks for both indices
assert (
len(finish_reason_chunks) == 2
), f"Expected finish_reason chunks for 2 indices, got {len(finish_reason_chunks)}"
assert len(finish_reason_chunks) == 2, (
f"Expected finish_reason chunks for 2 indices, got {len(finish_reason_chunks)}"
)
# Verify both index 0 and 1 have finish_reason
assert 0 in finish_reason_chunks, "Missing finish_reason chunk for index 0"
@@ -718,7 +718,9 @@ class TestOpenAIServerFunctionCalling:
assert reasons[-1] in [
"stop",
"length",
], f"Expected finish_reason 'stop' or 'length' for index {index}, got {reasons[-1]}"
], (
f"Expected finish_reason 'stop' or 'length' for index {index}, got {reasons[-1]}"
)
# =============================================================================
@@ -749,9 +751,9 @@ class TestOpenAIPythonicFunctionCalling:
assert isinstance(tool_calls, list), "No tool_calls found"
assert len(tool_calls) >= 1
names = [tc.function.name for tc in tool_calls]
assert (
"get_weather" in names or "get_tourist_attractions" in names
), f"Function name '{names}' should contain either 'get_weather' or 'get_tourist_attractions'"
assert "get_weather" in names or "get_tourist_attractions" in names, (
f"Function name '{names}' should contain either 'get_weather' or 'get_tourist_attractions'"
)
def test_pythonic_tool_call_streaming(self, setup_backend):
"""Test: Streaming pythonic tool call format; assert tool_call index is present."""
@@ -782,7 +784,9 @@ class TestOpenAIPythonicFunctionCalling:
assert found_index, "No index field found in any streamed tool_call"
assert (
"get_weather" in found_names or "get_tourist_attractions" in found_names
), f"Function name '{found_names}' should contain either 'get_weather' or 'get_tourist_attractions'"
), (
f"Function name '{found_names}' should contain either 'get_weather' or 'get_tourist_attractions'"
)
# =============================================================================
@@ -1132,13 +1136,13 @@ class _TestToolChoiceBase:
tool_call["id"] = tool_call_delta.id
if tool_call_delta.function:
if tool_call_delta.function.name:
tool_call["function"][
"name"
] = tool_call_delta.function.name
tool_call["function"]["name"] = (
tool_call_delta.function.name
)
if tool_call_delta.function.arguments:
tool_call["function"][
"arguments"
] += tool_call_delta.function.arguments
tool_call["function"]["arguments"] += (
tool_call_delta.function.arguments
)
assert len(tool_calls_by_index) > 0
@@ -1271,9 +1275,9 @@ class _TestToolChoiceBase:
assert len(tool_calls) == 2, f"Expected 2 tool calls, got {len(tool_calls)}"
called_functions = {call.function.name for call in tool_calls}
assert (
called_functions == expected_functions
), f"Expected functions {expected_functions}, got {called_functions}"
assert called_functions == expected_functions, (
f"Expected functions {expected_functions}, got {called_functions}"
)
def test_multi_tool_scenario_required(self, setup_backend):
"""Test multi-tool scenario with tool_choice='required'."""
@@ -1307,9 +1311,9 @@ class _TestToolChoiceBase:
if self._is_flaky_test("test_multi_tool_scenario_required"):
# For flaky tests, just ensure basic functionality works
assert (
len(tool_calls) > 0
), f"Expected at least 1 tool call, got {len(tool_calls)}"
assert len(tool_calls) > 0, (
f"Expected at least 1 tool call, got {len(tool_calls)}"
)
for call in tool_calls:
assert call.function.name in available_names
else:
@@ -1317,9 +1321,9 @@ class _TestToolChoiceBase:
assert len(tool_calls) == 2, f"Expected 2 tool calls, got {len(tool_calls)}"
called_functions = {call.function.name for call in tool_calls}
assert (
called_functions == expected_functions
), f"Expected functions {expected_functions}, got {called_functions}"
assert called_functions == expected_functions, (
f"Expected functions {expected_functions}, got {called_functions}"
)
def test_error_handling_invalid_tool_choice(self, setup_backend):
"""Test error handling for invalid tool_choice."""
@@ -172,9 +172,9 @@ The SmartHome Mini is a compact smart home assistant available in black or white
ret_num_top_logprobs = len(
response.choices[0].logprobs.content[0].top_logprobs
)
assert (
ret_num_top_logprobs == logprobs
), f"{ret_num_top_logprobs} vs {logprobs}"
assert ret_num_top_logprobs == logprobs, (
f"{ret_num_top_logprobs} vs {logprobs}"
)
assert len(response.choices) == parallel_sample_num
assert response.choices[0].message.role == "assistant"
@@ -223,9 +223,9 @@ The SmartHome Mini is a compact smart home assistant available in black or white
data = response.choices[0].delta
if is_firsts.get(index, True):
assert (
data.role == "assistant"
), "data.role was not 'assistant' for first chunk"
assert data.role == "assistant", (
"data.role was not 'assistant' for first chunk"
)
is_firsts[index] = False
continue
@@ -240,9 +240,9 @@ The SmartHome Mini is a compact smart home assistant available in black or white
ret_num_top_logprobs = len(
response.choices[0].logprobs.content[0].top_logprobs
)
assert (
ret_num_top_logprobs == logprobs
), f"{ret_num_top_logprobs} vs {logprobs}"
assert ret_num_top_logprobs == logprobs, (
f"{ret_num_top_logprobs} vs {logprobs}"
)
assert (
isinstance(data.content, str)
@@ -254,14 +254,14 @@ The SmartHome Mini is a compact smart home assistant available in black or white
assert response.created
for index in range(parallel_sample_num):
assert not is_firsts.get(
index, True
), f"index {index} is not found in the response"
assert not is_firsts.get(index, True), (
f"index {index} is not found in the response"
)
for index in range(parallel_sample_num):
assert (
index in finish_reason_counts
), f"No finish_reason found for index {index}"
assert index in finish_reason_counts, (
f"No finish_reason found for index {index}"
)
assert finish_reason_counts[index] == 1, (
f"Expected 1 finish_reason chunk for index {index}, "
f"got {finish_reason_counts[index]}"
@@ -91,9 +91,9 @@ class TestIgnoreEOS:
# The ignore_eos response should either:
# 1. Have more tokens than the default response (if default stopped at EOS before max_tokens)
# 2. Have exactly max_tokens (if it reached the max_tokens limit)
assert (
ignore_eos_tokens > default_tokens or ignore_eos_tokens >= max_tokens
), f"ignore_eos did not generate more tokens: {ignore_eos_tokens} vs {default_tokens}"
assert ignore_eos_tokens > default_tokens or ignore_eos_tokens >= max_tokens, (
f"ignore_eos did not generate more tokens: {ignore_eos_tokens} vs {default_tokens}"
)
assert response_ignore_eos.choices[0].finish_reason == "length", (
f"Expected finish_reason='length' for ignore_eos=True, "
@@ -158,9 +158,9 @@ class TestLargeMaxNewTokens:
# Verify all requests completed successfully
assert len(responses) == num_requests
for i, response in enumerate(responses):
assert response.choices[
0
].message.content, f"Request {i} returned empty content"
assert response.choices[0].message.content, (
f"Request {i} returned empty content"
)
assert response.choices[0].finish_reason in ("stop", "length"), (
f"Request {i} had unexpected finish_reason: "
f"{response.choices[0].finish_reason}"