MIRA_LABS_AI / demo-backend /loan-service /tests /test_quick_price_router.py
ans123's picture
Initial upload from Colab
ef1ad9e verified
from .test_payloads.payload_quick_price_router import *
# ======================================================= #
# =============== LOAN OFFICER TEST CASES =============== #
# ======================================================= #
# get quick price
def test_get_quick_price(test_client, loan_officer_header):
payload = get_quick_price_payload
url = "/price/get_quick_price"
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 enter loan term details":
assert response["message"] == "Please enter loan term details"
elif response["message"] == "Please enter commitment period details":
assert response["message"] == "Please enter commitment period details"
elif response["message"] == "Please enter loan purpose details":
assert response["message"] == "Please enter loan purpose details"
elif response["message"] == "Please enter refinance purpose details":
assert response["message"] == "Please enter refinance purpose details"
elif response["message"] == "Please enter credit score":
assert response["message"] == "Please enter credit score"
else:
assert response["message"] == "Please enter LTV details"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Fetched all available products successfully!"
# download quote
def test_download_quote_qp(test_client, loan_officer_header):
payload = quote_payload
url = "/price/download_quote"
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
# send quote
def test_send_quote_qp(test_client, loan_officer_header):
client_name = "Naval Verma"
client_email = "[email protected]"
payload = quote_payload
url = f"/price/send_quote?client_name={client_name}&client_email={client_email}"
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"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Email sent successfully!"
# compare products
def test_compare_products_qp(test_client, loan_officer_header):
payload = compare_products_payload
url = "/product/compare_products_quick_price"
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
assert response["message"] == "Only 2 or 3 products can be compared"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Loan officer not found."
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Product comparision details fetched"
# ======================================================= #
# ============ LOAN OFFICER ADMIN TEST CASES ============ #
# ======================================================= #
# get quick price
def test_get_quick_price_admin(test_client, loan_officer_admin_header):
payload = get_quick_price_payload
url = "/price/get_quick_price"
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 enter loan term details":
assert response["message"] == "Please enter loan term details"
elif response["message"] == "Please enter commitment period details":
assert response["message"] == "Please enter commitment period details"
elif response["message"] == "Please enter loan purpose details":
assert response["message"] == "Please enter loan purpose details"
elif response["message"] == "Please enter refinance purpose details":
assert response["message"] == "Please enter refinance purpose details"
elif response["message"] == "Please enter credit score":
assert response["message"] == "Please enter credit score"
else:
assert response["message"] == "Please enter LTV details"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Fetched all available products successfully!"
# download quote
def test_download_quote_qp_admin(test_client, loan_officer_admin_header):
payload = quote_payload
url = "/price/download_quote"
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
# send quote
def test_send_quote_qp_admin(test_client, loan_officer_admin_header):
client_name = "Naval Verma"
client_email = "[email protected]"
payload = quote_payload
url = f"/price/send_quote?client_name={client_name}&client_email={client_email}"
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"
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Email sent successfully!"
# compare products
def test_compare_products_qp_admin(test_client, loan_officer_admin_header):
payload = compare_products_payload
url = "/product/compare_products_quick_price"
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
assert response["message"] == "Only 2 or 3 products can be compared"
elif response.status_code == 404:
assert response.status_code == 404
response = response.json()
assert response["status"] == 404
assert response["message"] == "Loan officer not found."
else:
assert response.status_code == 200
response = response.json()
assert response["status"] == 200
assert response["message"] == "Product comparision details fetched"