diff --git a/atst/forms/financial.py b/atst/forms/financial.py index da4915f3..9d1bf6c7 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -1,12 +1,13 @@ from wtforms.fields.html5 import EmailField from wtforms.fields import StringField, SelectField from wtforms.validators import Required, Email -from wtforms_tornado import Form from .fields import NewlineListField +from .forms import ValidatedForm -class FinancialForm(Form): +class FinancialForm(ValidatedForm): + task_order_id = StringField( "Task Order Number associated with this request.", validators=[Required()] ) diff --git a/atst/forms/forms.py b/atst/forms/forms.py new file mode 100644 index 00000000..064eed58 --- /dev/null +++ b/atst/forms/forms.py @@ -0,0 +1,7 @@ +from wtforms_tornado import Form + + +class ValidatedForm(Form): + + def validate(self, requests_client=None): + return super(ValidatedForm, self).validate() diff --git a/atst/forms/org.py b/atst/forms/org.py index 50d80123..80bb5722 100644 --- a/atst/forms/org.py +++ b/atst/forms/org.py @@ -1,13 +1,13 @@ from wtforms.fields.html5 import EmailField, TelField from wtforms.fields import RadioField, StringField from wtforms.validators import Required, Email -from wtforms_tornado import Form import pendulum from .fields import DateField +from .forms import ValidatedForm from .validators import DateRange, PhoneNumber, Alphabet -class OrgForm(Form): +class OrgForm(ValidatedForm): fname_request = StringField("First Name", validators=[Required(), Alphabet()]) lname_request = StringField("Last Name", validators=[Required(), Alphabet()]) diff --git a/atst/forms/poc.py b/atst/forms/poc.py index 5d64182d..cd57add1 100644 --- a/atst/forms/poc.py +++ b/atst/forms/poc.py @@ -1,10 +1,10 @@ from wtforms.fields import StringField from wtforms.validators import Required, Email, Length -from wtforms_tornado import Form +from .forms import ValidatedForm from .validators import IsNumber, Alphabet -class POCForm(Form): +class POCForm(ValidatedForm): fname_poc = StringField("POC First Name", validators=[Required(), Alphabet()]) lname_poc = StringField("POC Last Name", validators=[Required(), Alphabet()]) diff --git a/atst/forms/request.py b/atst/forms/request.py index e6af039e..6c89aeb2 100644 --- a/atst/forms/request.py +++ b/atst/forms/request.py @@ -1,13 +1,13 @@ from wtforms.fields.html5 import IntegerField from wtforms.fields import RadioField, StringField, TextAreaField from wtforms.validators import NumberRange, InputRequired -from wtforms_tornado import Form from .fields import DateField +from .forms import ValidatedForm from .validators import DateRange import pendulum -class RequestForm(Form): +class RequestForm(ValidatedForm): # Details of Use: Overall Request Details dollar_value = IntegerField( diff --git a/atst/forms/review.py b/atst/forms/review.py index b3cd2a21..68b6f198 100644 --- a/atst/forms/review.py +++ b/atst/forms/review.py @@ -1,6 +1,7 @@ from wtforms.fields import BooleanField -from wtforms_tornado import Form + +from .forms import ValidatedForm -class ReviewForm(Form): +class ReviewForm(ValidatedForm): reviewed = BooleanField("I have reviewed this data and it is correct.") diff --git a/atst/handlers/request_new.py b/atst/handlers/request_new.py index 59092ddf..055c2729 100644 --- a/atst/handlers/request_new.py +++ b/atst/handlers/request_new.py @@ -105,7 +105,7 @@ class JEDIRequestFlow(object): return self.form_class()() def validate(self): - return self.form.validate() + return self.form.validate(self.requests_client) @property def current_screen(self): diff --git a/tests/handlers/test_request_new.py b/tests/handlers/test_request_new.py index 7cd99495..d0bd0a23 100644 --- a/tests/handlers/test_request_new.py +++ b/tests/handlers/test_request_new.py @@ -37,7 +37,7 @@ def test_submit_valid_request_form(monkeypatch, http_client, base_url): monkeypatch.setattr( "atst.handlers.request_new.RequestNew.check_xsrf_cookie", lambda s: True ) - monkeypatch.setattr("atst.forms.request.RequestForm.validate", lambda s: True) + monkeypatch.setattr("atst.forms.request.RequestForm.validate", lambda s, c: True) # this just needs to send a known invalid form value response = yield http_client.fetch(