mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-04-22 10:28:02 +00:00
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
"""Tests of various renderers"""
|
|
|
|
import json
|
|
|
|
import pytest
|
|
|
|
import altair.vegalite.v4 as alt
|
|
|
|
|
|
@pytest.fixture
|
|
def chart():
|
|
return alt.Chart("data.csv").mark_point()
|
|
|
|
|
|
def test_html_renderer_embed_options(chart, renderer="html"):
|
|
"""Test that embed_options in renderer metadata are correctly manifest in html"""
|
|
# Short of parsing the javascript, it's difficult to parse out the
|
|
# actions. So we use string matching
|
|
|
|
def assert_has_options(chart, **opts):
|
|
html = chart._repr_mimebundle_(None, None)["text/html"]
|
|
for key, val in opts.items():
|
|
assert json.dumps({key: val})[1:-1] in html
|
|
|
|
with alt.renderers.enable(renderer):
|
|
assert_has_options(chart, mode="vega-lite")
|
|
|
|
with alt.renderers.enable(embed_options=dict(actions={"export": True})):
|
|
assert_has_options(chart, mode="vega-lite", actions={"export": True})
|
|
|
|
with alt.renderers.set_embed_options(actions=True):
|
|
assert_has_options(chart, mode="vega-lite", actions=True)
|
|
|
|
|
|
def test_mimetype_renderer_embed_options(chart, renderer="mimetype"):
|
|
# check that metadata is passed appropriately
|
|
mimetype = alt.display.VEGALITE_MIME_TYPE
|
|
spec = chart.to_dict()
|
|
with alt.renderers.enable(renderer):
|
|
# Sanity check: no metadata specified
|
|
bundle, metadata = chart._repr_mimebundle_(None, None)
|
|
assert bundle[mimetype] == spec
|
|
assert metadata == {}
|
|
with alt.renderers.set_embed_options(actions=False):
|
|
bundle, metadata = chart._repr_mimebundle_(None, None)
|
|
assert set(bundle.keys()) == {mimetype, "text/plain"}
|
|
assert bundle[mimetype] == spec
|
|
assert metadata == {mimetype: {"embed_options": {"actions": False}}}
|
|
|
|
|
|
def test_json_renderer_embed_options(chart, renderer="json"):
|
|
"""Test that embed_options in renderer metadata are correctly manifest in html"""
|
|
mimetype = "application/json"
|
|
spec = chart.to_dict()
|
|
with alt.renderers.enable(renderer):
|
|
# Sanity check: no options specified
|
|
bundle, metadata = chart._repr_mimebundle_(None, None)
|
|
assert bundle[mimetype] == spec
|
|
assert metadata == {}
|
|
|
|
with alt.renderers.enable(option="foo"):
|
|
bundle, metadata = chart._repr_mimebundle_(None, None)
|
|
assert set(bundle.keys()) == {mimetype, "text/plain"}
|
|
assert bundle[mimetype] == spec
|
|
assert metadata == {mimetype: {"option": "foo"}}
|