requests domain method for rejecting request with appropriate status

This commit is contained in:
dandds 2018-09-11 12:02:49 -04:00
parent 68a32e0a08
commit 6859d562d6
4 changed files with 43 additions and 17 deletions

View File

@ -291,6 +291,9 @@ WHERE requests_with_status.status = :status
@classmethod @classmethod
def request_changes(cls, user, request, review_data): def request_changes(cls, user, request, review_data):
Requests.set_status(request, RequestStatus.CHANGES_REQUESTED) if request.status == RequestStatus.PENDING_CCPO_ACCEPTANCE:
Requests.set_status(request, RequestStatus.CHANGES_REQUESTED)
elif request.status == RequestStatus.PENDING_CCPO_APPROVAL:
Requests.set_status(request, RequestStatus.CHANGES_REQUESTED_TO_FINVER)
return Requests._add_review(user, request, review_data) return Requests._add_review(user, request, review_data)

View File

@ -182,11 +182,8 @@ def test_set_status_sets_revision():
def test_advance_to_financial_verification(): def test_advance_to_financial_verification():
request = RequestFactory.create() request = RequestFactory.create_with_status(
RequestStatusEventFactory.create( status=RequestStatus.PENDING_CCPO_ACCEPTANCE
request=request,
revision=request.latest_revision,
new_status=RequestStatus.PENDING_CCPO_ACCEPTANCE,
) )
review_data = RequestReviewFactory.dictionary() review_data = RequestReviewFactory.dictionary()
Requests.advance(UserFactory.create(), request, review_data) Requests.advance(UserFactory.create(), request, review_data)
@ -196,12 +193,31 @@ def test_advance_to_financial_verification():
def test_advance_to_approval(): def test_advance_to_approval():
request = RequestFactory.create() request = RequestFactory.create_with_status(
RequestStatusEventFactory.create( status=RequestStatus.PENDING_CCPO_APPROVAL
request=request,
revision=request.latest_revision,
new_status=RequestStatus.PENDING_CCPO_APPROVAL,
) )
review_data = RequestReviewFactory.dictionary() review_data = RequestReviewFactory.dictionary()
Requests.advance(UserFactory.create(), request, review_data) Requests.advance(UserFactory.create(), request, review_data)
assert request.status == RequestStatus.APPROVED assert request.status == RequestStatus.APPROVED
def test_request_changes_to_request_application():
request = RequestFactory.create_with_status(
status=RequestStatus.PENDING_CCPO_ACCEPTANCE
)
review_data = RequestReviewFactory.dictionary()
Requests.request_changes(UserFactory.create(), request, review_data)
assert request.status == RequestStatus.CHANGES_REQUESTED
current_review = request.latest_status.review
assert current_review.fname_mao == review_data["fname_mao"]
def test_request_changes_to_financial_verification_info():
request = RequestFactory.create_with_status(
status=RequestStatus.PENDING_CCPO_APPROVAL
)
review_data = RequestReviewFactory.dictionary()
Requests.request_changes(UserFactory.create(), request, review_data)
assert request.status == RequestStatus.CHANGES_REQUESTED_TO_FINVER
current_review = request.latest_status.review
assert current_review.fname_mao == review_data["fname_mao"]

View File

@ -148,6 +148,14 @@ class RequestFactory(Base):
return RequestRevisionFactory.build(**data) return RequestRevisionFactory.build(**data)
@classmethod
def create_with_status(cls, status=RequestStatus.STARTED, **kwargs):
request = RequestFactory(**kwargs)
RequestStatusEventFactory.create(
request=request, revision=request.latest_revision, new_status=status
)
return request
class PENumberFactory(Base): class PENumberFactory(Base):
class Meta: class Meta:

View File

@ -71,11 +71,8 @@ def test_task_order_download_does_not_exist(client, user_session):
def test_can_submit_request_approval(client, user_session): def test_can_submit_request_approval(client, user_session):
user = UserFactory.from_atat_role("ccpo") user = UserFactory.from_atat_role("ccpo")
user_session(user) user_session(user)
request = RequestFactory.create() request = RequestFactory.create_with_status(
RequestStatusEventFactory.create( status=RequestStatus.PENDING_CCPO_ACCEPTANCE
request=request,
revision=request.latest_revision,
new_status=RequestStatus.PENDING_CCPO_ACCEPTANCE,
) )
review_data = RequestReviewFactory.dictionary() review_data = RequestReviewFactory.dictionary()
review_data["approved"] = True review_data["approved"] = True
@ -89,7 +86,9 @@ def test_can_submit_request_approval(client, user_session):
def test_can_submit_request_denial(client, user_session): def test_can_submit_request_denial(client, user_session):
user = UserFactory.from_atat_role("ccpo") user = UserFactory.from_atat_role("ccpo")
user_session(user) user_session(user)
request = RequestFactory.create() request = RequestFactory.create_with_status(
status=RequestStatus.PENDING_CCPO_ACCEPTANCE
)
review_data = RequestReviewFactory.dictionary() review_data = RequestReviewFactory.dictionary()
review_data["denied"] = True review_data["denied"] = True
response = client.post( response = client.post(