Files
mkdocs-schematic-footprint-…/tests/test_plugin.py
T
2026-07-29 11:03:21 +03:30

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