from textwrap import dedent from minihtml import fragment, make_prototype def test_nested_block_elements_are_rendered_with_indentation(): div = make_prototype("div") assert str(div(div())) == dedent( """\
""" ) assert str(div(div(), div())) == dedent( """\
""" ) def test_nested_inline_elements_are_rendered_without_indentation(): span = make_prototype("span", inline=True) em = make_prototype("em", inline=True) assert str(span(em())) == "" assert str(span(em(), em())) == "" def test_consecutive_inline_children_of_block_elements_are_rendered_without_indentation(): div = make_prototype("div") span = make_prototype("span", inline=True) assert str(div(span(), span())) == dedent("
") def test_a_single_inline_child_of_a_block_element_is_rendered_without_indentation(): div = make_prototype("div") span = make_prototype("span", inline=True) assert str(div(span())) == "
" def test_nested_block_elements_are_always_rendered_with_indentation(): div = make_prototype("div") p = make_prototype("p") span = make_prototype("span", inline=True) assert str(div(span(), p())) == dedent( """\

""" ) assert str(div(span(), span(), p())) == dedent( """\

""" ) assert str(span(span(), p())) == dedent( """\

""" ) assert str(span(p(), span())) == dedent( """\

""" ) def test_empty_elements_with_and_without_end_tag(): div = make_prototype("div") img = make_prototype("img", inline=True, empty=True, omit_end_tag=True) iframe = make_prototype("iframe", empty=True, omit_end_tag=False) assert str(img()) == "" assert str(iframe()) == "" assert str(div(img(), img())) == "
" assert str(div(iframe(), iframe())) == dedent( """\
""" ) def test_text_content_is_rendered_inline(): div = make_prototype("div") span = make_prototype("span", inline=True) assert str(div("hello")) == "
hello
" assert str(span("hello")) == "hello" assert str(div(span(), "hello")) == "
hello
" def test_rendering_fragments(): div = make_prototype("div") span = make_prototype("span", inline=True) frag1 = fragment(div(), span(), "test", div()) assert str(div(frag1)) == dedent( """\
test
""" ) assert str(frag1) == dedent( """\
test
""" )