atst/tests/forms/test_task_order.py
2019-09-06 10:12:35 -04:00

75 lines
2.5 KiB
Python

import datetime
from dateutil.relativedelta import relativedelta
from flask import current_app as app
from atst.forms.task_order import CLINForm
from atst.models import JEDICLINType
from atst.utils.localization import translate
import tests.factories as factories
def test_clin_form_jedi_clin_type():
jedi_type = JEDICLINType.JEDI_CLIN_2
clin = factories.CLINFactory.create(jedi_clin_type=jedi_type)
clin_form = CLINForm(obj=clin)
assert clin_form.jedi_clin_type.data == jedi_type.value
def test_clin_form_start_date_before_end_date():
invalid_start = datetime.date(2020, 12, 12)
invalid_end = datetime.date(2020, 1, 1)
invalid_clin = factories.CLINFactory.create(
start_date=invalid_start, end_date=invalid_end
)
clin_form = CLINForm(obj=invalid_clin)
assert not clin_form.validate()
assert (
translate("forms.task_order.pop_errors.date_order")
in clin_form.start_date.errors
)
valid_start = datetime.date(2020, 1, 1)
valid_end = datetime.date(2020, 12, 12)
valid_clin = factories.CLINFactory.create(
start_date=valid_start, end_date=valid_end
)
valid_clin_form = CLINForm(obj=valid_clin)
assert valid_clin_form.validate()
def test_clin_form_pop_dates_within_contract_dates():
CONTRACT_START_DATE = datetime.datetime.strptime(
app.config.get("CONTRACT_START_DATE"), "%Y-%m-%d"
).date()
CONTRACT_END_DATE = datetime.datetime.strptime(
app.config.get("CONTRACT_END_DATE"), "%Y-%m-%d"
).date()
invalid_start = CONTRACT_START_DATE - relativedelta(months=1)
invalid_end = CONTRACT_END_DATE + relativedelta(months=1)
invalid_clin = factories.CLINFactory.create(
start_date=invalid_start, end_date=invalid_end
)
clin_form = CLINForm(obj=invalid_clin)
assert not clin_form.validate()
assert (
translate(
"forms.task_order.pop_errors.start",
{"date": CONTRACT_START_DATE.strftime("%b %d, %Y")},
)
) in clin_form.start_date.errors
assert (
translate(
"forms.task_order.pop_errors.end",
{"date": CONTRACT_END_DATE.strftime("%b %d, %Y")},
)
) in clin_form.end_date.errors
valid_start = CONTRACT_START_DATE + relativedelta(months=1)
valid_end = CONTRACT_END_DATE - relativedelta(months=1)
valid_clin = factories.CLINFactory.create(
start_date=valid_start, end_date=valid_end
)
valid_clin_form = CLINForm(obj=valid_clin)
assert valid_clin_form.validate()