Files
ai-agent-admin/backend-fastapi/online_dev/report_manager/engine/test_convert.py
T

120 lines
3.1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""convert 引擎单元测试(可直接 python -m 运行)"""
from online_dev.report_manager.engine.convert import transform
def test_parameter_and_list_down():
snapshot = {
"sheetOrder": ["sheet1"],
"sheets": {
"sheet1": {
"id": "sheet1",
"cellData": {"0": {"0": {"v": "Title"}}},
},
},
}
cells = {
"cells": [
{
"type": "parameter",
"sheet": "sheet1",
"row": 0,
"col": 1,
"custom": {"value": "#{userName}"},
},
{
"type": "dataSource",
"sheet": "sheet1",
"row": 1,
"col": 0,
"custom": {
"dataSetName": "users",
"field": "name",
"expand": "down",
},
},
],
}
datasets = {
"users": [{"name": "Alice"}, {"name": "Bob"}],
}
result = transform(snapshot, cells, datasets, {"userName": "Admin"})
cd = result["sheets"]["sheet1"]["cellData"]
assert cd["0"]["1"]["v"] == "Admin"
assert cd["1"]["0"]["v"] == "Alice"
assert cd["2"]["0"]["v"] == "Bob"
print("ok")
def test_list_right_expand():
snapshot = {
"sheetOrder": ["sheet1"],
"sheets": {
"sheet1": {
"id": "sheet1",
"cellData": {"0": {"0": {"v": "H"}}},
},
},
}
cells = {
"cells": [
{
"type": "dataSource",
"sheet": "sheet1",
"row": 0,
"col": 1,
"custom": {
"dataSetName": "items",
"field": "name",
"expand": "right",
},
},
],
}
datasets = {"items": [{"name": "A"}, {"name": "B"}]}
result = transform(snapshot, cells, datasets, {})
cd = result["sheets"]["sheet1"]["cellData"]
assert cd["0"]["1"]["v"] == "A"
assert cd["0"]["2"]["v"] == "B"
print("right ok")
def test_fill_empty_rows_after_list_down():
snapshot = {
"sheets": {
"sheet1": {
"id": "sheet1",
"cellData": {"1": {"0": {"v": ""}}},
}
}
}
cells = {
"cells": [
{
"type": "dataSource",
"sheet": "sheet1",
"row": 1,
"col": 0,
"custom": {
"dataSetName": "items",
"field": "name",
"expand": "down",
"fillEmptyRows": True,
"fillEmptyNum": 1,
},
}
]
}
result = transform(
snapshot, cells, {"items": [{"name": "X"}]}, {}
)
cd = result["sheets"]["sheet1"]["cellData"]
assert cd["1"]["0"]["v"] == "X"
assert cd["2"]["0"]["v"] == ""
if __name__ == "__main__":
test_parameter_and_list_down()
test_list_right_expand()