# coding=utf8 """ Test cases for rendering in jupyter notebook """ from __future__ import unicode_literals import json from pyecharts import Bar, Line, Pie, Page, online from pyecharts import enable_nteract, configure import pyecharts.constants as constants from pyecharts.conf import CURRENT_CONFIG from test.constants import CLOTHES, WEEK TITLE = "柱状图数据堆叠示例" def create_a_bar(title): v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar(title) bar.add("商家A", CLOTHES, v1, is_stack=True) bar.add("商家B", CLOTHES, v2, is_stack=True) return bar def test_single_chart(): bar = create_a_bar(TITLE) html = bar._repr_html_() json_encoded_title = json.dumps(TITLE) assert json_encoded_title in html assert "require.config" in html assert "function(echarts)" in html assert "nbextensions/echarts" in html assert "width:800px" in html assert "height:400px" in html assert "") == html.count("") == 2 assert html.count("") == 3 assert html.count("require.config") == html.count("function(echarts)") == 1 # Test some chart attributes json_encoded_title = json.dumps(TITLE) assert json_encoded_title in html assert "nbextensions/echarts" in html # default jshost assert html.count("height:400px") == 3 assert html.count("width:600px") == 1 assert html.count("width:800px") == 2 assert html.count("id_my_cell_line") == 6 def test_online_feature(): online() bar = create_a_bar(TITLE) html = bar._repr_html_() expected_jshost = "https://pyecharts.github.io/jupyter-echarts/echarts" assert expected_jshost in html CURRENT_CONFIG.hosted_on_github = False def test_online_with_custom_jshost(): online(host="https://my-site.com/js") bar = create_a_bar(TITLE) html = bar._repr_html_() expected_jshost = "https://my-site.com/js" assert expected_jshost in html CURRENT_CONFIG.jshost = None def test_nteract_feature(): enable_nteract() bar = create_a_bar(TITLE) html = bar._repr_html_() assert "https://pyecharts.github.io/assets/js/echarts.min.js" in html assert "require" not in html # restore configuration configure(output_image=constants.DEFAULT_HTML) CURRENT_CONFIG.jshost = None