From c7ba1f6bc762af8f231e6ee885725e7401d74578 Mon Sep 17 00:00:00 2001 From: maang-h <55082429+maang-h@users.noreply.github.com> Date: Fri, 28 Nov 2025 13:42:30 +0800 Subject: [PATCH] [BugFix] Fix ValueError in NewRequestData repr methods (#29392) Signed-off-by: maang --- tests/v1/core/test_output.py | 36 ++++++++++++++++++++++++++++++++++++ vllm/v1/core/sched/output.py | 8 ++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 tests/v1/core/test_output.py diff --git a/tests/v1/core/test_output.py b/tests/v1/core/test_output.py new file mode 100644 index 000000000000..9dea19320e61 --- /dev/null +++ b/tests/v1/core/test_output.py @@ -0,0 +1,36 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +import torch + +from vllm.v1.core.sched.output import NewRequestData + + +def _create_new_requests_data(prompt_embeds: torch.Tensor | None) -> NewRequestData: + return NewRequestData( + req_id="test_req", + prompt_token_ids=None, + mm_features=[], + sampling_params=None, + pooling_params=None, + block_ids=([],), + num_computed_tokens=0, + lora_request=None, + prompt_embeds=prompt_embeds, + ) + + +def test_repr_with_none() -> None: + """Test repr when prompt_embeds is None.""" + new_requests_data = _create_new_requests_data(None) + + assert "prompt_embeds_shape=None" in repr(new_requests_data) + assert "prompt_embeds_shape=None" in new_requests_data.anon_repr() + + +def test_repr_with_multi_element_tensor() -> None: + """Test repr when prompt_embeds is a multi-element tensor.""" + prompt_embeds = torch.randn(10, 768) + new_requests_data = _create_new_requests_data(prompt_embeds) + + assert "prompt_embeds_shape=torch.Size([10, 768])" in repr(new_requests_data) + assert "prompt_embeds_shape=torch.Size([10, 768])" in new_requests_data.anon_repr() diff --git a/vllm/v1/core/sched/output.py b/vllm/v1/core/sched/output.py index abfab43499b2..b69fa87ebddc 100644 --- a/vllm/v1/core/sched/output.py +++ b/vllm/v1/core/sched/output.py @@ -68,7 +68,9 @@ class NewRequestData: ) def __repr__(self) -> str: - prompt_embeds_shape = self.prompt_embeds.shape if self.prompt_embeds else None + prompt_embeds_shape = ( + self.prompt_embeds.shape if self.prompt_embeds is not None else None + ) return ( f"NewRequestData(" f"req_id={self.req_id}," @@ -88,7 +90,9 @@ class NewRequestData: prompt_token_ids_len = ( len(self.prompt_token_ids) if self.prompt_token_ids is not None else None ) - prompt_embeds_shape = self.prompt_embeds.shape if self.prompt_embeds else None + prompt_embeds_shape = ( + self.prompt_embeds.shape if self.prompt_embeds is not None else None + ) return ( f"NewRequestData(" f"req_id={self.req_id},"