diff --git a/alembic/versions/3dc8b7961bd1_rename_task_orders.py b/alembic/versions/3dc8b7961bd1_rename_task_orders.py new file mode 100644 index 00000000..266904b1 --- /dev/null +++ b/alembic/versions/3dc8b7961bd1_rename_task_orders.py @@ -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") diff --git a/atst/domain/task_orders.py b/atst/domain/task_orders.py index 5bfdf247..70f64904 100644 --- a/atst/domain/task_orders.py +++ b/atst/domain/task_orders.py @@ -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() diff --git a/atst/models/__init__.py b/atst/models/__init__.py index 27afc327..972e2064 100644 --- a/atst/models/__init__.py +++ b/atst/models/__init__.py @@ -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 diff --git a/atst/models/task_order.py b/atst/models/legacy_task_order.py similarity index 88% rename from atst/models/task_order.py rename to atst/models/legacy_task_order.py index af1736bf..81a994a9 100644 --- a/atst/models/task_order.py +++ b/atst/models/legacy_task_order.py @@ -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 "".format( + return "".format( self.number, self.verified, self.budget, diff --git a/atst/models/request.py b/atst/models/request.py index 2a4cef41..e5316065 100644 --- a/atst/models/request.py +++ b/atst/models/request.py @@ -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" diff --git a/script/remove_sample_data.py b/script/remove_sample_data.py index c49a52fa..50015796 100644 --- a/script/remove_sample_data.py +++ b/script/remove_sample_data.py @@ -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()} ) diff --git a/script/seed_sample.py b/script/seed_sample.py index eaa49947..9a137ad9 100644 --- a/script/seed_sample.py +++ b/script/seed_sample.py @@ -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()} ) diff --git a/tests/domain/test_reports.py b/tests/domain/test_reports.py index 1aa832ea..feac4ba5 100644 --- a/tests/domain/test_reports.py +++ b/tests/domain/test_reports.py @@ -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) diff --git a/tests/domain/test_task_orders.py b/tests/domain/test_task_orders.py index 1a8fe59a..b264ce4a 100644 --- a/tests/domain/test_task_orders.py +++ b/tests/domain/test_task_orders.py @@ -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 diff --git a/tests/factories.py b/tests/factories.py index 96e9c22c..3a666f73 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -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 diff --git a/tests/models/test_task_order.py b/tests/models/test_task_order.py index f95cf0d0..3cf08ecb 100644 --- a/tests/models/test_task_order.py +++ b/tests/models/test_task_order.py @@ -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, diff --git a/tests/routes/requests/requests_form/test_details.py b/tests/routes/requests/requests_form/test_details.py index eed48c53..c5930f58 100644 --- a/tests/routes/requests/requests_form/test_details.py +++ b/tests/routes/requests/requests_form/test_details.py @@ -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 ) diff --git a/tests/routes/requests/test_approval.py b/tests/routes/requests/test_approval.py index d27c7cb9..1d5f0c1c 100644 --- a/tests/routes/requests/test_approval.py +++ b/tests/routes/requests/test_approval.py @@ -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 diff --git a/tests/routes/requests/test_financial_verification.py b/tests/routes/requests/test_financial_verification.py index 9a5917f6..2e9daa9f 100644 --- a/tests/routes/requests/test_financial_verification.py +++ b/tests/routes/requests/test_financial_verification.py @@ -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(