Add extra tests to make sure that the form is safe

Previous implementations of this functionality mutated the base form
class, which broke a bunch of stuff.

I want to make sure that getting this form for one placeholder doesn’t
change other forms that have already been instantiated for other
placeholders.

Mutation is scary.
This commit is contained in:
Chris Hill-Scott
2017-05-22 12:02:09 +01:00
parent cd7c27925c
commit 1d76b22bc0

View File

@@ -0,0 +1,18 @@
from app.main.forms import get_placeholder_form_instance
from wtforms import Label
def test_form_class_not_mutated(app_):
with app_.test_request_context(
method='POST',
data={'placeholder_value': ''}
) as req:
form1 = get_placeholder_form_instance('name', {}, optional_placeholder=False)
form2 = get_placeholder_form_instance('city', {}, optional_placeholder=True)
assert not form1.validate_on_submit()
assert form2.validate_on_submit()
assert str(form1.placeholder_value.label) == '<label for="placeholder_value">name</label>'
assert str(form2.placeholder_value.label) == '<label for="placeholder_value">city</label>'