Files
FastDeploy/tests/engine/test_decode_token.py
guozhuangzhuang 1531004085
Some checks failed
CE Compile Job / ce_job_pre_check (push) Has been cancelled
CE Compile Job / print_ce_job_pre_check_outputs (push) Has been cancelled
CE Compile Job / FD-Clone-Linux (push) Has been cancelled
CE Compile Job / Show Code Archive Output (push) Has been cancelled
CE Compile Job / BUILD_SM8090 (push) Has been cancelled
CE Compile Job / BUILD_SM8689 (push) Has been cancelled
CE Compile Job / CE_UPLOAD (push) Has been cancelled
fix image token output (#4487)
* fix

* fix

* fix

* add test case

* add test case

* add test case
2025-10-22 14:59:05 +08:00

52 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import unittest
from unittest.mock import MagicMock, patch
class DummyDataProcessor:
def __init__(self):
self.decode_status = {}
def ids2tokens(self, token_ids, req_id):
return "", [], None
class TestDecodeToken(unittest.TestCase):
@patch("fastdeploy.engine.common_engine.EngineSevice.__init__", return_value=None)
def setUp(self, mock_init):
from fastdeploy.engine.common_engine import EngineSevice
self.obj = EngineSevice(None)
self.obj.data_processor = DummyDataProcessor()
@patch("fastdeploy.engine.common_engine.envs.FD_ENABLE_RETURN_TEXT", True)
def test_decode_token_with_text(self):
"""测试env 启用 + 返回非空 delta_text"""
self.obj.data_processor.ids2tokens = MagicMock(return_value=("hello", [10, 11, 12, 13], None))
self.obj.data_processor.decode_status = {"req_1": (1, 3)}
delta_text, token_ids = self.obj._decode_token([1, 2, 3], "req_1", is_end=False)
assert delta_text == "hello"
assert token_ids == [11, 12]
@patch("fastdeploy.engine.common_engine.envs.FD_ENABLE_RETURN_TEXT", True)
def test_decode_token_empty_text(self):
"""测试env 启用 + 返回空 delta_text"""
self.obj.data_processor.ids2tokens = MagicMock(return_value=("", [10, 11, 12], None))
self.obj.data_processor.decode_status = {"req_1": (0, 2)}
delta_text, token_ids = self.obj._decode_token([1, 2], "req_1", is_end=False)
assert delta_text == ""
assert token_ids == []
@patch("fastdeploy.engine.common_engine.envs.FD_ENABLE_RETURN_TEXT", True)
def test_decode_token_with_is_end(self):
"""测试is_end=True 时 decode_status 被删除"""
self.obj.data_processor.ids2tokens = MagicMock(return_value=("bye", [1, 2, 3, 4], None))
self.obj.data_processor.decode_status = {"req_2": (0, 2)}
delta_text, token_ids = self.obj._decode_token([1, 2, 3], "req_2", is_end=True)
assert "req_2" not in self.obj.data_processor.decode_status