Enforce email validation on edit officer forms

This commit is contained in:
Patrick Smith 2019-02-04 13:15:42 -05:00
parent b27e3cb726
commit d98abad611
3 changed files with 10 additions and 3 deletions

View File

@ -1,7 +1,7 @@
from flask_wtf import FlaskForm
from wtforms.fields import StringField
from wtforms.fields.html5 import TelField
from wtforms.validators import Length, Optional
from wtforms.validators import Email, Length, Optional
from atst.forms.validators import IsNumber, PhoneNumber
@ -12,7 +12,7 @@ from .fields import FormFieldWrapper
class OfficerForm(FlaskForm):
first_name = StringField("First Name")
last_name = StringField("Last Name")
email = StringField("Email")
email = StringField("Email", validators=[Optional(), Email()])
phone_number = TelField("Phone Number", validators=[PhoneNumber()])
dod_id = StringField("DoD ID", validators=[Optional(), Length(min=10), IsNumber()])

View File

@ -28,7 +28,7 @@
<div class='form-row'>
<div class='form-col form-col--half'>
{{ TextInput(form.email, placeholder='name@mail.mil') }}
{{ TextInput(form.email, placeholder='name@mail.mil', validation='email') }}
</div>
<div class='form-col form-col--half'>

View File

@ -54,3 +54,10 @@ class TestEditTaskOrderOfficersForm:
form.populate_obj(task_order)
assert task_order.so_first_name == data["security_officer-first_name"]
assert task_order.so_last_name == data["security_officer-last_name"]
def test_email_validation(self):
data = {"contracting_officer-email": "not_really_an_email_address"}
formdata = ImmutableMultiDict(data)
form = EditTaskOrderOfficersForm(formdata)
assert not form.validate()
assert form.contracting_officer.email.errors == ["Invalid email address."]