Skip to content

Commit 0b865c9

Browse files
committed
Update test mocks
1 parent 9b77c53 commit 0b865c9

File tree

3 files changed

+51
-18
lines changed

3 files changed

+51
-18
lines changed

tests/conftest.py

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
@pytest.fixture
1111
def mock_openai_chatcompletion(monkeypatch):
1212
class AsyncChatCompletionIterator:
13-
def __init__(self, answer: str):
13+
def __init__(self, reasoning: str, answer: str):
1414
self.chunk_index = 0
1515
self.chunks = [
1616
openai.types.chat.ChatCompletionChunk(
@@ -32,10 +32,41 @@ def __init__(self, answer: str):
3232
],
3333
)
3434
]
35+
reasoning_deltas = reasoning.split(" ")
36+
for reasoning_index, reasoning_delta in enumerate(reasoning_deltas):
37+
# Text completion chunks include whitespace, so we need to add it back in
38+
if reasoning_index > 0:
39+
answer_delta = " " + reasoning_delta
40+
self.chunks.append(
41+
openai.types.chat.ChatCompletionChunk(
42+
id="test-123",
43+
object="chat.completion.chunk",
44+
choices=[
45+
openai.types.chat.chat_completion_chunk.Choice(
46+
delta=openai.types.chat.chat_completion_chunk.ChoiceDelta(
47+
role=None, reasoning_content=reasoning_delta
48+
),
49+
finish_reason=None,
50+
index=0,
51+
logprobs=None,
52+
# Only Azure includes content_filter_results
53+
content_filter_results={
54+
"hate": {"filtered": False, "severity": "safe"},
55+
"self_harm": {"filtered": False, "severity": "safe"},
56+
"sexual": {"filtered": False, "severity": "safe"},
57+
"violence": {"filtered": False, "severity": "safe"},
58+
},
59+
)
60+
],
61+
created=1703462735,
62+
model="DeepSeek-R1",
63+
)
64+
)
65+
3566
answer_deltas = answer.split(" ")
3667
for answer_index, answer_delta in enumerate(answer_deltas):
3768
# Text completion chunks include whitespace, so we need to add it back in
38-
if answer_index > 0 and answer_delta != "</think>":
69+
if answer_index > 0:
3970
answer_delta = " " + answer_delta
4071
self.chunks.append(
4172
openai.types.chat.ChatCompletionChunk(
@@ -95,9 +126,9 @@ async def mock_acreate(*args, **kwargs):
95126
# Only mock a stream=True completion
96127
last_message = kwargs.get("messages")[-1]["content"]
97128
if last_message == "What is the capital of France?":
98-
return AsyncChatCompletionIterator("<think> hmm </think> The capital of France is Paris.")
129+
return AsyncChatCompletionIterator("hmm", "The capital of France is Paris.")
99130
elif last_message == "What is the capital of Germany?":
100-
return AsyncChatCompletionIterator("<think> hmm </think> The capital of Germany is Berlin.")
131+
return AsyncChatCompletionIterator("hmm", "The capital of Germany is Berlin.")
101132
else:
102133
raise ValueError(f"Unexpected message: {last_message}")
103134

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
{"delta": {"content": null, "reasoning_content": " hmm", "role": "assistant"}}
2-
{"delta": {"content": " The", "reasoning_content": null, "role": "assistant"}}
3-
{"delta": {"content": " capital", "reasoning_content": null, "role": "assistant"}}
4-
{"delta": {"content": " of", "reasoning_content": null, "role": "assistant"}}
5-
{"delta": {"content": " France", "reasoning_content": null, "role": "assistant"}}
6-
{"delta": {"content": " is", "reasoning_content": null, "role": "assistant"}}
7-
{"delta": {"content": " Paris.", "reasoning_content": null, "role": "assistant"}}
1+
{"delta":{"content":null,"function_call":null,"refusal":null,"role":null,"tool_calls":null,"reasoning_content":"hmm"},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
2+
{"delta":{"content":"The","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
3+
{"delta":{"content":" capital","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
4+
{"delta":{"content":" of","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
5+
{"delta":{"content":" France","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
6+
{"delta":{"content":" is","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
7+
{"delta":{"content":" Paris.","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
8+
{"delta":{"content":null,"function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":"stop","index":0,"logprobs":null,"content_filter_results":{}}
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
{"delta": {"content": null, "reasoning_content": " hmm", "role": "assistant"}}
2-
{"delta": {"content": " The", "reasoning_content": null, "role": "assistant"}}
3-
{"delta": {"content": " capital", "reasoning_content": null, "role": "assistant"}}
4-
{"delta": {"content": " of", "reasoning_content": null, "role": "assistant"}}
5-
{"delta": {"content": " Germany", "reasoning_content": null, "role": "assistant"}}
6-
{"delta": {"content": " is", "reasoning_content": null, "role": "assistant"}}
7-
{"delta": {"content": " Berlin.", "reasoning_content": null, "role": "assistant"}}
1+
{"delta":{"content":null,"function_call":null,"refusal":null,"role":null,"tool_calls":null,"reasoning_content":"hmm"},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
2+
{"delta":{"content":"The","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
3+
{"delta":{"content":" capital","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
4+
{"delta":{"content":" of","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
5+
{"delta":{"content":" Germany","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
6+
{"delta":{"content":" is","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
7+
{"delta":{"content":" Berlin.","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null,"content_filter_results":{"hate":{"filtered":false,"severity":"safe"},"self_harm":{"filtered":false,"severity":"safe"},"sexual":{"filtered":false,"severity":"safe"},"violence":{"filtered":false,"severity":"safe"}}}
8+
{"delta":{"content":null,"function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":"stop","index":0,"logprobs":null,"content_filter_results":{}}

0 commit comments

Comments
 (0)