def test_render_start_tag_escape_list_of_values(): tag = render_start_tag("a", style=["ding", "b<script>alert(1)</script>la"]) assert str( tag) == '<a style="ding; b<script>alert(1)</script>la">'
def test_render_start_tag_escape_key(): tag = render_start_tag("a", close_tag=False, **{"b<script>alert(1)</script>la": "1"}) assert str(tag) == '<a b<script>alert(1)</script>la="1">'
def test_render_start_tag_escape_value(): tag = render_start_tag("a", href="b<script>alert(1)</script>la") assert str(tag) == '<a href="b<script>alert(1)</script>la">'
def test_render_start_tag_on_separator_skip_empty_element(): tag = render_start_tag("a", onclick=["func1()", "", "func2()"]) assert str(tag) == '<a onclick="func1(); func2()">'
def test_render_start_tag_a_first_attr_href(): tag = render_start_tag("a", class_="xyz", href="bla", target="_blank") assert str(tag) == '<a href="bla" target="_blank" class="xyz">'
def test_render_start_tag_class_variants(key, value): tag = render_start_tag("div", **{key: value}) assert str(tag) == '<div class="1 2">'
def test_render_start_tag_style_separator(): tag = render_start_tag("a", style=["width: 10px", "height:10px"]) assert str(tag) == '<a style="width: 10px; height:10px">'
def test_render_start_tag_keep_empty_values(): tag = render_start_tag("div", name="") assert str(tag) == '<div name=\'\'>'
def test_render_start_tag_skip_none_values(): tag = render_start_tag("div", name=None) assert str(tag) == '<div>'
def test_render_start_tag_convert_data_attributes(): tag = render_start_tag("div", data_abc="xyz") assert str(tag) == '<div data-abc="xyz">'
def test_render_start_tag_simple_attributes(): tag = render_start_tag("div", id="xyz", name="aaa") assert str(tag) == '<div id="xyz" name="aaa">'
def test_render_start_tag_no_attributes(): tag = render_start_tag("div") assert isinstance(tag, HTML) assert str(tag) == '<div>'