Fix tests, linting errors

This commit is contained in:
richard-dds 2018-08-17 14:24:15 -04:00
parent e148606613
commit 06c44f86c9
4 changed files with 53 additions and 55 deletions

View File

@ -1,7 +1,7 @@
import re
from wtforms.fields.html5 import EmailField
from wtforms.fields import StringField
from wtforms.validators import Required, Email, InputRequired, Regexp, DataRequired
from wtforms.validators import Required, Email, Regexp
from atst.domain.exceptions import NotFoundError
from atst.domain.pe_numbers import PENumbers

View File

@ -77,10 +77,10 @@ class RequestForm(ValidatedForm):
organization_providing_assistance = RadioField( # this needs to be updated to use checkboxes instead of radio
description="If you are receiving migration assistance, what is the type of organization providing assistance?",
choices=[
("in_house_staff", "In-house staff"),
("contractor", "Contractor"),
("other_dod_organization", "Other DoD organization"),
("none", "None"),
("In-house staff", "In-house staff"),
("Contractor", "Contractor"),
("Other DoD Organization", "Other DoD Organization"),
("None", "None"),
],
default="",
)

View File

@ -13,7 +13,6 @@ from atst.models.request_status_event import RequestStatusEvent
from atst.domain.roles import Roles
class RoleFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = Role
@ -34,7 +33,6 @@ class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
class RequestStatusEventFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = RequestStatusEvent
@ -61,7 +59,7 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory):
"dodid_poc": user.dod_id,
"email_poc": user.email,
"fname_poc": user.first_name,
"lname_poc": user.last_name
"lname_poc": user.last_name,
},
"details_of_use": {
"jedi_usage": "adf",
@ -69,7 +67,8 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory):
"cloud_native": "yes",
"dollar_value": dollar_value,
"dod_component": "Army and Air Force Exchange Service",
"data_transfers": "less_than_100gb",
"data_transfers": "Less than 100GB",
"expected_completion_date": "Less than 1 month",
"jedi_migration": "yes",
"num_software_systems": 1,
"number_user_sessions": 2,
@ -78,9 +77,8 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory):
"technical_support_team": "yes",
"estimated_monthly_spend": 100,
"average_daily_traffic_gb": 4,
"expected_completion_date": "less_than_1_month",
"rationalization_software_systems": "yes",
"organization_providing_assistance": "in_house_staff"
"organization_providing_assistance": "In-house staff",
},
"information_about_you": {
"citizenship": "United States",
@ -90,8 +88,8 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory):
"fname_request": user.first_name,
"lname_request": user.last_name,
"service_branch": "Air Force, Department of the",
"date_latest_training": "2018-08-06"
}
"date_latest_training": "2018-08-06",
},
}

View File

@ -6,80 +6,80 @@ from atst.forms.request import RequestForm
class TestRequestForm:
form_data = {
'dod_component': 'Army and Air Force Exchange Service',
'jedi_usage': 'cloud-ify all the things',
'num_software_systems': '12',
'estimated_monthly_spend': '1000000',
'dollar_value': '42',
'number_user_sessions': '6',
'average_daily_traffic': '0',
'start_date': '12/12/2012',
"dod_component": "Army and Air Force Exchange Service",
"jedi_usage": "cloud-ify all the things",
"num_software_systems": "12",
"estimated_monthly_spend": "1000000",
"dollar_value": "42",
"number_user_sessions": "6",
"average_daily_traffic": "0",
"start_date": "12/12/2012",
}
migration_data = {
'jedi_migration': 'yes',
'rationalization_software_systems': 'yes',
'technical_support_team': 'yes',
'organization_providing_assistance': 'in_house_staff',
'engineering_assessment': 'yes',
'data_transfers': 'less_than_100gb',
'expected_completion_date': 'less_than_1_month'
"jedi_migration": "yes",
"rationalization_software_systems": "yes",
"technical_support_team": "yes",
"organization_providing_assistance": "In-house staff",
"engineering_assessment": "yes",
"data_transfers": "Less than 100GB",
"expected_completion_date": "Less than 1 month",
}
def test_require_cloud_native_when_not_migrating(self):
extra_data = { 'jedi_migration': 'no' }
request_form = RequestForm(data={ **self.form_data, **extra_data })
extra_data = {"jedi_migration": "no"}
request_form = RequestForm(data={**self.form_data, **extra_data})
assert not request_form.validate()
assert request_form.errors == { 'cloud_native': ['Not a valid choice'] }
assert request_form.errors == {"cloud_native": ["Not a valid choice"]}
def test_require_migration_questions_when_migrating(self):
extra_data = { 'jedi_migration': 'yes' }
request_form = RequestForm(data={ **self.form_data, **extra_data })
extra_data = {"jedi_migration": "yes"}
request_form = RequestForm(data={**self.form_data, **extra_data})
assert not request_form.validate()
assert request_form.errors == {
'rationalization_software_systems': ['Not a valid choice'],
'technical_support_team': ['Not a valid choice'],
'organization_providing_assistance': ['Not a valid choice'],
'engineering_assessment': ['Not a valid choice'],
'data_transfers': ['Not a valid choice'],
'expected_completion_date': ['Not a valid choice']
"rationalization_software_systems": ["Not a valid choice"],
"technical_support_team": ["Not a valid choice"],
"organization_providing_assistance": ["Not a valid choice"],
"engineering_assessment": ["Not a valid choice"],
"data_transfers": ["Not a valid choice"],
"expected_completion_date": ["Not a valid choice"],
}
def test_require_organization_when_technical_support_team(self):
data = { **self.form_data, **self.migration_data }
del data['organization_providing_assistance']
data = {**self.form_data, **self.migration_data}
del data["organization_providing_assistance"]
request_form = RequestForm(data=data)
assert not request_form.validate()
assert request_form.errors == {
'organization_providing_assistance': ['Not a valid choice'],
"organization_providing_assistance": ["Not a valid choice"]
}
def test_valid_form_data(self):
data = { **self.form_data, **self.migration_data }
data['technical_support_team'] = 'no'
del data['organization_providing_assistance']
data = {**self.form_data, **self.migration_data}
data["technical_support_team"] = "no"
del data["organization_providing_assistance"]
request_form = RequestForm(data=data)
assert request_form.validate()
def test_sessions_required_for_large_projects(self):
data = { **self.form_data, **self.migration_data }
data['estimated_monthly_spend'] = '9999999'
del data['number_user_sessions']
del data['average_daily_traffic']
data = {**self.form_data, **self.migration_data}
data["estimated_monthly_spend"] = "9999999"
del data["number_user_sessions"]
del data["average_daily_traffic"]
request_form = RequestForm(data=data)
assert not request_form.validate()
assert request_form.errors == {
'number_user_sessions': ['This field is required.'],
'average_daily_traffic': ['This field is required.'],
"number_user_sessions": ["This field is required."],
"average_daily_traffic": ["This field is required."],
}
def test_sessions_not_required_invalid_monthly_spend(self):
data = { **self.form_data, **self.migration_data }
data['estimated_monthly_spend'] = 'foo'
del data['number_user_sessions']
del data['average_daily_traffic']
data = {**self.form_data, **self.migration_data}
data["estimated_monthly_spend"] = "foo"
del data["number_user_sessions"]
del data["average_daily_traffic"]
request_form = RequestForm(data=data)
assert request_form.validate()