Implement SaveFinancialVerificationDraft
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import pytest
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from atst.eda_client import MockEDAClient
|
||||
from atst.routes.requests.financial_verification import UpdateFinancialVerification
|
||||
from atst.routes.requests.financial_verification import UpdateFinancialVerification, SaveFinancialVerificationDraft
|
||||
|
||||
from tests.mocks import MOCK_REQUEST, MOCK_USER, MOCK_VALID_PE_ID
|
||||
from tests.factories import (
|
||||
@@ -17,23 +18,31 @@ from atst.domain.requests.financial_verification import (
|
||||
TaskOrderNumberValidator,
|
||||
)
|
||||
|
||||
required_data = {
|
||||
"pe_id": "123",
|
||||
"task_order_number": MockEDAClient.MOCK_CONTRACT_NUMBER,
|
||||
"fname_co": "Contracting",
|
||||
"lname_co": "Officer",
|
||||
"email_co": "jane@mail.mil",
|
||||
"office_co": "WHS",
|
||||
"fname_cor": "Officer",
|
||||
"lname_cor": "Representative",
|
||||
"email_cor": "jane@mail.mil",
|
||||
"office_cor": "WHS",
|
||||
"uii_ids": "1234",
|
||||
"treasury_code": "00123456",
|
||||
"ba_code": "02A",
|
||||
}
|
||||
@pytest.fixture
|
||||
def fv_data():
|
||||
return {
|
||||
"pe_id": "123",
|
||||
"task_order_number": MockEDAClient.MOCK_CONTRACT_NUMBER,
|
||||
"fname_co": "Contracting",
|
||||
"lname_co": "Officer",
|
||||
"email_co": "jane@mail.mil",
|
||||
"office_co": "WHS",
|
||||
"fname_cor": "Officer",
|
||||
"lname_cor": "Representative",
|
||||
"email_cor": "jane@mail.mil",
|
||||
"office_cor": "WHS",
|
||||
"uii_ids": "1234",
|
||||
"treasury_code": "00123456",
|
||||
"ba_code": "02A",
|
||||
}
|
||||
|
||||
|
||||
TrueValidator = MagicMock()
|
||||
TrueValidator.validate = MagicMock(return_value=True)
|
||||
|
||||
FalseValidator = MagicMock()
|
||||
FalseValidator.validate = MagicMock(return_value=False)
|
||||
|
||||
class MockPEValidator(object):
|
||||
def validate(self, request, field):
|
||||
return True
|
||||
@@ -44,14 +53,14 @@ class MockTaskOrderValidator(object):
|
||||
return True
|
||||
|
||||
|
||||
def test_update():
|
||||
def test_update(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
data = {**required_data, "pe_id": MOCK_VALID_PE_ID}
|
||||
data = {**fv_data, "pe_id": MOCK_VALID_PE_ID}
|
||||
|
||||
response_context = UpdateFinancialVerification(
|
||||
MockPEValidator(),
|
||||
MockTaskOrderValidator(),
|
||||
TrueValidator,
|
||||
TrueValidator,
|
||||
user,
|
||||
request,
|
||||
data,
|
||||
@@ -61,13 +70,13 @@ def test_update():
|
||||
assert response_context.get("workspace")
|
||||
|
||||
|
||||
def test_re_enter_pe_number():
|
||||
def test_re_enter_pe_number(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
data = {**required_data, "pe_id": "0101228M"}
|
||||
data = {**fv_data, "pe_id": "0101228M"}
|
||||
update_fv = UpdateFinancialVerification(
|
||||
PENumberValidator(),
|
||||
MockTaskOrderValidator(),
|
||||
TrueValidator,
|
||||
user,
|
||||
request,
|
||||
data,
|
||||
@@ -81,12 +90,12 @@ def test_re_enter_pe_number():
|
||||
assert response_context.get("status", "submitted")
|
||||
|
||||
|
||||
def test_invalid_task_order_number():
|
||||
def test_invalid_task_order_number(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
data = {**required_data, "task_order_number": "DCA10096D0051"}
|
||||
data = {**fv_data, "task_order_number": "DCA10096D0051"}
|
||||
update_fv = UpdateFinancialVerification(
|
||||
MockPEValidator(),
|
||||
TrueValidator,
|
||||
TaskOrderNumberValidator(),
|
||||
user,
|
||||
request,
|
||||
@@ -98,12 +107,12 @@ def test_invalid_task_order_number():
|
||||
update_fv.execute()
|
||||
|
||||
|
||||
def test_extended_fv_data(extended_financial_verification_data):
|
||||
def test_extended_fv_data(fv_data, extended_financial_verification_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
data = {**required_data, **extended_financial_verification_data}
|
||||
data = {**fv_data, **extended_financial_verification_data}
|
||||
update_fv = UpdateFinancialVerification(
|
||||
MockPEValidator(),
|
||||
TrueValidator,
|
||||
TaskOrderNumberValidator(),
|
||||
user,
|
||||
request,
|
||||
@@ -114,17 +123,64 @@ def test_extended_fv_data(extended_financial_verification_data):
|
||||
assert update_fv.execute()
|
||||
|
||||
|
||||
def test_missing_extended_fv_data():
|
||||
def test_missing_extended_fv_data(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
update_fv = UpdateFinancialVerification(
|
||||
MockPEValidator(),
|
||||
TrueValidator,
|
||||
TaskOrderNumberValidator(),
|
||||
user,
|
||||
request,
|
||||
required_data,
|
||||
fv_data,
|
||||
is_extended=True,
|
||||
)
|
||||
|
||||
with pytest.raises(FormValidationError):
|
||||
update_fv.execute()
|
||||
|
||||
|
||||
def test_save_empty_draft():
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
save_draft = SaveFinancialVerificationDraft(
|
||||
TrueValidator,
|
||||
TrueValidator,
|
||||
user,
|
||||
request,
|
||||
{},
|
||||
is_extended=False,
|
||||
)
|
||||
|
||||
assert save_draft.execute()
|
||||
|
||||
|
||||
def test_save_draft_with_invalid_task_order(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
save_draft = SaveFinancialVerificationDraft(
|
||||
TrueValidator,
|
||||
FalseValidator,
|
||||
user,
|
||||
request,
|
||||
fv_data,
|
||||
is_extended=False,
|
||||
)
|
||||
|
||||
with pytest.raises(FormValidationError):
|
||||
assert save_draft.execute()
|
||||
|
||||
|
||||
def test_save_draft_with_invalid_pe_number(fv_data):
|
||||
request = RequestFactory.create()
|
||||
user = UserFactory.create()
|
||||
save_draft = SaveFinancialVerificationDraft(
|
||||
FalseValidator,
|
||||
TrueValidator,
|
||||
user,
|
||||
request,
|
||||
fv_data,
|
||||
is_extended=False,
|
||||
)
|
||||
|
||||
with pytest.raises(FormValidationError):
|
||||
assert save_draft.execute()
|
||||
|
Reference in New Issue
Block a user