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>'

Add extra tests to make sure that the form is safe
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.
