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"