feat(nlp-service): cap /parse query at 500 chars via Field(max_length=500)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Literal
|
from typing import Literal
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
|
||||||
class ParseRequest(BaseModel):
|
class ParseRequest(BaseModel):
|
||||||
query: str
|
query: str = Field(max_length=500)
|
||||||
lang: Literal["de", "en", "es"]
|
lang: Literal["de", "en", "es"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ def test_parse_all_languages(client):
|
|||||||
assert r.json()["dateTo"] == "1920-12-31", f"Wrong dateTo for lang={lang}"
|
assert r.json()["dateTo"] == "1920-12-31", f"Wrong dateTo for lang={lang}"
|
||||||
|
|
||||||
|
|
||||||
|
def test_parse_exceeds_max_length_returns_422(client):
|
||||||
|
r = client.post("/parse", json={"query": "a" * 501, "lang": "de"})
|
||||||
|
assert r.status_code == 422
|
||||||
|
|
||||||
|
|
||||||
def test_parse_internal_exception_does_not_leak_detail(client, monkeypatch):
|
def test_parse_internal_exception_does_not_leak_detail(client, monkeypatch):
|
||||||
"""500 errors must return generic message — never expose internal details."""
|
"""500 errors must return generic message — never expose internal details."""
|
||||||
import main as main_module
|
import main as main_module
|
||||||
|
|||||||
Reference in New Issue
Block a user