mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-12-24 13:28:13 +08:00
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 * fix * fix * add test case * add test case * add test case
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import time
|
|
from unittest import TestCase
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
|
|
class TestZmqSendGeneratedTokens(TestCase):
|
|
@patch("time.sleep", return_value=None)
|
|
@patch("fastdeploy.engine.common_engine.EngineSevice.__init__", return_value=None)
|
|
def setUp(self, mock_init, mock_sleep):
|
|
from fastdeploy.engine.common_engine import EngineSevice
|
|
|
|
self.obj = EngineSevice(None)
|
|
self.obj.running = True
|
|
|
|
# mock 依赖组件
|
|
self.obj.scheduler = MagicMock()
|
|
self.obj.send_response_server = MagicMock()
|
|
self.obj._decode_token = MagicMock()
|
|
self.obj._decode_token.return_value = ("decoded_text", [101, 102])
|
|
self.obj.llm_logger = MagicMock()
|
|
|
|
def test_zmq_send_generated_tokens_normal_case(self):
|
|
mock_output = MagicMock()
|
|
mock_output.outputs.decode_type = 0
|
|
mock_output.outputs.token_ids = [1, 2, 3]
|
|
mock_output.finished = True
|
|
|
|
self.obj.scheduler.get_results.side_effect = [
|
|
{"req_1": [mock_output]},
|
|
{},
|
|
]
|
|
|
|
def stop_running():
|
|
time.sleep(0.01)
|
|
self.obj.running = False
|
|
|
|
import threading
|
|
|
|
threading.Thread(target=stop_running).start()
|
|
|
|
self.obj._zmq_send_generated_tokens()
|
|
|
|
self.obj.send_response_server.send_response.assert_called_once()
|
|
args, kwargs = self.obj.send_response_server.send_response.call_args
|
|
assert args[0] == "req_1"
|
|
assert isinstance(args[1], list)
|
|
assert args[1][0].outputs.text == "decoded_text"
|