75 lines
2.5 KiB
Python
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()
|