Skip to content

Commit 879c5eb

Browse files
committed
add invalid cases
1 parent 8aaf69a commit 879c5eb

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

examples/server/tests/unit/test_chat_completion.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,22 @@ def test_completion_with_response_format(response_format: dict, n_predicted: int
127127
assert res.status_code != 200
128128
assert "error" in res.body
129129

130+
131+
@pytest.mark.parametrize("messages", [
132+
None,
133+
"string",
134+
[123],
135+
[{}],
136+
[{"role": 123}],
137+
[{"role": "system", "content": 123}],
138+
# [{"content": "hello"}], # TODO: should not be a valid case
139+
[{"role": "system", "content": "test"}, {}],
140+
])
141+
def test_invalid_chat_completion_req(messages):
142+
global server
143+
server.start()
144+
res = server.make_request("POST", "/chat/completions", data={
145+
"messages": messages,
146+
})
147+
assert res.status_code == 400 or res.status_code == 500
148+
assert "error" in res.body

examples/server/tests/unit/test_infill.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def create_server():
88
global server
99
server = ServerPreset.tinyllama_infill()
1010

11+
1112
def test_infill_without_input_extra():
1213
global server
1314
server.start()
@@ -19,6 +20,7 @@ def test_infill_without_input_extra():
1920
assert res.status_code == 200
2021
assert match_regex("(One|day|she|saw|big|scary|bird)+", res.body["content"])
2122

23+
2224
def test_infill_with_input_extra():
2325
global server
2426
server.start()
@@ -33,3 +35,23 @@ def test_infill_with_input_extra():
3335
})
3436
assert res.status_code == 200
3537
assert match_regex("(cuts|Jimmy|mom|came|into|the|room)+", res.body["content"])
38+
39+
40+
@pytest.mark.parametrize("input_extra", [
41+
{},
42+
{"filename": "ok"},
43+
{"filename": 123},
44+
{"filename": 123, "text": "abc"},
45+
{"filename": 123, "text": 456},
46+
])
47+
def test_invalid_input_extra_req(input_extra):
48+
global server
49+
server.start()
50+
res = server.make_request("POST", "/infill", data={
51+
"prompt": "Complete this",
52+
"input_extra": [input_extra],
53+
"input_prefix": "#include <cstdio>\n#include \"llama.h\"\n\nint main() {\n int n_threads = llama_",
54+
"input_suffix": "}\n",
55+
})
56+
assert res.status_code == 400
57+
assert "error" in res.body

examples/server/tests/unit/test_rerank.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,20 @@ def test_rerank():
3636
assert most_relevant["relevance_score"] > least_relevant["relevance_score"]
3737
assert most_relevant["index"] == 2
3838
assert least_relevant["index"] == 3
39+
40+
41+
@pytest.mark.parametrize("documents", [
42+
[],
43+
None,
44+
123,
45+
[1, 2, 3],
46+
])
47+
def test_invalid_rerank_req(documents):
48+
global server
49+
server.start()
50+
res = server.make_request("POST", "/rerank", data={
51+
"query": "Machine learning is",
52+
"documents": documents,
53+
})
54+
assert res.status_code == 400
55+
assert "error" in res.body

0 commit comments

Comments
 (0)