from werkzeug.datastructures import ImmutableMultiDict from core_notifications.templating.forms import TemplateForm class TestTemplateForm: def test_success(self, app): test_subject = "Test {{ variable }}" test_source = "{{ variable }}" test_context = '{"test_variable": "test_value"}' with app.test_request_context(): form = TemplateForm( formdata=ImmutableMultiDict( { "name": "test_name", "subject": test_subject, "source": test_source, "context": test_context, } ) ) assert form.validate(), form.errors def test_failure_required_fields(self, app): with app.test_request_context(): form = TemplateForm( formdata=ImmutableMultiDict( { "name": "", "subject": "", "source": "", "context": "", } ) ) assert not form.validate(), form.errors assert form.errors.get("name") == ["This field is required."] assert form.errors.get("subject") == ["This field is required."] def test_failure_liquid(self, app): test_subject = "Test {{ variable" test_source = "{{ variable " test_context = '{"test_variable": "test_value"' with app.test_request_context(): form = TemplateForm( formdata=ImmutableMultiDict( { "subject": test_subject, "source": test_source, "context": test_context, } ) ) assert not form.validate(), form.errors assert form.errors.get("name") == ["This field is required."] assert form.errors.get("subject") == ["Invalid template code"] assert form.errors.get("source") == ["Invalid template code"] assert form.errors.get("context") == ["Invalid context data"]