# -*- 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 dialin.common.hd_defs import TreatmentStates, HeparinStates HEPARIN_BUTTON_STATES = {0: "OFF", 1: "HEPARIN DELIVERY", 2: "RESUME DELIVERY", 3: "HEPARIN DELIVERY", 4: "PAUSE DELIVERY", 5: "OFF", 6: "HEPARIN DELIVERY"} HEPARIN_STATE_MSGS = {"STATE_0_OFF_MESSAGE": "", "STATE_1_HEPARIN DELIVERY_MESSAGE": "Delivery Stopped", "STATE_2_RESUME DELIVERY_MESSAGE": "Delivery Paused", "STATE_3_HEPARIN DELIVERY_MESSAGE": "Bolus Active", "STATE_4_PAUSE DELIVERY_MESSAGE": "Dispensing Active", "STATE_5_OFF_MESSAGE": "Maximum Cumulative Heparin Volume Delivered", "STATE_6_HEPARIN DELIVERY_MESSAGE": "Syringe Empty"} hd_simulator = HDSimulator() 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_INITIAL_BOLUS.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) mouseClick(waitForObject(names.o_treatmentHome_mouseArea_MouseArea_2)) test.compare(str(waitForObjectExists(names.o_treatment_text).text), config.TREATMENT_TEXT, utility.msg("Treatment title Text should be {}".format(config.TREATMENT_TEXT))) mouseClick(waitForObject(names.o_trending_text)) mouseClick(waitForObject(names.o_treatmentHome_mouseArea_MouseArea_2)) test.compare(str(waitForObjectExists(names.o_trending_text).text), config.TRENDING_TEXT, utility.msg("Trending title Text should be {}".format(config.TRENDING_TEXT))) mouseClick(waitForObject(names.o_main_settings_text)) mouseClick(waitForObject(names.o_treatmentHome_mouseArea_MouseArea_2)) test.compare(str(waitForObjectExists(names.o_main_settings_text).text), config.SETTINGS_TEXT, utility.msg("Trending title Text should be {}".format(config.SETTINGS_TEXT))) 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) for index in range(10): utils.waitForGUI(0.2) hd_simulator.cmd_set_treatment_heparin_data(cumulative = config.HEPARIN_VALUES["Cumulative Value"][index]) parameter_text = object.children(waitForObjectExists(names.o_volume_delivered_text)) test.compare((str(parameter_text[2].text)), str(config.HEPARIN_VALUES["Cumulative Value"][index]) , "parameter value should be "+str(config.HEPARIN_VALUES["Cumulative Value"][index])) test.endSection() def heparin_pause_resume_states(): """ Method to verify 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_PAUSED.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) 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")) mouseClick(waitForObject(names.o_state2_heparin_state_paused_text)) mouseClick(waitForObject(names.o_treatmentHome_mouseArea_MouseArea_2)) 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_DISPENSING.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) 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")) mouseClick(waitForObject(names.o_state4_heparin_state_dispensing_text)) mouseClick(waitForObject(names.o_treatmentHome_mouseArea_MouseArea_2)) test.compare(str(waitForObjectExists(names.o_state4_heparin_state_dispensing_active_text).text), config.HEPARIN_BOLUS_DISPENSING_TEXT, utility.msg("Heparin Pause Delivery Text should be {}".format(config.HEPARIN_BOLUS_DISPENSING_TEXT))) test.log("Heparin delivery is in dispensing state") test.endSection() def heparin_stop_states_in_main_treatment(): """ Method to verify 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_OFF.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_STOPPED.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_COMPLETED.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) 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=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=HeparinStates.HEPARIN_STATE_EMPTY.value, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) 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) #TODO def verify_the_rejection_msg(reason_id): """ Method to verify rejection messages """ test.startSection("Verifying Rejection Messages") 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 verify_rejection_messages_for_heparin_states(): """ Method to test current states and rejection messages """ test.startSection("Verifying test case scenario for rejection and acceptance in current state") for reason_id in range(1, (config.NUM_OF_REQUEST_REJECT_REASONS)): for state_id, state in HEPARIN_BUTTON_STATES.items(): hd_simulator.cmd_set_treatment_states_data(sub_mode=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=state_id, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) test.compare(str(waitForObjectExists(utility.expected_heparin_value(state)).text), state, utility.msg("{} text should be displayed".format(state))) hd_simulator.cmd_set_heparin_pause_resume_response(accepted=0, reason=reason_id) verify_the_rejection_msg(reason_id) hd_simulator.cmd_set_heparin_pause_resume_response(accepted=1, reason=reason_id) test.log("Verifying rejection message {} is not displayed".format(config.REJECTION_REASON[reason_id])) test.log("Verifying the current state of heparin button") test.compare(str(waitForObjectExists(utility.expected_heparin_value(state)).text), state, utility.msg("{} text should be displayed".format(state))) msg = HEPARIN_STATE_MSGS["STATE_" + str(state_id) + "_"+ state + "_MESSAGE"] test.compare(waitForObjectExists(utility.expected_heparin_value(msg)).text, msg, utility.msg("{} text should be displayed".format(msg))) hd_simulator.cmd_set_heparin_pause_resume_response(accepted=0, reason=reason_id+1) verify_the_rejection_msg(reason_id=reason_id+1) #changing the state hd_simulator.cmd_set_treatment_states_data(sub_mode=TreatmentStates.TREATMENT_DIALYSIS_STATE.value, uf_state=TreatmentStates.TREATMENT_START_STATE.value, saline_state=TreatmentStates.TREATMENT_START_STATE.value, heparin_state=state_id+1, rinseback_state=TreatmentStates.TREATMENT_START_STATE.value, recirculate_state=TreatmentStates.TREATMENT_START_STATE.value, blood_prime_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_end_state=TreatmentStates.TREATMENT_START_STATE.value, treatment_stop_state=TreatmentStates.TREATMENT_START_STATE.value, dialysis_state=TreatmentStates.TREATMENT_START_STATE.value) if state_id == 6: break else: test.compare(str(waitForObjectExists(utility.expected_heparin_value(HEPARIN_BUTTON_STATES[state_id+1])).text), HEPARIN_BUTTON_STATES[state_id+1], utility.msg("{} text should be displayed".format(HEPARIN_BUTTON_STATES[state_id+1]))) msg = HEPARIN_STATE_MSGS["STATE_" + str(state_id+1) + "_"+ HEPARIN_BUTTON_STATES[state_id+1] + "_MESSAGE"] test.compare(waitForObjectExists(utility.expected_heparin_value(msg)).text, msg, utility.msg("{} text should be displayed".format(msg))) test.endSection() def main(): utils.tstStart(__file__) startApplication(config.AUT_NAME) heparin_stop_states_in_main_treatment() verify_rejection_messages_for_heparin_states() utils.tstDone()