mirror of
https://github.com/pyecharts/pyecharts.git
synced 2025-12-08 20:59:23 +00:00
* 🐛 fix theme color problem for themes other than dark, #544 * 🔬 test remove_key_with_none_value and whitening * 📚 update docs and pump version * Update json_serializable.py * Update __init__.py * 💚 fix unit test failures * 🔥 get rid of dev code * 💚 pass all unit tests * 👕 use python 2 to generate the fixtures * 🔥 remove empty dictionary that resulted from cleaning * 🔬 more test cases. 👕 whitening * 💚 ignore basestring please, flake8 * 🔨 code refactor test * 🔨 address review feedbacks * 💄 change single quote * Update: docs update * Update: img link update * Update: docs update
127 lines
3.6 KiB
Python
127 lines
3.6 KiB
Python
# coding=utf8
|
|
"""
|
|
Test cases for jinja2 template functions
|
|
"""
|
|
|
|
from __future__ import unicode_literals
|
|
from nose.tools import raises
|
|
|
|
from pyecharts.utils import get_resource_dir
|
|
from pyecharts import Bar, Map
|
|
from pyecharts.engine import BaseEnvironment, EchartsEnvironment
|
|
from pyecharts.conf import PyEchartsConfig
|
|
|
|
ECHARTS_ENV = EchartsEnvironment()
|
|
|
|
|
|
def create_demo_bar(chart_id_demo=None):
|
|
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
|
|
v1 = [5, 20, 36, 10, 75, 90]
|
|
v2 = [10, 25, 8, 60, 20, 80]
|
|
bar = Bar("柱状图数据堆叠示例")
|
|
bar.add("商家A", attr, v1, is_stack=True)
|
|
bar.add("商家B", attr, v2, is_stack=True)
|
|
if chart_id_demo:
|
|
bar._chart_id = chart_id_demo
|
|
return bar
|
|
|
|
|
|
def test_echarts_js_dependencies():
|
|
env = EchartsEnvironment(
|
|
pyecharts_config=PyEchartsConfig(jshost="http://localhost/echarts")
|
|
)
|
|
tpl = env.from_string("{{ echarts_js_dependencies(bar) }}")
|
|
bar = create_demo_bar()
|
|
html = tpl.render(bar=bar)
|
|
assert (
|
|
'<script type="text/javascript" src="http://localhost/echarts/echarts.min.js"></script>' ==
|
|
html
|
|
) # flake8: noqa
|
|
|
|
|
|
def test_echarts_js_dependencies_embed():
|
|
env = EchartsEnvironment(
|
|
pyecharts_config=PyEchartsConfig(
|
|
jshost=get_resource_dir("templates", "js", "echarts")
|
|
)
|
|
)
|
|
tpl = env.from_string('{{ echarts_js_dependencies_embed("echarts") }}')
|
|
bar = create_demo_bar()
|
|
html = tpl.render(bar=bar)
|
|
assert len(html) > 0
|
|
|
|
|
|
# no longer echarts_js_dependencies equals echarts_js_dependencies_
|
|
# embed when use local host.
|
|
# because the js files is either in python path or user path
|
|
# hence it could not be simply judged.
|
|
|
|
|
|
def test_echarts_js_container():
|
|
tpl = ECHARTS_ENV.from_string("{{ echarts_container(bar) }}")
|
|
bar = create_demo_bar("id_demo_chart")
|
|
html = tpl.render(bar=bar)
|
|
assert (
|
|
'<div id="id_demo_chart" style="width:800px;height:400px;"></div>' ==
|
|
html
|
|
) # flake8: noqa
|
|
|
|
bar.width = 1024
|
|
bar.height = 768
|
|
html = tpl.render(bar=bar)
|
|
assert (
|
|
'<div id="id_demo_chart" style="width:1024px;height:768px;"></div>' ==
|
|
html
|
|
) # flake8: noqa
|
|
|
|
bar.width = "1024px"
|
|
bar.height = "768px"
|
|
html = tpl.render(bar=bar)
|
|
assert (
|
|
'<div id="id_demo_chart" style="width:1024px;height:768px;"></div>' ==
|
|
html
|
|
) # flake8: noqa
|
|
|
|
|
|
def test_echarts_js_content():
|
|
tpl = ECHARTS_ENV.from_string("{{ echarts_js_content(bar) }}")
|
|
bar = create_demo_bar()
|
|
html = tpl.render(bar=bar)
|
|
assert len(html) > 0
|
|
|
|
|
|
def test_echarts_js_content_wrap():
|
|
tpl = ECHARTS_ENV.from_string("{{ echarts_js_content_wrap(bar) }}")
|
|
bar = create_demo_bar()
|
|
html = tpl.render(bar=bar)
|
|
assert len(html) > 0
|
|
|
|
|
|
@raises(TypeError)
|
|
def test_create_environment_without_config():
|
|
be = BaseEnvironment()
|
|
|
|
|
|
def test_echarts_js_in_first():
|
|
value = [20, 190, 253, 77, 65]
|
|
attr = ["汕头市", "汕尾市", "揭阳市", "阳江市", "肇庆市"]
|
|
map = Map("广东地图示例", width=1200, height=600)
|
|
map.add(
|
|
"",
|
|
attr,
|
|
value,
|
|
maptype="广东",
|
|
is_visualmap=True,
|
|
visual_text_color="#000",
|
|
)
|
|
env = EchartsEnvironment(
|
|
pyecharts_config=PyEchartsConfig(jshost="http://localhost/echarts")
|
|
)
|
|
tpl = env.from_string("{{ echarts_js_dependencies(m) }}")
|
|
html = tpl.render(m=map)
|
|
echarts_js_pos = html.find("echarts.min.js")
|
|
guangdong_js_pos = html.find("guangdong.js")
|
|
assert echarts_js_pos > -1
|
|
assert guangdong_js_pos > -1
|
|
assert echarts_js_pos < guangdong_js_pos
|