# -*- coding: utf-8 -*-" # # file tst__main_treatment_heparin # date 2022/03/03 # author Akshay Rajaram Dhawan # author Shweta Policepatil # NOTE: # This test contradicts verification of Heparin Delivery data and Heparin States from Main Treatment import names from configuration import config, utility from dialin.ui import utils from dialin.ui.hd_simulator import HDSimulator from configuration.utility import expected_heparin_value, rejection_msg from dialin.ui.utils import waitForGUI from configuration.config import REJECTION_REASON from urllib3.util.request import ACCEPT_ENCODING HIGHER_RANGE = 20 STEP_VALUE = 1 LOWER_RANGE = 0 hd_simulator = HDSimulator() def verification_of_cumulative_value(expected_cumulative_value): """ Verifying cumulative values from heparin delivery section. @param expected_cumulative_value - (str) expected cumulative value. """ expected_cumulative_value =str(expected_cumulative_value).replace(".0","") heparin_value = waitForObjectExists(utility.expected_heparin_value(expected_cumulative_value)) test.compare(heparin_value.text,expected_cumulative_value, utility.msg("Actual heparin cumulative value: {} should be equal to expected heparin cumulative value: {}".format(heparin_value.text, expected_cumulative_value))) def constants_for_cumulative_value(): """ Method is used to verify the constants for cumulative value. """ test.startSection("Verifying Heparin State 3 HEPARIN_INITIAL_BOLUS values") test.log("Verifying Heparin State 3 -> Heparin bolus is active") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state= 0, heparin_state= 3, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state= 0, treatment_stop_state=0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state1_heparin_delivery_text).text), config.HEPARIN_DELIVERY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state1_heparin_delivery_text)).enabled, False, utility.msg("Heparin Delivery should be disabled")) initial_bolus_text = waitForObjectExists(names.o_state3_heparin_state_initial_bolus_text).text test.compare(str(initial_bolus_text), config.HEPARIN_BOLUS_ACTIVE_TEXT, utility.msg("Notification Message should be {}".format(config.HEPARIN_BOLUS_ACTIVE_TEXT))) utils.waitForGUI(1) HIGHER_VALUE = HIGHER_RANGE * 10 #conversion of decaliter to liter for heparin_cumulative in range(LOWER_RANGE, HIGHER_VALUE+1, STEP_VALUE): if LOWER_RANGE <101: heparin_cumulative = format(heparin_cumulative/10, ".1f") heparin_cumulative = float(heparin_cumulative) hd_simulator.cmd_set_treatment_heparin_data(heparin_cumulative) verification_of_cumulative_value(LOWER_RANGE) utils.waitForGUI(1) elif 100 == LOWER_RANGE: verify_rejection_msg_id(False) utils.waitForGUI(2) verify_rejection_msg_id(True) test.log("Lower range works") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state= 0, heparin_state= 3, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state= 0, treatment_stop_state=0, dialysis_state= 0) heparin_cumulative = format(heparin_cumulative/10, ".1f") heparin_cumulative = float(heparin_cumulative) hd_simulator.cmd_set_treatment_heparin_data(heparin_cumulative) verification_of_cumulative_value(LOWER_RANGE) test.endSection() def heparin_stop_states_in_main_treatment(): """ Verifying the heparin states when heparin cumulative is '0' at HEPARIN STATE 0 -> HEPARIN_STATE_OFF HEPARIN STATE 1 -> HEPARIN_STATE_STOPPED HEPARIN STATE 5 -> HEPARIN_STATE_COMPLETED HEPARIN STATE 6 -> HEPARIN_STATE_EMPTY """ test.log("Verifying Heparin State 0 - HEPARIN_STATE_OFF") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state= 0, heparin_state= 0, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state= 0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state0_heparin_delivery_Off_text).text), config.HEPARIN_DELIVERY_OFF_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state0_heparin_delivery_Off_text)).enabled, False, utility.msg("Heparin Delivery should be disabled")) test.log("Verifying Notification Message") test.compare(str(findObject(names.o_state0_heparin_delivery_Off_text).text ), config.HEPARIN_DELIVERY_OFF_TEXT, utility.msg("Notification Message should be {}".format(config.HEPARIN_DELIVERY_OFF_TEXT))) utils.waitForGUI(1) test.log("Verifying Heparin State 1 - HEPARIN_STATE_STOPPED") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 1, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state1_heparin_delivery_text).text), config.HEPARIN_DELIVERY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state1_heparin_delivery_text)).enabled, False, utility.msg("Heparin Delivery should be disabled")) test.log("Verifying Notification Message") test.compare(str(waitForObjectExists(names.o_state_one_text).text), config.HEPARIN_STOP_TEXT, utility.msg("Notification Message should be {}".format(config.HEPARIN_STOP_TEXT))) utils.waitForGUI(1) constants_for_cumulative_value() heparin_pause_resume_states() test.log("Verifying Heparin State 5 - HEPARIN_STATE_COMPLETED") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 5, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state0_heparin_delivery_Off_text).text), config.HEPARIN_DELIVERY_OFF_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state0_heparin_delivery_Off_text)).enabled, False, utility.msg("Heparin Delivery should be disabled")) test.log("Verifying Notification Message") test.compare(str(waitForObjectExists(names.o_state5_heparin_state_completed_text).text), config.HEPARIN_MAXIMUM_VOLUME_DELIVERED_TEXT, utility.msg("Notification Message should be {}".format(config.HEPARIN_MAXIMUM_VOLUME_DELIVERED_TEXT))) utils.waitForGUI(1) test.log("Verifying Heparin State 6 - HEPARIN_STATE_EMPTY") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 6, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state6_heparin_state_empty_text).text), config.HEPARIN_SYRINGE_EMPTY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state6_heparin_state_empty_text)).enabled, True, utility.msg("Heparin Delivery should be disabled")) test.log("Verifying Notification Message") test.compare(str(waitForObjectExists(names.o_state6_heparin_state_empty_text).text), config.HEPARIN_SYRINGE_EMPTY_TEXT, utility.msg("Notification Message should be {}".format(config.HEPARIN_SYRINGE_EMPTY_TEXT))) utils.waitForGUI(1) def heparin_pause_resume_states(): """ Verifying pause/resume delivery when HEPARIN DELIVERY button is active or deactive using heparin states HEPARIN STATE 2 -> HEPARIN_STATE_PAUSED HEPARIN STATE 4 -> HEPARIN_STATE_DISPENSING """ test.startSection("Verifying Heparin State ->2 HEPARIN_STATE_PAUSED") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 2, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) hd_simulator.cmd_set_heparin_pause_resume_response(accepted = 1, reason = 0) test.compare(str(waitForObjectExists(names.o_state2_heparin_state_paused_text).text),config.HEPARIN_RESUME_DELIVERY_TEXT, utility.msg("Heparin Resume Delivery Text should be {}".format(config.HEPARIN_RESUME_DELIVERY_TEXT))) test.compare( waitForObjectExists(names.o_state2_heparin_state_paused_text).enabled, True, utility.msg("Resume Delivery Button is enabled")) test.log("Heparin delivery is paused, resume delivery to start") utils.waitForGUI(1) test.endSection() test.startSection("Verifying Heparin State ->4 HEPARIN_STATE_DISPENSING") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 4, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state4_heparin_state_dispensing_text).text), config.HEPARIN_PAUSE_DELIVERY_TEXT, utility.msg("Heparin Pause Delivery Text should be {}".format(config.HEPARIN_PAUSE_DELIVERY_TEXT))) test.compare( waitForObjectExists(names.o_state4_heparin_state_dispensing_text).enabled , True, utility.msg("Pause Delivery Button is enabled")) test.log("Heparin delivery is in dispensing state") test.endSection() def verify_the_rejection_msg(): """ Method to verify rejection messages """ test.startSection("Verifying Rejection Messages") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 4, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) for reason_id in range(1, config.NUM_OF_REQUEST_REJECT_REASONS+1): hd_simulator.cmd_set_heparin_pause_resume_response(accepted=0, reason=reason_id) rejection_msg = waitForObjectExists(utility.rejection_msg(text=config.REJECTION_REASON[reason_id])) test.compare(rejection_msg.text, config.REJECTION_REASON[reason_id], utility.msg("The rejection message should be {}".format(config.REJECTION_REASON[reason_id]))) test.endSection() def test_case_scenario(): """ Method to test current states and rejection messages """ test.startSection("Verifying test case scenario for rejection and acceptance in current state") hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 4, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state4_heparin_state_dispensing_text).text), config.HEPARIN_PAUSE_DELIVERY_TEXT, utility.msg("Heparin Pause Delivery Text should be {}".format(config.HEPARIN_PAUSE_DELIVERY_TEXT))) test.compare( waitForObjectExists(names.o_state4_heparin_state_dispensing_text).enabled , True, utility.msg("Pause Delivery Button is enabled")) hd_simulator.cmd_set_heparin_pause_resume_response(accepted=0, reason=1) rejection_msg = waitForObjectExists(utility.rejection_msg(text=config.REJECTION_REASON[1])) test.compare(rejection_msg.text, config.REJECTION_REASON[1], utility.msg("The rejection message should be {}".format(config.REJECTION_REASON[1]))) test.log(str(rejection_msg.text),"Rejected the state") hd_simulator.cmd_set_heparin_pause_resume_response(accepted=1, reason=1) test.compare(str(waitForObjectExists(names.o_state4_heparin_state_dispensing_text).text), config.HEPARIN_PAUSE_DELIVERY_TEXT, utility.msg("Heparin Pause Delivery Text should be {}".format(config.HEPARIN_PAUSE_DELIVERY_TEXT))) test.compare( waitForObjectExists(names.o_state4_heparin_state_dispensing_text).enabled , True, utility.msg("Pause Delivery Button is enabled")) test.log("Accepted the state") hd_simulator.cmd_set_heparin_pause_resume_response(accepted=0, reason=2) rejection_msg = waitForObjectExists(utility.rejection_msg(text=config.REJECTION_REASON[2])) test.compare(rejection_msg.text, config.REJECTION_REASON[2], utility.msg("The rejection message should be {}".format(config.REJECTION_REASON[2]))) test.log(str(rejection_msg.text),"Rejected the state") #changing the state hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 3, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state1_heparin_delivery_text).text), config.HEPARIN_DELIVERY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state1_heparin_delivery_text)).enabled, False, utility.msg("Heparin Delivery should be disabled")) hd_simulator.cmd_set_heparin_pause_resume_response(accepted=0, reason=16) rejection_msg = waitForObjectExists(utility.rejection_msg(text=config.REJECTION_REASON[16])) test.compare(rejection_msg.text, config.REJECTION_REASON[16], utility.msg("The rejection message should be {}".format(config.REJECTION_REASON[1]))) test.log(str(rejection_msg.text),"Rejected the state") test.compare(str(waitForObjectExists(names.o_state1_heparin_delivery_text).text), config.HEPARIN_DELIVERY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state1_heparin_delivery_text)).enabled, False, utility.msg("Heparin Delivery should be disabled")) hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 6, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) test.compare(str(waitForObjectExists(names.o_state6_heparin_state_empty_text).text), config.HEPARIN_SYRINGE_EMPTY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state6_heparin_state_empty_text)).enabled, True, utility.msg("Heparin Delivery should be disabled")) hd_simulator.cmd_set_heparin_pause_resume_response(accepted=1, reason=0) test.log("Changed the state and accepted") test.compare(str(waitForObjectExists(names.o_state6_heparin_state_empty_text).text), config.HEPARIN_SYRINGE_EMPTY_TEXT, utility.msg("Heparin Delivery Text should be {}".format(config.HEPARIN_DELIVERY_TEXT))) test.compare((waitForObjectExists(names.o_state6_heparin_state_empty_text)).enabled, True, utility.msg("Heparin Delivery should be disabled")) test.endSection() # def verify_rejection_msg_id(accept_msg_id): # """ # Method to verify rejection messages # # """ # if accept_msg_id == False: # # test.startSection("Verifying Rejection Messages") # hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 4, # rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, # treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) # for reason_id in range(1, config.NUM_OF_REQUEST_REJECT_REASONS+1): # hd_simulator.cmd_set_heparin_pause_resume_response(accepted=accept_msg_id, reason=reason_id) # rejection_msg = waitForObjectExists(utility.rejection_msg(text=config.REJECTION_REASON[reason_id])) # test.compare(rejection_msg.text, config.REJECTION_REASON[reason_id], utility.msg("The rejection message should be {}".format(config.REJECTION_REASON[reason_id]))) # test.endSection() # else: # hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=0, heparin_state= 4, # rinseback_state= 0, recirculate_state= 0, blood_prime_state= 0, # treatment_end_state=0, treatment_stop_state= 0, dialysis_state= 0) # hd_simulator.cmd_set_heparin_pause_resume_response(accepted=accept_msg_id, reason=0) # test.log(config.REJECTION_REASON[0]) def main(): utils.tstStart(__file__) startApplication(config.AUT_NAME) heparin_stop_states_in_main_treatment() test_case_scenario() verify_the_rejection_msg() utils.tstDone()