54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from markdown import Markdown
|
|
|
|
from schematic_footprint_viewer import makeExtension
|
|
from schematic_footprint_viewer.extension import ViewerOptions, render_viewer
|
|
|
|
|
|
def test_render_viewer_outputs_two_canvas_boxes():
|
|
html = render_viewer(ViewerOptions(json_path="files/demo.json"))
|
|
|
|
assert 'class="schematic-footprint-viewer"' in html
|
|
assert 'data-sfv-json="files/demo.json"' in html
|
|
assert "data-sfv-pcb-canvas" in html
|
|
assert "data-sfv-sch-canvas" in html
|
|
assert "sfv-main" not in html
|
|
|
|
|
|
def test_extension_replaces_shortcode_with_json_attribute():
|
|
md = Markdown(extensions=[makeExtension()])
|
|
|
|
rendered = md.convert(
|
|
'Before\n\n{% schematic-footprint json="files/VL53L0X_merged.json" %}\n\nAfter',
|
|
)
|
|
|
|
assert "{% schematic-footprint" not in rendered
|
|
assert "Before" in rendered
|
|
assert "After" in rendered
|
|
assert 'data-sfv-json="files/VL53L0X_merged.json"' in rendered
|
|
|
|
|
|
def test_extension_accepts_src_alias_and_dimensions():
|
|
md = Markdown(extensions=[makeExtension()])
|
|
|
|
rendered = md.convert(
|
|
'{% schematic-footprint src="merged.json" width="24rem" height="20rem" %}',
|
|
)
|
|
|
|
assert 'data-sfv-json="merged.json"' in rendered
|
|
assert "--sfv-box-w:24rem" in rendered
|
|
assert "--sfv-box-h:20rem" in rendered
|
|
|
|
|
|
def test_extension_uses_default_json_when_no_attribute_is_given():
|
|
md = Markdown(extensions=[makeExtension(default_json="default.json")])
|
|
rendered = md.convert("{% schematic-footprint %}")
|
|
|
|
assert 'data-sfv-json="default.json"' in rendered
|
|
|
|
|
|
def test_extension_is_loadable_by_module_name():
|
|
md = Markdown(extensions=["schematic_footprint_viewer"])
|
|
rendered = md.convert('{% schematic-footprint json="module.json" %}')
|
|
|
|
assert 'data-sfv-json="module.json"' in rendered
|