Add missing regex and validation for StringFields

This commit adds further validation for StringFields that were missing
it. This mostly amounted to being Regex patters and max lengths.
This commit is contained in:
graham-dds
2020-01-16 13:01:22 -05:00
parent b3dd32f3f7
commit 156d733aee
16 changed files with 150 additions and 120 deletions

View File

@@ -37,6 +37,10 @@ def random_task_order_number():
return "".join(random.choices(string.digits, k=10))
def random_clin_number():
return "".join(random.choices(string.digits, k=4))
def random_past_date(year_min=1, year_max=5):
return _random_date(year_min, year_max, operator.sub)
@@ -327,7 +331,7 @@ class CLINFactory(Base):
model = CLIN
task_order = factory.SubFactory(TaskOrderFactory)
number = factory.LazyFunction(random_task_order_number)
number = factory.LazyFunction(random_clin_number)
start_date = datetime.date.today()
end_date = factory.LazyFunction(random_future_date)
total_amount = factory.LazyFunction(lambda *args: random.randint(50000, 999999))

View File

@@ -1,13 +1,12 @@
from wtforms.validators import ValidationError
import uuid
from atst.domain.permission_sets import PermissionSets
from atst.forms.data import ENV_ROLES, ENV_ROLE_NO_ACCESS as NO_ACCESS
from atst.forms.data import ENV_ROLES
from atst.forms.application_member import *
def test_environment_form():
form_data = {
"environment_id": 123,
"environment_id": str(uuid.uuid4()),
"environment_name": "testing",
"role": ENV_ROLES[0][0],
"disabled": True,
@@ -17,12 +16,13 @@ def test_environment_form():
def test_environment_form_default_no_access():
form_data = {"environment_id": 123, "environment_name": "testing"}
env_id = str(uuid.uuid4())
form_data = {"environment_id": env_id, "environment_name": "testing"}
form = EnvironmentForm(data=form_data)
assert form.validate()
assert form.data == {
"environment_id": 123,
"environment_id": env_id,
"environment_name": "testing",
"role": None,
"disabled": False,
@@ -31,7 +31,7 @@ def test_environment_form_default_no_access():
def test_environment_form_invalid():
form_data = {
"environment_id": 123,
"environment_id": str(uuid.uuid4()),
"environment_name": "testing",
"role": "not a real choice",
}

View File

@@ -4,16 +4,16 @@ import pytest
from atst.forms.validators import *
class TestIsNumber:
class TestNumber:
@pytest.mark.parametrize("valid", ["0", "12", "-12"])
def test_IsNumber_accepts_integers(self, valid, dummy_form, dummy_field):
validator = IsNumber()
def test_Number_accepts_integers(self, valid, dummy_form, dummy_field):
validator = Number()
dummy_field.data = valid
validator(dummy_form, dummy_field)
@pytest.mark.parametrize("invalid", ["12.1", "two"])
def test_IsNumber_rejects_anything_else(self, invalid, dummy_form, dummy_field):
validator = IsNumber()
def test_Number_rejects_anything_else(self, invalid, dummy_form, dummy_field):
validator = Number()
dummy_field.data = invalid
with pytest.raises(ValidationError):
validator(dummy_form, dummy_field)

View File

@@ -401,10 +401,10 @@ def test_create_member(monkeypatch, client, user_session, session):
"user_data-last_name": user.last_name,
"user_data-dod_id": user.dod_id,
"user_data-email": user.email,
"environment_roles-0-environment_id": env.id,
"environment_roles-0-environment_id": str(env.id),
"environment_roles-0-role": "ADMIN",
"environment_roles-0-environment_name": env.name,
"environment_roles-1-environment_id": env_1.id,
"environment_roles-1-environment_id": str(env_1.id),
"environment_roles-1-role": NO_ACCESS,
"environment_roles-1-environment_name": env_1.name,
"perms_env_mgmt": True,
@@ -527,13 +527,13 @@ def test_update_member(client, user_session, session):
application_role_id=app_role.id,
),
data={
"environment_roles-0-environment_id": env.id,
"environment_roles-0-environment_id": str(env.id),
"environment_roles-0-role": "CONTRIBUTOR",
"environment_roles-0-environment_name": env.name,
"environment_roles-1-environment_id": env_1.id,
"environment_roles-1-environment_id": str(env_1.id),
"environment_roles-1-environment_name": env_1.name,
"environment_roles-1-disabled": "True",
"environment_roles-2-environment_id": env_2.id,
"environment_roles-2-environment_id": str(env_2.id),
"environment_roles-2-role": "BILLING_READ",
"environment_roles-2-environment_name": env_2.name,
"perms_env_mgmt": True,
@@ -694,10 +694,10 @@ def test_handle_create_member(monkeypatch, set_g, session):
"user_data-last_name": user.last_name,
"user_data-dod_id": user.dod_id,
"user_data-email": user.email,
"environment_roles-0-environment_id": env.id,
"environment_roles-0-environment_id": str(env.id),
"environment_roles-0-role": "ADMIN",
"environment_roles-0-environment_name": env.name,
"environment_roles-1-environment_id": env_1.id,
"environment_roles-1-environment_id": str(env_1.id),
"environment_roles-1-role": NO_ACCESS,
"environment_roles-1-environment_name": env_1.name,
"perms_env_mgmt": True,
@@ -731,10 +731,10 @@ def test_handle_update_member_success(set_g):
form_data = ImmutableMultiDict(
{
"environment_roles-0-environment_id": env.id,
"environment_roles-0-environment_id": str(env.id),
"environment_roles-0-role": "ADMIN",
"environment_roles-0-environment_name": env.name,
"environment_roles-1-environment_id": env_1.id,
"environment_roles-1-environment_id": str(env_1.id),
"environment_roles-1-role": NO_ACCESS,
"environment_roles-1-environment_name": env_1.name,
"perms_env_mgmt": True,
@@ -742,6 +742,7 @@ def test_handle_update_member_success(set_g):
"perms_del_env": True,
}
)
handle_update_member(application.id, app_role.id, form_data)
assert len(application.roles) == 1
@@ -771,10 +772,10 @@ def test_handle_update_member_with_error(set_g, monkeypatch, mock_logger):
form_data = ImmutableMultiDict(
{
"environment_roles-0-environment_id": env.id,
"environment_roles-0-environment_id": str(env.id),
"environment_roles-0-role": "ADMIN",
"environment_roles-0-environment_name": env.name,
"environment_roles-1-environment_id": env_1.id,
"environment_roles-1-environment_id": str(env_1.id),
"environment_roles-1-role": NO_ACCESS,
"environment_roles-1-environment_name": env_1.name,
"perms_env_mgmt": True,

View File

@@ -219,13 +219,13 @@ def test_task_orders_submit_form_step_three_add_clins(client, user_session, task
user_session(task_order.portfolio.owner)
form_data = {
"clins-0-jedi_clin_type": "JEDI_CLIN_1",
"clins-0-number": "12312",
"clins-0-number": "1212",
"clins-0-start_date": "01/01/2020",
"clins-0-end_date": "01/01/2021",
"clins-0-obligated_amount": "5000",
"clins-0-total_amount": "10000",
"clins-1-jedi_clin_type": "JEDI_CLIN_1",
"clins-1-number": "12312",
"clins-1-number": "1212",
"clins-1-start_date": "01/01/2020",
"clins-1-end_date": "01/01/2021",
"clins-1-obligated_amount": "5000",
@@ -269,7 +269,7 @@ def test_task_orders_submit_form_step_three_add_clins_existing_to(
user_session(task_order.portfolio.owner)
form_data = {
"clins-0-jedi_clin_type": "JEDI_CLIN_1",
"clins-0-number": "12312",
"clins-0-number": "1212",
"clins-0-start_date": "01/01/2020",
"clins-0-end_date": "01/01/2021",
"clins-0-obligated_amount": "5000",

View File

@@ -668,7 +668,7 @@ def test_task_orders_new_post_routes(post_url_assert_status):
"task_orders.submit_form_step_three_add_clins",
{
"clins-0-jedi_clin_type": "JEDI_CLIN_1",
"clins-0-number": "12312",
"clins-0-number": "1212",
"clins-0-start_date": "01/01/2020",
"clins-0-end_date": "01/01/2021",
"clins-0-obligated_amount": "5000",