2022-05-23 00:16:32 +04:00

53 lines
1.4 KiB
Python

import pytest
from ..html import spec_to_html
@pytest.fixture
def spec():
return {
"data": {"url": "data.json"},
"mark": "point",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "type": "quantitative"},
},
}
@pytest.mark.parametrize("requirejs", [True, False])
@pytest.mark.parametrize("fullhtml", [True, False])
def test_spec_to_html(requirejs, fullhtml, spec):
# We can't test that the html actually renders, but we'll test aspects of
# it to make certain that the keywords are respected.
vegaembed_version = ("3.12",)
vegalite_version = ("3.0",)
vega_version = "4.0"
html = spec_to_html(
spec,
mode="vega-lite",
requirejs=requirejs,
fullhtml=fullhtml,
vegalite_version=vegalite_version,
vegaembed_version=vegaembed_version,
vega_version=vega_version,
)
html = html.strip()
if fullhtml:
assert html.startswith("<!DOCTYPE html>")
assert html.endswith("</html>")
else:
assert html.startswith("<style>")
assert html.endswith("</script>")
if requirejs:
assert "require(" in html
else:
assert "require(" not in html
assert "vega-lite@{}".format(vegalite_version) in html
assert "vega@{}".format(vega_version) in html
assert "vega-embed@{}".format(vegaembed_version) in html