ans123's picture
Initial upload from Colab
ef1ad9e verified
from .test_payloads.payload_tools_router import *
# ======================================================= #
# ================= CONSUMER TEST CASES ================= #
# ======================================================= #
# get current offer for consumer
def test_get_current_offer_consumer(test_client, consumer_header):
url = "/tools/get_current_offer_consumer"
response = test_client.get(url, headers=consumer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Application details not found":
assert response["message"] == "Application details not found"
else:
assert response["message"] == "No rate has been assigned by the Loan officer"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Please fill product and pricing details to continue"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Offer details fetched successfully!"
# get amortization schedule for consumer
def test_get_amortization_schedule_consumer(test_client, consumer_header):
url = "/tools/get_amortization_schedule_consumer"
response = test_client.get(url, headers=consumer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Application details not found":
assert response["message"] == "Application details not found"
else:
assert response["message"] == "No rate has been assigned by the Loan officer"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Details not found"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Amortization details fetched successfully!"
# download quote for consumer
def test_download_quote_consumer(test_client, application_id, consumer_header):
payload = quote_payload
url = f"/tools/download_quote_consumer/application/{application_id}"
response = test_client.post(url, json=payload, headers=consumer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "Please provide 1 to 3 quote's details"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "File not found"
else:
assert response.status_code == 200
# compare offer by user input for consumer
def test_compare_offer_by_user_input_consumer(test_client, consumer_header):
payload = compare_offer_payload
url = "/tools/compare_offer_by_user_input_consumer"
response = test_client.post(url, json=payload, headers=consumer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "Maximum 2 existing offers can be passed"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Product comparision details fetched"
# ======================================================= #
# =============== LOAN OFFICER TEST CASES =============== #
# ======================================================= #
# get current offer for loan officer
def test_get_current_offer(test_client, application_id, loan_officer_header):
url = f"/tools/get_current_offer/application/{application_id}"
response = test_client.get(url, headers=loan_officer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "No rate has been assigned by the Loan officer"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Please fill product and pricing details to continue"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Offer details fetched successfully!"
# get amortization schedule for loan officer
def test_get_amortization_schedule(test_client, application_id, loan_officer_header):
url = f"/tools/get_amortization_schedule/application/{application_id}"
response = test_client.get(url, headers=loan_officer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "No rate has been assigned by the Loan officer"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Details not found"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Amortization details fetched successfully!"
# download quote for loan officer
def test_download_quote_tools(test_client, application_id, loan_officer_header):
payload = quote_payload
url = f"/tools/download_quote/application/{application_id}"
response = test_client.post(url, json=payload, headers=loan_officer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "Please provide 1 to 3 quote's details"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "File not found"
else:
assert response.status_code == 200
# compare offer by user input for loan officer
def test_compare_offer_by_user_input_tools(test_client, application_id, loan_officer_header):
payload = compare_offer_payload
payload["application_id"] = application_id
url = "/tools/compare_offer_by_user_input"
response = test_client.post(url, json=payload, headers=loan_officer_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
if response["message"] == "Maximum 2 existing offers can be passed":
assert response["message"] == "Maximum 2 existing offers can be passed"
else:
assert response["message"] == "Loan amount cannot be greater than Estimated Sales Price of the Property"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Product comparision details fetched"
# get users list for loan officer
def test_get_users_tools(test_client, loan_officer_header):
url = "/tools/get_users"
response = test_client.post(url, headers=loan_officer_header)
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "User profile data fetched succesfully"
# ======================================================= #
# ============ LOAN OFFICER ADMIN TEST CASES ============ #
# ======================================================= #
# get current offer for loan officer admin
def test_get_current_offer_admin(test_client, application_id, loan_officer_admin_header):
url = f"/tools/get_current_offer/application/{application_id}"
response = test_client.get(url, headers=loan_officer_admin_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "No rate has been assigned by the Loan officer"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Please fill product and pricing details to continue"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Offer details fetched successfully!"
# get amortization schedule for loan officer admin
def test_get_amortization_schedule_admin(test_client, application_id, loan_officer_admin_header):
url = f"/tools/get_amortization_schedule/application/{application_id}"
response = test_client.get(url, headers=loan_officer_admin_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "No rate has been assigned by the Loan officer"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Details not found"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Amortization details fetched successfully!"
# download quote for loan officer admin
def test_download_quote_tools_admin(test_client, application_id, loan_officer_admin_header):
payload = quote_payload
url = f"/tools/download_quote/application/{application_id}"
response = test_client.post(url, json=payload, headers=loan_officer_admin_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
else:
assert response["message"] == "Please provide 1 to 3 quote's details"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "File not found"
else:
assert response.status_code == 200
# compare offer by user input for loan officer admin
def test_compare_offer_by_user_input_tools_admin(test_client, application_id, loan_officer_admin_header):
payload = compare_offer_payload
payload["application_id"] = application_id
url = "/tools/compare_offer_by_user_input"
response = test_client.post(url, json=payload, headers=loan_officer_admin_header)
if response.status_code == 400:
assert response.status_code == 400
response = response.json()
assert response["status"] == 400
if response["message"] == "Please provide application id":
assert response["message"] == "Please provide application id"
if response["message"] == "Maximum 2 existing offers can be passed":
assert response["message"] == "Maximum 2 existing offers can be passed"
else:
assert response["message"] == "Loan amount cannot be greater than Estimated Sales Price of the Property"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Product comparision details fetched"
# get users list for loan officer admin
def test_get_users_tools_admin(test_client, loan_officer_admin_header):
url = "/tools/get_users"
response = test_client.post(url, headers=loan_officer_admin_header)
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "User profile data fetched succesfully"