Extract HTML5 form helpers
This commit is contained in:
@@ -7,6 +7,12 @@ import zipfile
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from api_server import main
|
||||
from api_server.html5_forms import (
|
||||
form_value,
|
||||
html5_csv_values,
|
||||
html5_metadata_payload,
|
||||
html5_metadata_request_payload,
|
||||
)
|
||||
from api_server.html5_sse import html5_sse_comment, html5_sse_event, html5_sse_if_changed
|
||||
from api_server.main import app
|
||||
from one_c_normalizer import ConfigurationRoot, MetadataGroup, MetadataObject, Module, NormalizedProject
|
||||
@@ -72,6 +78,48 @@ def test_html5_sse_formatters_emit_stable_event_stream_chunks():
|
||||
assert "data: <div>done</div>" in third[0]
|
||||
|
||||
|
||||
def test_html5_form_helpers_normalize_metadata_payloads():
|
||||
form = {
|
||||
"name": [" ЗаказПокупателя "],
|
||||
"synonym": [" Заказ покупателя "],
|
||||
"attributes": ["Номер:Строка, Дата:Дата\nКомментарий"],
|
||||
"tabular_sections": ["Товары[Номенклатура:СправочникСсылка.Номенклатура;Количество:Число]"],
|
||||
"forms": ["ФормаДокумента, ФормаСписка\nФормаВыбора"],
|
||||
"commands": ["Провести:ПровестиДокумент, Печать"],
|
||||
"task_id": [" task-1 "],
|
||||
"empty": [" "],
|
||||
}
|
||||
|
||||
payload = html5_metadata_payload(form)
|
||||
|
||||
assert form_value(form, "name") == "ЗаказПокупателя"
|
||||
assert form_value(form, "empty") is None
|
||||
assert html5_csv_values("one, two\nthree") == ["one", "two", "three"]
|
||||
assert payload["object_kind"] == "DOCUMENT"
|
||||
assert payload["name"] == "ЗаказПокупателя"
|
||||
assert payload["attributes"] == [
|
||||
{"name": "Номер", "type": "Строка"},
|
||||
{"name": "Дата", "type": "Дата"},
|
||||
{"name": "Комментарий", "type": "Строка"},
|
||||
]
|
||||
assert payload["tabular_sections"] == [
|
||||
{
|
||||
"name": "Товары",
|
||||
"attributes": [
|
||||
{"name": "Номенклатура", "type": "СправочникСсылка.Номенклатура"},
|
||||
{"name": "Количество", "type": "Число"},
|
||||
],
|
||||
}
|
||||
]
|
||||
assert payload["forms"] == ["ФормаДокумента", "ФормаСписка", "ФормаВыбора"]
|
||||
assert payload["commands"] == [
|
||||
{"name": "Провести", "handler": "ПровестиДокумент"},
|
||||
{"name": "Печать", "handler": None},
|
||||
]
|
||||
assert payload["_raw_attributes"] == "Номер:Строка, Дата:Дата\nКомментарий"
|
||||
assert "_raw_attributes" not in html5_metadata_request_payload(payload)
|
||||
|
||||
|
||||
def test_cors_allows_lan_panel_origin():
|
||||
client = TestClient(app)
|
||||
response = client.options(
|
||||
|
||||
Reference in New Issue
Block a user