Refactor forms so we can pass requests_client to validate

This commit is contained in:
Patrick Smith 2018-07-11 13:35:29 -04:00
parent d84a38eb13
commit f51dc8f07c
8 changed files with 21 additions and 12 deletions

View File

@ -1,12 +1,13 @@
from wtforms.fields.html5 import EmailField from wtforms.fields.html5 import EmailField
from wtforms.fields import StringField, SelectField from wtforms.fields import StringField, SelectField
from wtforms.validators import Required, Email from wtforms.validators import Required, Email
from wtforms_tornado import Form
from .fields import NewlineListField from .fields import NewlineListField
from .forms import ValidatedForm
class FinancialForm(Form): class FinancialForm(ValidatedForm):
task_order_id = StringField( task_order_id = StringField(
"Task Order Number associated with this request.", validators=[Required()] "Task Order Number associated with this request.", validators=[Required()]
) )

7
atst/forms/forms.py Normal file
View File

@ -0,0 +1,7 @@
from wtforms_tornado import Form
class ValidatedForm(Form):
def validate(self, requests_client=None):
return super(ValidatedForm, self).validate()

View File

@ -1,13 +1,13 @@
from wtforms.fields.html5 import EmailField, TelField from wtforms.fields.html5 import EmailField, TelField
from wtforms.fields import RadioField, StringField from wtforms.fields import RadioField, StringField
from wtforms.validators import Required, Email from wtforms.validators import Required, Email
from wtforms_tornado import Form
import pendulum import pendulum
from .fields import DateField from .fields import DateField
from .forms import ValidatedForm
from .validators import DateRange, PhoneNumber, Alphabet from .validators import DateRange, PhoneNumber, Alphabet
class OrgForm(Form): class OrgForm(ValidatedForm):
fname_request = StringField("First Name", validators=[Required(), Alphabet()]) fname_request = StringField("First Name", validators=[Required(), Alphabet()])
lname_request = StringField("Last Name", validators=[Required(), Alphabet()]) lname_request = StringField("Last Name", validators=[Required(), Alphabet()])

View File

@ -1,10 +1,10 @@
from wtforms.fields import StringField from wtforms.fields import StringField
from wtforms.validators import Required, Email, Length from wtforms.validators import Required, Email, Length
from wtforms_tornado import Form from .forms import ValidatedForm
from .validators import IsNumber, Alphabet from .validators import IsNumber, Alphabet
class POCForm(Form): class POCForm(ValidatedForm):
fname_poc = StringField("POC First Name", validators=[Required(), Alphabet()]) fname_poc = StringField("POC First Name", validators=[Required(), Alphabet()])
lname_poc = StringField("POC Last Name", validators=[Required(), Alphabet()]) lname_poc = StringField("POC Last Name", validators=[Required(), Alphabet()])

View File

@ -1,13 +1,13 @@
from wtforms.fields.html5 import IntegerField from wtforms.fields.html5 import IntegerField
from wtforms.fields import RadioField, StringField, TextAreaField from wtforms.fields import RadioField, StringField, TextAreaField
from wtforms.validators import NumberRange, InputRequired from wtforms.validators import NumberRange, InputRequired
from wtforms_tornado import Form
from .fields import DateField from .fields import DateField
from .forms import ValidatedForm
from .validators import DateRange from .validators import DateRange
import pendulum import pendulum
class RequestForm(Form): class RequestForm(ValidatedForm):
# Details of Use: Overall Request Details # Details of Use: Overall Request Details
dollar_value = IntegerField( dollar_value = IntegerField(

View File

@ -1,6 +1,7 @@
from wtforms.fields import BooleanField 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.") reviewed = BooleanField("I have reviewed this data and it is correct.")

View File

@ -105,7 +105,7 @@ class JEDIRequestFlow(object):
return self.form_class()() return self.form_class()()
def validate(self): def validate(self):
return self.form.validate() return self.form.validate(self.requests_client)
@property @property
def current_screen(self): def current_screen(self):

View File

@ -37,7 +37,7 @@ def test_submit_valid_request_form(monkeypatch, http_client, base_url):
monkeypatch.setattr( monkeypatch.setattr(
"atst.handlers.request_new.RequestNew.check_xsrf_cookie", lambda s: True "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 # this just needs to send a known invalid form value
response = yield http_client.fetch( response = yield http_client.fetch(