change current task order table name

rename existing task order factory

fix legacy task order repr
This commit is contained in:
dandds 2018-12-12 13:34:40 -05:00
parent d0dba9e4a6
commit 2f515d7b47
14 changed files with 60 additions and 34 deletions

View File

@ -0,0 +1,24 @@
"""rename task orders
Revision ID: 3dc8b7961bd1
Revises: 02d11579a581
Create Date: 2018-12-12 13:17:25.728679
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '3dc8b7961bd1'
down_revision = '02d11579a581'
branch_labels = None
depends_on = None
def upgrade():
op.rename_table("task_orders", "legacy_task_orders")
def downgrade():
op.rename_table("legacy_task_orders", "task_orders")

View File

@ -2,19 +2,21 @@ from sqlalchemy.orm.exc import NoResultFound
from flask import current_app as app
from atst.database import db
from atst.models.task_order import TaskOrder, Source, FundingType
from atst.models.legacy_task_order import LegacyTaskOrder, Source, FundingType
from .exceptions import NotFoundError
from atst.utils import update_obj
class TaskOrders(object):
TASK_ORDER_DATA = [col.name for col in TaskOrder.__table__.c if col.name != "id"]
TASK_ORDER_DATA = [
col.name for col in LegacyTaskOrder.__table__.c if col.name != "id"
]
@classmethod
def get(cls, order_number):
try:
task_order = (
db.session.query(TaskOrder).filter_by(number=order_number).one()
db.session.query(LegacyTaskOrder).filter_by(number=order_number).one()
)
except NoResultFound:
if TaskOrders._client():
@ -39,7 +41,7 @@ class TaskOrders(object):
@classmethod
def create(cls, source=Source.MANUAL, **kwargs):
to_data = {k: v for k, v in kwargs.items() if v not in ["", None]}
task_order = TaskOrder(source=source, **to_data)
task_order = LegacyTaskOrder(source=source, **to_data)
db.session.add(task_order)
db.session.commit()

View File

@ -9,7 +9,7 @@ from .role import Role
from .user import User
from .workspace_role import WorkspaceRole
from .pe_number import PENumber
from .task_order import TaskOrder
from .legacy_task_order import LegacyTaskOrder
from .workspace import Workspace
from .project import Project
from .environment import Environment

View File

@ -18,8 +18,8 @@ class FundingType(Enum):
OTHER = "OTHER"
class TaskOrder(Base, mixins.TimestampsMixin):
__tablename__ = "task_orders"
class LegacyTaskOrder(Base, mixins.TimestampsMixin):
__tablename__ = "legacy_task_orders"
id = types.Id()
number = Column(String, unique=True)
@ -65,7 +65,7 @@ class TaskOrder(Base, mixins.TimestampsMixin):
)
def __repr__(self):
return "<TaskOrder(number='{}', verified='{}', budget='{}', expiration_date='{}', pdf='{}', id='{}')>".format(
return "<LegacyTaskOrder(number='{}', verified='{}', budget='{}', expiration_date='{}', pdf='{}', id='{}')>".format(
self.number,
self.verified,
self.budget,

View File

@ -6,7 +6,7 @@ from atst.models import Base, types, mixins
from atst.models.request_status_event import RequestStatus
from atst.utils import first_or_none
from atst.models.request_revision import RequestRevision
from atst.models.task_order import Source as TaskOrderSource
from atst.models.legacy_task_order import Source as TaskOrderSource
def map_properties_to_dict(properties, instance):
@ -39,8 +39,8 @@ class Request(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
user_id = Column(ForeignKey("users.id"), nullable=False)
creator = relationship("User", backref="owned_requests")
task_order_id = Column(ForeignKey("task_orders.id"))
task_order = relationship("TaskOrder")
task_order_id = Column(ForeignKey("legacy_task_orders.id"))
task_order = relationship("LegacyTaskOrder")
revisions = relationship(
"RequestRevision", back_populates="request", order_by="RequestRevision.sequence"

View File

@ -31,7 +31,7 @@ from atst.domain.reports import MONTHLY_SPEND_AARDVARK, MONTHLY_SPEND_BELUGA
from atst.domain.requests import Requests
from atst.domain.users import Users
from atst.domain.workspaces import Workspaces
from tests.factories import RequestFactory, TaskOrderFactory
from tests.factories import RequestFactory, LegacyTaskOrderFactory
dod_ids = [
@ -57,7 +57,7 @@ def create_demo_workspace(name, data):
return
request = RequestFactory.build(creator=workspace_owner)
request.task_order = TaskOrderFactory.build()
request.task_order = LegacyTaskOrderFactory.build()
request = Requests.update(
request.id, {"financial_verification": RequestFactory.mock_financial_data()}
)

View File

@ -14,7 +14,7 @@ from atst.domain.projects import Projects
from atst.domain.workspace_roles import WorkspaceRoles
from atst.models.invitation import Status as InvitationStatus
from atst.domain.exceptions import AlreadyExistsError
from tests.factories import RequestFactory, TaskOrderFactory, InvitationFactory
from tests.factories import RequestFactory, LegacyTaskOrderFactory, InvitationFactory
from atst.routes.dev import _DEV_USERS as DEV_USERS
WORKSPACE_USERS = [
@ -102,7 +102,7 @@ def seed_db():
requests.append(request)
request = requests[0]
request.task_order = TaskOrderFactory.build()
request.task_order = LegacyTaskOrderFactory.build()
request = Requests.update(
request.id, {"financial_verification": RequestFactory.mock_financial_data()}
)

View File

@ -1,12 +1,12 @@
from atst.domain.reports import Reports
from tests.factories import RequestFactory, TaskOrderFactory, WorkspaceFactory
from tests.factories import RequestFactory, LegacyTaskOrderFactory, WorkspaceFactory
CLIN_NUMS = ["0001", "0003", "1001", "1003", "2001", "2003"]
def test_workspace_totals():
task_order = TaskOrderFactory.create()
task_order = LegacyTaskOrderFactory.create()
for num in CLIN_NUMS:
setattr(task_order, "clin_{}".format(num), 200)

View File

@ -4,11 +4,11 @@ from atst.domain.exceptions import NotFoundError
from atst.domain.task_orders import TaskOrders
from atst.eda_client import MockEDAClient
from tests.factories import TaskOrderFactory
from tests.factories import LegacyTaskOrderFactory
def test_can_get_task_order():
new_to = TaskOrderFactory.create(number="0101969F")
new_to = LegacyTaskOrderFactory.create(number="0101969F")
to = TaskOrders.get(new_to.number)
assert to.id == to.id

View File

@ -13,7 +13,7 @@ from atst.models.request_review import RequestReview
from atst.models.request_status_event import RequestStatusEvent, RequestStatus
from atst.models.pe_number import PENumber
from atst.models.project import Project
from atst.models.task_order import TaskOrder, Source, FundingType
from atst.models.legacy_task_order import LegacyTaskOrder, Source, FundingType
from atst.models.user import User
from atst.models.role import Role
from atst.models.workspace import Workspace
@ -123,7 +123,7 @@ class RequestFactory(Base):
@classmethod
def _adjust_kwargs(cls, **kwargs):
if kwargs.pop("with_task_order", False) and "task_order" not in kwargs:
kwargs["task_order"] = TaskOrderFactory.build()
kwargs["task_order"] = LegacyTaskOrderFactory.build()
return kwargs
@classmethod
@ -212,9 +212,9 @@ class PENumberFactory(Base):
model = PENumber
class TaskOrderFactory(Base):
class LegacyTaskOrderFactory(Base):
class Meta:
model = TaskOrder
model = LegacyTaskOrder
source = Source.MANUAL
funding_type = FundingType.PROC

View File

@ -1,15 +1,15 @@
from tests.factories import TaskOrderFactory
from tests.factories import LegacyTaskOrderFactory
from tests.assert_util import dict_contains
def test_as_dictionary():
data = TaskOrderFactory.dictionary()
real_task_order = TaskOrderFactory.create(**data)
data = LegacyTaskOrderFactory.dictionary()
real_task_order = LegacyTaskOrderFactory.create(**data)
assert dict_contains(real_task_order.to_dictionary(), data)
def test_budget():
task_order = TaskOrderFactory.create(
task_order = LegacyTaskOrderFactory.create(
clin_0001=500,
clin_0003=200,
clin_1001=None,

View File

@ -3,14 +3,14 @@ from flask import url_for
from atst.models.request_status_event import RequestStatus
from tests.factories import RequestFactory, TaskOrderFactory, UserFactory
from tests.factories import RequestFactory, LegacyTaskOrderFactory, UserFactory
def test_can_show_financial_data(client, user_session):
user = UserFactory.create()
user_session(user)
task_order = TaskOrderFactory.create()
task_order = LegacyTaskOrderFactory.create()
request = RequestFactory.create_with_status(
status=RequestStatus.PENDING_CCPO_APPROVAL, task_order=task_order, creator=user
)

View File

@ -7,7 +7,7 @@ from atst.domain.roles import Roles
from tests.factories import (
RequestFactory,
TaskOrderFactory,
LegacyTaskOrderFactory,
UserFactory,
RequestReviewFactory,
RequestStatusEventFactory,
@ -46,7 +46,7 @@ def test_non_ccpo_cannot_view_approval(user_session, client):
def prepare_request_pending_approval(creator, pdf_attachment=None):
task_order = TaskOrderFactory.create(number="abc123", pdf=pdf_attachment)
task_order = LegacyTaskOrderFactory.create(number="abc123", pdf=pdf_attachment)
return RequestFactory.create_with_status(
status=RequestStatus.PENDING_CCPO_APPROVAL,
task_order=task_order,
@ -86,7 +86,7 @@ def test_task_order_download(app, client, user_session, pdf_upload):
user_session(user)
attachment = Attachment.attach(pdf_upload)
task_order = TaskOrderFactory.create(number="abc123", pdf=attachment)
task_order = LegacyTaskOrderFactory.create(number="abc123", pdf=attachment)
request = RequestFactory.create(task_order=task_order, creator=user)
# ensure that real data for pdf upload has been flushed to disk

View File

@ -11,7 +11,7 @@ from atst.routes.requests.financial_verification import (
)
from tests.mocks import MOCK_VALID_PE_ID
from tests.factories import RequestFactory, UserFactory, TaskOrderFactory
from tests.factories import RequestFactory, UserFactory, LegacyTaskOrderFactory
from atst.forms.exceptions import FormValidationError
from atst.domain.requests.financial_verification import (
PENumberValidator,
@ -525,7 +525,7 @@ def test_always_derives_pdf_filename(fv_data, e_fv_data, pdf_upload):
attachment = Attachment.attach(
pdf_upload, resource="task_order", resource_id=request_one.id
)
task_order = TaskOrderFactory.create(pdf=attachment)
task_order = LegacyTaskOrderFactory.create(pdf=attachment)
request_two = RequestFactory.create(creator=user, task_order=task_order)
form_one = GetFinancialVerificationForm(