diff --git a/atst/domain/requests.py b/atst/domain/requests.py index 468878a4..4c922629 100644 --- a/atst/domain/requests.py +++ b/atst/domain/requests.py @@ -2,9 +2,8 @@ from enum import Enum from sqlalchemy import exists, and_, exc from sqlalchemy.sql import text from sqlalchemy.orm.exc import NoResultFound -from sqlalchemy.orm.attributes import flag_modified from werkzeug.datastructures import FileStorage -import pendulum +import dateutil from atst.database import db from atst.domain.authz import Authorization @@ -20,11 +19,11 @@ from .exceptions import NotFoundError, UnauthorizedError def create_revision_from_request_body(body): body = {k: v for p in body.values() for k, v in p.items()} - TIMESTAMPS = ["start_date", "date_latest_training"] + DATES = ["start_date", "date_latest_training"] coerced_timestamps = { - k: pendulum.parse(v) + k: dateutil.parser.parse(v) for k, v in body.items() - if k in TIMESTAMPS and isinstance(v, str) + if k in DATES and isinstance(v, str) } body = {**body, **coerced_timestamps} return RequestRevision(**body) diff --git a/atst/models/request.py b/atst/models/request.py index 51825ebf..b64908f8 100644 --- a/atst/models/request.py +++ b/atst/models/request.py @@ -8,6 +8,7 @@ from atst.models import Base from atst.models.types import Id from atst.models.request_status_event import RequestStatus from atst.utils import deep_merge, first_or_none +from atst.models.request_revision import RequestRevision def map_properties_to_dict(properties, instance): diff --git a/atst/models/request_revision.py b/atst/models/request_revision.py index 193e2ca3..373c755e 100644 --- a/atst/models/request_revision.py +++ b/atst/models/request_revision.py @@ -1,7 +1,5 @@ -import pendulum from sqlalchemy import ( Column, - func, ForeignKey, String, Boolean, @@ -10,8 +8,6 @@ from sqlalchemy import ( BigInteger, Sequence, ) -from sqlalchemy.types import DateTime -from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.orm import relationship from atst.models import Base diff --git a/tests/factories.py b/tests/factories.py index 4a90649b..5f94da13 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -77,7 +77,7 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory): fname_poc=user.first_name, lname_poc=user.last_name, jedi_usage="adf", - start_date=datetime.datetime(2018, 8, 8, tzinfo=datetime.timezone.utc), + start_date=datetime.date(2018, 8, 8), cloud_native="yes", dollar_value=dollar_value, dod_component=SERVICE_BRANCHES[2][1], @@ -100,9 +100,7 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory): fname_request=user.first_name, lname_request=user.last_name, service_branch=SERVICE_BRANCHES[1][1], - date_latest_training=datetime.datetime( - 2018, 8, 6, tzinfo=datetime.timezone.utc - ), + date_latest_training=datetime.date(2018, 8, 6), ) data = (