API: MIME вложения только ASCII, иначе octet-stream (#83)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
71c15d1830
commit
5fdcc50451
@ -31,7 +31,7 @@ ASSET_CACHE = {"Cache-Control": "public, max-age=31536000, immutable"} # им
|
||||
NOT_BUILT = ("<!doctype html><meta charset=\"utf-8\"><title>Хаб Jira</title><p>Веб-приложение не собрано: выполните "
|
||||
"<code>make web</code> в каталоге jira-hub и перезапустите хаб.</p>").encode("utf-8")
|
||||
SOCKET_TIMEOUT = 60 # чтение запроса; ожидание долгого claim идёт уже после чтения тела и сокет не держит
|
||||
MIME_RE = re.compile(r"[\w!#$&^.+-]+/[\w!#$&^.+-]+") # тип/подтип без параметров и пробелов: заголовок не внушить
|
||||
MIME_RE = re.compile(r"[\w!#$&^.+-]+/[\w!#$&^.+-]+", re.ASCII) # тип/подтип без параметров, пробелов и не-ASCII: заголовок не внушить
|
||||
SWEEP_EVERY = 24 * 3600 # уборка files/ не чаще раза в сутки (hub-api «Хранилище файлов вложений»)
|
||||
|
||||
|
||||
|
||||
@ -1130,6 +1130,13 @@ def test_attachment_content_bad_mime(hub):
|
||||
assert _content(hub, "/attachments/31337/content").headers["Content-Type"] == "application/octet-stream"
|
||||
|
||||
|
||||
def test_attachment_content_non_ascii_mime(hub):
|
||||
"""Кириллический mime_type не должен ронять send_header (UnicodeEncodeError → 500): \w в MIME_RE — только ASCII."""
|
||||
_seed_attachment(hub, mime="текст/простой")
|
||||
_fetch_done(hub)
|
||||
assert _content(hub, "/attachments/31337/content").headers["Content-Type"] == "application/octet-stream"
|
||||
|
||||
|
||||
def test_attachment_fetch_twice_same_command(hub):
|
||||
_seed_attachment(hub)
|
||||
a = hub["client"].post("/attachments/31337/fetch", {})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user