Handle empty values

This commit is contained in:
richard-dds 2018-10-23 10:54:53 -04:00
parent e40c6c67a3
commit 3f3b90e3c7
3 changed files with 15 additions and 5 deletions

View File

@ -3,9 +3,8 @@ from flask import current_app as app
from atst.database import db
from atst.models.task_order import TaskOrder, Source, FundingType
from atst.models.attachment import Attachment
from .exceptions import NotFoundError
from atst.utils import drop, update_obj
from atst.utils import update_obj
class TaskOrders(object):
@ -53,7 +52,7 @@ class TaskOrders(object):
@classmethod
def update(cls, task_order, dct):
updated = update_obj(task_order, dct)
updated = update_obj(task_order, dct, ignore_vals=lambda v: v in ["", None])
db.session.add(updated)
db.session.commit()
return updated

View File

@ -33,9 +33,9 @@ def getattr_path(obj, path, default=None):
return _obj
def update_obj(obj, dct):
def update_obj(obj, dct, ignore_vals=lambda v: v is None):
for k, v in dct.items():
if hasattr(obj, k) and v is not None:
if hasattr(obj, k) and not ignore_vals(v):
setattr(obj, k, v)
return obj

View File

@ -255,6 +255,17 @@ def test_task_order_info_present_in_extended_form(fv_data, e_fv_data):
assert form.task_order.clin_0001.data
def test_update_ignores_empty_values(fv_data, e_fv_data):
request = RequestFactory.create()
user = UserFactory.create()
data = {
**fv_data, **e_fv_data, "task_order-funding_type": ""
}
SaveFinancialVerificationDraft(
TrueValidator, TrueValidator, user, request, data, is_extended=True
).execute()
def test_simple_form_does_not_generate_task_order(fv_data):
request = RequestFactory.create()
user = UserFactory.create()