48 lines
1.2 KiB
Python
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({})) == []
|