11# SPDX-License-Identifier: Apache-2.0
22# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
33
4+ import logging
45from unittest .mock import MagicMock , patch
56
67from vllm .entrypoints .serve .utils .request_logger import RequestLogger
@@ -27,10 +28,10 @@ def test_request_logger_log_outputs():
2728 mock_logger .info .assert_called_once ()
2829 call_args = mock_logger .info .call_args .args
2930 assert "Generated response %s%s" in call_args [0 ]
31+ assert "output_token_ids" not in call_args [0 ]
3032 assert call_args [1 ] == "test-123"
3133 assert call_args [3 ] == "Hello, world!"
32- assert call_args [4 ] == [1 , 2 , 3 , 4 ]
33- assert call_args [5 ] == "stop"
34+ assert call_args [4 ] == "stop"
3435
3536
3637def test_request_logger_log_outputs_streaming_delta ():
@@ -56,8 +57,7 @@ def test_request_logger_log_outputs_streaming_delta():
5657 assert call_args [1 ] == "test-456"
5758 assert call_args [2 ] == " (streaming delta)"
5859 assert call_args [3 ] == "Hello"
59- assert call_args [4 ] == [1 ]
60- assert call_args [5 ] is None
60+ assert call_args [4 ] is None
6161
6262
6363def test_request_logger_log_outputs_streaming_complete ():
@@ -83,8 +83,7 @@ def test_request_logger_log_outputs_streaming_complete():
8383 assert call_args [1 ] == "test-789"
8484 assert call_args [2 ] == " (streaming complete)"
8585 assert call_args [3 ] == "Complete response"
86- assert call_args [4 ] == [1 , 2 , 3 ]
87- assert call_args [5 ] == "length"
86+ assert call_args [4 ] == "length"
8887
8988
9089def test_request_logger_log_outputs_with_truncation ():
@@ -117,11 +116,37 @@ def test_request_logger_log_outputs_with_truncation():
117116 assert len (logged_output ) == 10
118117
119118 # Check that token IDs were truncated to first 10 tokens
120- logged_token_ids = call_args [0 ][4 ]
119+ mock_logger .debug .assert_called_once ()
120+ logged_token_ids = mock_logger .debug .call_args .args [3 ]
121121 assert logged_token_ids == list (range (10 ))
122122 assert len (logged_token_ids ) == 10
123123
124124
125+ def test_request_logger_log_output_token_ids_require_debug ():
126+ mock_logger = MagicMock ()
127+ mock_logger .isEnabledFor .side_effect = lambda level : level >= logging .INFO
128+
129+ with patch ("vllm.entrypoints.serve.utils.request_logger.logger" , mock_logger ):
130+ request_logger = RequestLogger (max_log_len = 4 )
131+
132+ request_logger .log_outputs (
133+ request_id = "test-no-token-ids" ,
134+ outputs = "Test output" ,
135+ output_token_ids = [1 , 2 , 3 ],
136+ finish_reason = "stop" ,
137+ )
138+
139+ mock_logger .info .assert_called_once ()
140+ assert mock_logger .info .call_args .args == (
141+ "Generated response %s%s: output: %r, finish_reason: %s" ,
142+ "test-no-token-ids" ,
143+ "" ,
144+ "Test" ,
145+ "stop" ,
146+ )
147+ mock_logger .debug .assert_not_called ()
148+
149+
125150def test_request_logger_log_outputs_none_values ():
126151 """Test log_outputs handles None values correctly."""
127152 mock_logger = MagicMock ()
@@ -144,8 +169,7 @@ def test_request_logger_log_outputs_none_values():
144169 assert "Generated response %s%s" in call_args [0 ]
145170 assert call_args [1 ] == "test-none"
146171 assert call_args [3 ] == "Test output"
147- assert call_args [4 ] is None
148- assert call_args [5 ] == "stop"
172+ assert call_args [4 ] == "stop"
149173
150174
151175def test_request_logger_log_outputs_empty_output ():
@@ -170,8 +194,7 @@ def test_request_logger_log_outputs_empty_output():
170194 assert "Generated response %s%s" in call_args [0 ]
171195 assert call_args [1 ] == "test-empty"
172196 assert call_args [3 ] == ""
173- assert call_args [4 ] == []
174- assert call_args [5 ] == "stop"
197+ assert call_args [4 ] == "stop"
175198
176199
177200def test_request_logger_log_outputs_integration ():
@@ -245,4 +268,4 @@ def test_streaming_complete_logs_full_text_content():
245268 # Verify other parameters
246269 assert call_args [1 ] == "test-streaming-full-text"
247270 assert call_args [2 ] == " (streaming complete)"
248- assert call_args [5 ] == "streaming_complete"
271+ assert call_args [4 ] == "streaming_complete"
0 commit comments