File size: 3,229 Bytes
222d3d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | from pydantic_core import from_json
from mcpuniverse.app.api.task import CreateTaskResponse, GetTaskResponse
class TestTaskAPI:
def test_task(self, client):
benchmark_name = "test_benchmark"
name = "test_task"
category = "test"
question = "How to test"
config = "{}"
response = client.post(
"/internal/benchmark/create",
json={"name": benchmark_name, "description": "A test benchmark"},
headers={"x-user-id": "12345"}
)
assert response.status_code == 200
response = client.post(
"/internal/task/create",
json={
"benchmark_name": benchmark_name,
"name": name,
"category": category,
"question": question,
"config": config
},
headers={"x-user-id": "12345"}
)
assert response.status_code == 200
r = CreateTaskResponse.model_validate(from_json(response.text))
assert r.name == name and r.benchmark_name == benchmark_name
response = client.get(
f"/internal/task/get?benchmark_name={benchmark_name}&name={name}",
headers={"x-user-id": "12345"}
)
assert response.status_code == 200
r = GetTaskResponse.model_validate(from_json(response.text))
assert r.name == name and r.benchmark_name == benchmark_name
assert r.category == category and r.question == question
response = client.get(
f"/internal/task/get?benchmark_name=xxx&name={name}",
headers={"x-user-id": "12345"}
)
assert response.status_code == 404
response = client.post(
"/internal/task/update",
json={
"benchmark_name": benchmark_name,
"name": name,
"question": "A new question"
},
headers={"x-user-id": "12345"}
)
assert response.status_code == 200
response = client.get(
f"/internal/task/get?benchmark_name={benchmark_name}&name={name}",
headers={"x-user-id": "12345"}
)
r = GetTaskResponse.model_validate(from_json(response.text))
assert r.name == name and r.benchmark_name == benchmark_name
assert r.category == category and r.question == "A new question"
assert r.is_public == True
response = client.post(
"/internal/task/update",
json={
"benchmark_name": benchmark_name,
"name": name,
"is_public": "false"
},
headers={"x-user-id": "12345"}
)
assert response.status_code == 200
response = client.get(
f"/internal/task/get?benchmark_name={benchmark_name}&name={name}",
headers={"x-user-id": "12345"}
)
r = GetTaskResponse.model_validate(from_json(response.text))
assert r.is_public == False
response = client.post(
f"/internal/task/delete?benchmark_name={benchmark_name}&name={name}",
headers={"x-user-id": "12345"}
)
assert response.status_code == 200
|