Files
didactyl/tests/suites/test_errors.py

39 lines
1.4 KiB
Python

from __future__ import annotations
from tests.harness.test_runner import TestCase
SUITE = "test_errors"
def _invalid_json(ctx):
code, body = ctx.client.raw_post("/api/prompt/agent", b"{not json")
assert code == 400, f"expected 400, got {code} body={body}"
return True, "invalid json rejected", {"status": code}
def _missing_message(ctx):
code, body = ctx.client.raw_post("/api/prompt/agent", b"{}")
assert code == 400, f"expected 400, got {code} body={body}"
return True, "missing message rejected", {"status": code}
def _unknown_endpoint(ctx):
code, _body = ctx.client.raw_post("/api/nonexistent", b"{}")
assert code == 404, f"expected 404, got {code}"
return True, "unknown endpoint 404", {"status": code}
def _webhook_nonexistent(ctx):
code, _body = ctx.client.raw_post("/api/trigger/nonexistent-dtag", b"{}")
assert code == 404, f"expected 404, got {code}"
return True, "nonexistent d_tag 404", {"status": code}
def get_tests():
return [
TestCase(SUITE, "invalid_json_body", "Malformed JSON rejected", _invalid_json),
TestCase(SUITE, "missing_message_field", "Missing message field rejected", _missing_message),
TestCase(SUITE, "unknown_endpoint", "Unknown endpoint returns 404", _unknown_endpoint),
TestCase(SUITE, "webhook_nonexistent_dtag", "Unknown webhook dtag returns 404", _webhook_nonexistent),
]