120 lines
3.1 KiB
Python
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()
|