diff --git a/atst/forms/financial.py b/atst/forms/financial.py
index d184e6b8..71dd65f4 100644
--- a/atst/forms/financial.py
+++ b/atst/forms/financial.py
@@ -2,7 +2,7 @@ import re
import pendulum
from wtforms.fields.html5 import DateField, EmailField
from wtforms.fields import StringField, FileField
-from wtforms.validators import InputRequired, Required, Email, Regexp
+from wtforms.validators import InputRequired, Required, Optional, Email, Regexp
from flask_wtf.file import FileAllowed
from atst.domain.exceptions import NotFoundError
@@ -123,7 +123,7 @@ class BaseFinancialForm(ValidatedForm):
ba_code = StringField(
"Program Budget Activity (BA) Code (Optional)",
description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by an optional letter.",
- validators=[Regexp(BA_CODE_REGEX)],
+ validators=[Optional(), Regexp(BA_CODE_REGEX)],
)
fname_co = StringField("KO First Name", validators=[Required()])
diff --git a/tests/forms/test_financial.py b/tests/forms/test_financial.py
index 970e4b6b..dc89ab30 100644
--- a/tests/forms/test_financial.py
+++ b/tests/forms/test_financial.py
@@ -74,8 +74,8 @@ def test_treasury_code_validation(input_, expected):
],
)
def test_ba_code_validation(input_, expected):
- form_data = {"ba_code": input_}
- form = FinancialForm(data=form_data)
+ form_data = ImmutableMultiDict([("ba_code", input_)])
+ form = FinancialForm(form_data)
form.validate()
is_valid = "ba_code" not in form.errors