change current task order table name
rename existing task order factory fix legacy task order repr
This commit is contained in:
parent
d0dba9e4a6
commit
2f515d7b47
24
alembic/versions/3dc8b7961bd1_rename_task_orders.py
Normal file
24
alembic/versions/3dc8b7961bd1_rename_task_orders.py
Normal 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")
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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,
|
@ -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"
|
||||
|
@ -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()}
|
||||
)
|
||||
|
@ -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()}
|
||||
)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user