83 lines
2.2 KiB
Python
83 lines
2.2 KiB
Python
import pytest
|
|
|
|
from atst.forms.financial import suggest_pe_id, FinancialForm, ExtendedFinancialForm
|
|
from atst.eda_client import MockEDAClient
|
|
|
|
|
|
@pytest.mark.parametrize("input_,expected", [
|
|
('0603502N', None),
|
|
('0603502NZ', None),
|
|
('603502N', '0603502N'),
|
|
('063502N', '0603502N'),
|
|
('63502N', '0603502N'),
|
|
])
|
|
def test_suggest_pe_id(input_, expected):
|
|
assert suggest_pe_id(input_) == expected
|
|
|
|
|
|
def test_funding_type_other_not_required_if_funding_type_is_not_other():
|
|
form_data = {
|
|
"funding_type": "PROC"
|
|
}
|
|
form = ExtendedFinancialForm(data=form_data)
|
|
form.validate()
|
|
assert "funding_type_other" not in form.errors
|
|
|
|
|
|
def test_funding_type_other_required_if_funding_type_is_other():
|
|
form_data = {
|
|
"funding_type": "OTHER"
|
|
}
|
|
form = ExtendedFinancialForm(data=form_data)
|
|
form.validate()
|
|
assert "funding_type_other" in form.errors
|
|
|
|
|
|
@pytest.mark.parametrize("input_,expected", [
|
|
("1234", True),
|
|
("123456", True),
|
|
("0001234", True),
|
|
("000123456", True),
|
|
("12345", False),
|
|
("00012345", False),
|
|
("0001234567", False),
|
|
("000000", False),
|
|
])
|
|
def test_treasury_code_validation(input_, expected):
|
|
form_data = {"treasury_code": input_}
|
|
form = FinancialForm(data=form_data)
|
|
form.validate()
|
|
is_valid = "treasury_code" not in form.errors
|
|
|
|
assert is_valid == expected
|
|
|
|
|
|
@pytest.mark.parametrize("input_,expected", [
|
|
("12", True),
|
|
("00012", True),
|
|
("12A", True),
|
|
("000123", True),
|
|
("00012A", True),
|
|
("0001", False),
|
|
("00012AB", False),
|
|
])
|
|
def test_ba_code_validation(input_, expected):
|
|
form_data = {"ba_code": input_}
|
|
form = FinancialForm(data=form_data)
|
|
form.validate()
|
|
is_valid = "ba_code" not in form.errors
|
|
|
|
assert is_valid == expected
|
|
|
|
def test_task_order_id_validation():
|
|
form_invalid = FinancialForm(data={"task_order_id": "1234"}, eda_client=MockEDAClient())
|
|
form_invalid.validate()
|
|
|
|
assert "task_order_id" in form_invalid.errors
|
|
|
|
form_valid = FinancialForm(data={"task_order_id": MockEDAClient.MOCK_CONTRACT_NUMBER}, eda_client=MockEDAClient())
|
|
form_valid.validate()
|
|
|
|
assert "task_order_id" not in form_valid.errors
|
|
|