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

View File

@ -28,7 +28,7 @@
<div class='form-row'> <div class='form-row'>
<div class='form-col form-col--half'> <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>
<div class='form-col form-col--half'> <div class='form-col form-col--half'>

View File

@ -54,3 +54,10 @@ class TestEditTaskOrderOfficersForm:
form.populate_obj(task_order) form.populate_obj(task_order)
assert task_order.so_first_name == data["security_officer-first_name"] assert task_order.so_first_name == data["security_officer-first_name"]
assert task_order.so_last_name == data["security_officer-last_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."]