77 lines
2.6 KiB
Python
77 lines
2.6 KiB
Python
import re
|
|
import pytest
|
|
import tornado
|
|
import urllib
|
|
from tests.mocks import MOCK_REQUEST, MOCK_USER
|
|
from tests.factories import PENumberFactory
|
|
|
|
|
|
class TestPENumberInForm:
|
|
|
|
required_data = {
|
|
"pe_id": "123",
|
|
"task_order_id": "1234567899C0001",
|
|
"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",
|
|
"funding_type": "RDTE",
|
|
"funding_type_other": "other",
|
|
"clin_0001": "50,000",
|
|
"clin_0003": "13,000",
|
|
"clin_1001": "30,000",
|
|
"clin_1003": "7,000",
|
|
"clin_2001": "30,000",
|
|
"clin_2003": "7,000",
|
|
}
|
|
|
|
def _set_monkeypatches(self, monkeypatch):
|
|
monkeypatch.setattr("atst.forms.financial.FinancialForm.validate", lambda s: True)
|
|
monkeypatch.setattr("atst.domain.requests.Requests.get", lambda i: MOCK_REQUEST)
|
|
|
|
def submit_data(self, client, data):
|
|
response = client.post(
|
|
"/requests/verify/{}".format(MOCK_REQUEST.id),
|
|
headers={"Content-Type": "application/x-www-form-urlencoded"},
|
|
data=urllib.parse.urlencode(data),
|
|
follow_redirects=False,
|
|
)
|
|
return response
|
|
|
|
def test_submit_request_form_with_invalid_pe_id(self, monkeypatch, client):
|
|
self._set_monkeypatches(monkeypatch)
|
|
|
|
response = self.submit_data(client, self.required_data)
|
|
|
|
assert "We couldn\'t find that PE number" in response.data.decode()
|
|
assert response.status_code == 200
|
|
|
|
def test_submit_request_form_with_unchanged_pe_id(self, monkeypatch, client):
|
|
self._set_monkeypatches(monkeypatch)
|
|
|
|
data = dict(self.required_data)
|
|
data['pe_id'] = MOCK_REQUEST.body['financial_verification']['pe_id']
|
|
|
|
response = self.submit_data(client, data)
|
|
|
|
assert response.status_code == 302
|
|
assert "/requests/financial_verification_submitted" in response.headers.get("Location")
|
|
|
|
def test_submit_request_form_with_new_valid_pe_id(self, session, monkeypatch, client):
|
|
self._set_monkeypatches(monkeypatch)
|
|
pe = PENumberFactory.create(number="8675309U", description="sample PE number")
|
|
session.add(pe)
|
|
session.commit()
|
|
|
|
data = dict(self.required_data)
|
|
data['pe_id'] = pe.number
|
|
|
|
response = self.submit_data(client, data)
|
|
|
|
assert response.status_code == 302
|
|
assert "/requests/financial_verification_submitted" in response.headers.get("Location")
|