pyecharts/test/test_custom.py
2024-06-07 18:22:28 +08:00

45 lines
1.6 KiB
Python

import unittest
from unittest.mock import patch
from pyecharts.charts import Custom
from pyecharts.commons.utils import JsCode
class TestCustom(unittest.TestCase):
@patch("pyecharts.render.engine.write_utf8_html_file")
def test_custom_base(self, fake_writer):
c = Custom().add(
series_name="",
render_item=JsCode(
"""
function (params, api) {
var categoryIndex = api.value(0);
var start = api.coord([api.value(1), categoryIndex]);
var end = api.coord([api.value(2), categoryIndex]);
var height = api.size([0, 1])[1] * 0.6;
var rectShape = echarts.graphic.clipRectByRect({
x: start[0],
y: start[1] - height / 2,
width: end[0] - start[0],
height: height
}, {
x: params.coordSys.x,
y: params.coordSys.y,
width: params.coordSys.width,
height: params.coordSys.height
});
return rectShape && {
type: 'rect',
shape: rectShape,
style: api.style()
};
}
"""
),
data=None,
)
c.render()
_, content = fake_writer.call_args[0]
self.assertGreater(len(content), 2000)
self.assertIn("renderItem", content)