#!/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()