chore: import upstream snapshot with attribution
tests / ragflow_tests_infinity (push) Has been cancelled
tests / ragflow_tests_elasticsearch (push) Has been cancelled
sep-tests / ragflow_preflight (push) Has been cancelled
sep-tests / ragflow_tests_infinity (push) Has been cancelled
sep-tests / ragflow_tests_elasticsearch (push) Has been cancelled
tests / ragflow_preflight (push) Has been cancelled
tests / ragflow_tests_infinity (push) Has been cancelled
tests / ragflow_tests_elasticsearch (push) Has been cancelled
sep-tests / ragflow_preflight (push) Has been cancelled
sep-tests / ragflow_tests_infinity (push) Has been cancelled
sep-tests / ragflow_tests_elasticsearch (push) Has been cancelled
tests / ragflow_preflight (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#
|
||||
# Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
from api.utils import api_utils
|
||||
|
||||
|
||||
def test_get_data_openai_stream_chunk_matches_openai_shape(monkeypatch):
|
||||
monkeypatch.setattr(api_utils.time, "time", lambda: 1234567890.9)
|
||||
|
||||
data = api_utils.get_data_openai(id="chatcmpl-test", model="test-model", content="chunk", stream=True)
|
||||
|
||||
assert data == {
|
||||
"id": "chatcmpl-test",
|
||||
"object": "chat.completion.chunk",
|
||||
"created": 1234567890,
|
||||
"model": "test-model",
|
||||
"system_fingerprint": "",
|
||||
"usage": None,
|
||||
"choices": [
|
||||
{
|
||||
"delta": {
|
||||
"content": "chunk",
|
||||
"role": "assistant",
|
||||
"function_call": None,
|
||||
"tool_calls": None,
|
||||
},
|
||||
"finish_reason": None,
|
||||
"index": 0,
|
||||
"logprobs": None,
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def test_get_data_openai_stream_preserves_explicit_created_value():
|
||||
data = api_utils.get_data_openai(created=0, content="chunk", stream=True)
|
||||
|
||||
assert data["created"] == 0
|
||||
|
||||
|
||||
def test_get_data_openai_terminal_stream_chunk_includes_usage():
|
||||
data = api_utils.get_data_openai(prompt_tokens=3, completion_tokens=5, content=None, finish_reason="stop", stream=True)
|
||||
|
||||
assert data["usage"] == {
|
||||
"prompt_tokens": 3,
|
||||
"completion_tokens": 5,
|
||||
"total_tokens": 8,
|
||||
"completion_tokens_details": {
|
||||
"reasoning_tokens": 0,
|
||||
"accepted_prediction_tokens": 0,
|
||||
"rejected_prediction_tokens": 0,
|
||||
},
|
||||
}
|
||||
assert data["choices"][0]["finish_reason"] == "stop"
|
||||
|
||||
|
||||
def test_get_data_openai_stream_delta_allows_reference_payload():
|
||||
data = api_utils.get_data_openai(content="chunk", stream=True)
|
||||
|
||||
data["choices"][0]["delta"]["reference"] = {"chunks": []}
|
||||
|
||||
assert data["choices"][0]["delta"]["reference"] == {"chunks": []}
|
||||
Reference in New Issue
Block a user