Add more refactored openai test & in CI (#7284)
This commit is contained in:
@@ -1,16 +1,52 @@
|
||||
# sglang/test/srt/openai/test_server.py
|
||||
import pytest
|
||||
import requests
|
||||
|
||||
from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST as MODEL_ID
|
||||
|
||||
|
||||
def test_health(openai_server: str):
|
||||
r = requests.get(f"{openai_server}/health")
|
||||
assert r.status_code == 200, r.text
|
||||
assert r.status_code == 200
|
||||
# FastAPI returns an empty body → r.text == ""
|
||||
assert r.text == ""
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason="Endpoint skeleton not implemented yet")
|
||||
def test_models_endpoint(openai_server: str):
|
||||
r = requests.get(f"{openai_server}/v1/models")
|
||||
# once implemented this should be 200
|
||||
assert r.status_code == 200
|
||||
assert r.status_code == 200, r.text
|
||||
payload = r.json()
|
||||
|
||||
# Basic contract
|
||||
assert "data" in payload and isinstance(payload["data"], list) and payload["data"]
|
||||
|
||||
# Validate fields of the first model card
|
||||
first = payload["data"][0]
|
||||
for key in ("id", "root", "max_model_len"):
|
||||
assert key in first, f"missing {key} in {first}"
|
||||
|
||||
# max_model_len must be positive
|
||||
assert isinstance(first["max_model_len"], int) and first["max_model_len"] > 0
|
||||
|
||||
# The server should report the same model id we launched it with
|
||||
ids = {m["id"] for m in payload["data"]}
|
||||
assert MODEL_ID in ids
|
||||
|
||||
|
||||
def test_get_model_info(openai_server: str):
|
||||
r = requests.get(f"{openai_server}/get_model_info")
|
||||
assert r.status_code == 200, r.text
|
||||
info = r.json()
|
||||
|
||||
expected_keys = {"model_path", "tokenizer_path", "is_generation"}
|
||||
assert expected_keys.issubset(info.keys())
|
||||
|
||||
# model_path must end with the one we passed on the CLI
|
||||
assert info["model_path"].endswith(MODEL_ID)
|
||||
|
||||
# is_generation is documented as a boolean
|
||||
assert isinstance(info["is_generation"], bool)
|
||||
|
||||
|
||||
def test_unknown_route_returns_404(openai_server: str):
|
||||
r = requests.get(f"{openai_server}/definitely-not-a-real-route")
|
||||
assert r.status_code == 404
|
||||
|
||||
Reference in New Issue
Block a user