1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
from wtforms.fields import Label
from wtforms.fields import StringField
from wtforms.form import Form
def test_label():
expected = """<label for="test">Caption</label>"""
label = Label("test", "Caption")
assert label() == expected
assert str(label) == expected
assert str(label) == expected
assert label.__html__() == expected
assert label().__html__() == expected
assert label("hello") == """<label for="test">hello</label>"""
assert StringField("hi").bind(Form(), "a").label.text == "hi"
assert repr(label) == "Label('test', 'Caption')"
def test_auto_label():
t1 = StringField().bind(Form(), "foo_bar")
assert t1.label.text == "Foo Bar"
t2 = StringField("").bind(Form(), "foo_bar")
assert t2.label.text == ""
def test_override_for():
label = Label("test", "Caption")
assert label(for_="foo") == """<label for="foo">Caption</label>"""
assert label(**{"for": "bar"}) == """<label for="bar">Caption</label>"""
def test_escaped_label_text():
label = Label("test", '<script>alert("test");</script>')
assert label(for_="foo") == (
'<label for="foo"><script>'
"alert("test");</script></label>"
)
assert label(**{"for": "bar"}) == (
'<label for="bar"><script>'
"alert("test");</script></label>"
)
|