def test_determinism_svg():
    fig_data1 = ext.draw_aafig(BASIC_BLOCK_TXT, {'tag_type': 'inline_svg'})
    fig_data2 = ext.draw_aafig(BASIC_BLOCK_TXT, {'tag_type': 'inline_svg'})
    assert fig_data1 == fig_data2

    fig_data1 = ext.draw_aafig(BASIC_BLOCK_TXT, {'tag_type': 'img_base64_svg'})
    fig_data2 = ext.draw_aafig(BASIC_BLOCK_TXT, {'tag_type': 'img_base64_svg'})
    assert fig_data1 == fig_data2
def test_extended_aafigure():
    fig_data = ext.draw_aafig(BASIC_BLOCK_TXT)

    assert fig_data.startswith("<svg")
    assert fig_data.endswith("</svg>")

    extensions = DEFAULT_MKDOCS_EXTENSIONS + ['markdown_aafigure']
    result     = md.markdown(EXTENDED_BLOCK_TXT, extensions=extensions)

    expected = EXTENDED_FIG_HTML_TEMPLATE.format(fig_data)
    expected = expected.replace("\n", "")
    result   = result.replace("\n", "")

    assert result == expected
def test_param_aafigure():
    fig_html = ext.draw_aafig(PARAM_BLOCK_TXT)

    assert "<svg" in fig_html
    assert "</svg>" in fig_html
    assert 'stroke="#ff0000"' in fig_html

    result = md.markdown(PARAM_BLOCK_TXT, extensions=['markdown_aafigure'])
    with open("/tmp/aafig_result.html", mode="w") as fobj:
        fobj.write(result)

    expected = "<p>{}</p>".format(fig_html)

    assert result == expected
def test_basic_svg_aafigure_legacy():
    fig_data = ext.draw_aafigure(BASIC_BLOCK_TXT, output_fmt='svg')

    assert b"<svg" in fig_data
    assert b"</svg>" in fig_data

    img_html = ext.draw_aafig(BASIC_BLOCK_TXT)
    assert img_html.startswith("<svg")
    expected = "<p>{}</p>".format(img_html)

    result = md.markdown(BASIC_BLOCK_TXT, extensions=['markdown_aafigure'])
    assert img_html in result

    # with open("debug_img_output_aafigure.svg", mode='wb') as fobj:
    #     fobj.write(fig_data)
    # with open("debug_img_output_mardown.html", mode='wb') as fobj:
    #     fobj.write(result.encode('utf-8'))

    assert result == expected
def test_basic_png_aafigure_legacy():
    fig_data = ext.draw_aafigure(BASIC_BLOCK_TXT, output_fmt='png')

    assert b"<svg" not in fig_data

    img_html = ext.draw_aafig(BASIC_BLOCK_TXT, {'tag_type': 'img_base64_png'})
    assert "<svg" not in img_html

    img_uri = ext.fig2png_uri(BASIC_BLOCK_TXT)
    assert img_uri.startswith("data:image/png;base64,")
    expected = '<p><img src="{}"/></p>'.format(img_uri)

    result = md.markdown(
        BASIC_BLOCK_TXT,
        extensions=['markdown_aafigure'],
        extension_configs={'markdown_aafigure': {'format': 'png'}},
    )
    assert img_uri in result

    assert result == expected
def test_trailing_whitespace():
    fig_data = ext.draw_aafig(BASIC_BLOCK_TXT)

    trailing_space_result = md.markdown(BASIC_BLOCK_TXT + "  ", extensions=['markdown_aafigure'])
    assert fig_data in trailing_space_result
    assert "```" not in trailing_space_result