Files
Nexus/tests/test_sync_upload_form.py
T
Nexus Agent 9337f37da8 fix(files,deploy): 文件上传字段名与 Layer3 巡检脚本
后端同时接受 file/files 并支持多文件 SFTP 上传;修复 health_monitor.sh 引号语法使 Layer 3 cron 可运行。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 23:00:01 +08:00

48 lines
1.2 KiB
Python

"""Multipart field name for POST /api/sync/upload."""
from types import SimpleNamespace
from server.api.sync_v2 import _collect_multipart_upload_files
class _FakeForm:
def __init__(self, data: dict[str, list]):
self._data = data
def getlist(self, key: str) -> list:
return list(self._data.get(key, []))
def test_collect_file_field():
form = _FakeForm({
"file": [SimpleNamespace(filename="a.txt")],
})
items = _collect_multipart_upload_files(form)
assert len(items) == 1
assert items[0].filename == "a.txt"
def test_collect_legacy_files_field():
form = _FakeForm({
"files": [
SimpleNamespace(filename="one.bin"),
SimpleNamespace(filename="two.bin"),
],
})
items = _collect_multipart_upload_files(form)
assert len(items) == 2
def test_collect_prefers_file_over_files():
form = _FakeForm({
"file": [SimpleNamespace(filename="primary.txt")],
"files": [SimpleNamespace(filename="legacy.txt")],
})
items = _collect_multipart_upload_files(form)
assert len(items) == 1
assert items[0].filename == "primary.txt"
def test_collect_empty():
assert _collect_multipart_upload_files(_FakeForm({})) == []