Index: shared/scripts/configuration/config.py =================================================================== diff -u -r6533529bc24f039c9dd07edecf9451b31d15093f -r36656e34f23732aebe84299507f0996a215039ae --- shared/scripts/configuration/config.py (.../config.py) (revision 6533529bc24f039c9dd07edecf9451b31d15093f) +++ shared/scripts/configuration/config.py (.../config.py) (revision 36656e34f23732aebe84299507f0996a215039ae) @@ -8,7 +8,7 @@ # # @file utils.py # -# @author (last) Joseph varghese +# @author (last) LTTS # @date (last) 18-Jan-2022 # ############################################################################ @@ -34,9 +34,8 @@ BLOOD_PRIMING_DEFAULT_VALUE = "0 mL" - -NUM_OF_REQUEST_REJECT_REASONS = 39 - +# dictionary of rejection reason from application source code. +# message location -> denali-> Headers-> common-> MsgDefs.h REJECTION_MESSAGE = { 0 : "REQUEST_REJECT_REASON_NONE" , # Used when there is no rejection 1 : "REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE" , # "REQuest is not allowed in the current operating mode @@ -80,11 +79,17 @@ 39 : "REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED" , # Cannot move on to recirculate without completing full rinseback. } -BLOOD_FLOW_MINIMUM_VALUE = "100mL/min" -BLOOD_FLOW_MAXIMUM_VALUE = "500mL/min" -DIALYSATE_FLOW_MINIMUM_VALUE = "0mL/min" -DIALYSATE_FLOW_MAXIMUM_VALUE = "0mL/min" # Seems to be bug. need change +NUM_OF_REQUEST_REJECT_REASONS = 39 +BLOOD_FLOW_MINIMUM_VALUE = 100 +BLOOD_FLOW_BUFFER = 25 +FLOW_SLIDER_WIDTH_BUFFER = 37 +BLOOD_FLOW_MAXIMUM_VALUE = 500 +DIALYSATE_FLOW_MINIMUM_VALUE = 0 +DIALYSATE_FLOW_MAXIMUM_VALUE = 0 # Seems to be bug. need change +FLOW_UNIT = "mL/min" +BLOOD_FLOW_TEXT = "blood" +DIALYSATE_FLOW_TEXT = "dialysate" Index: shared/scripts/names.py =================================================================== diff -u -r6533529bc24f039c9dd07edecf9451b31d15093f -r36656e34f23732aebe84299507f0996a215039ae --- shared/scripts/names.py (.../names.py) (revision 6533529bc24f039c9dd07edecf9451b31d15093f) +++ shared/scripts/names.py (.../names.py) (revision 36656e34f23732aebe84299507f0996a215039ae) @@ -68,9 +68,5 @@ o_blood_flow_maximum_value = {"container": o_Overlay, "text": "500mL/min", "type": "Text", "unnamed": 1, "visible": True} o_dialysate_flow_minimum_value = {"container": o_Overlay, "text": "0mL/min", "type": "Text", "unnamed": 1, "visible": True} o_dialysate_flow_maximum_value = {"container": o_Overlay, "occurrence": 2, "text": "0mL/min", "type": "Text", "unnamed": 1, "visible": True} +o_handler_Rectangle = {"container": o_Overlay, "gradient": 0, "id": "_handler", "type": "Rectangle", "unnamed": 1, "visible": True} - - - - - Index: suite.conf =================================================================== diff -u -r2f6839e14432633d5b272cc65fec63bec7aacbeb -r36656e34f23732aebe84299507f0996a215039ae --- suite.conf (.../suite.conf) (revision 2f6839e14432633d5b272cc65fec63bec7aacbeb) +++ suite.conf (.../suite.conf) (revision 36656e34f23732aebe84299507f0996a215039ae) @@ -1,6 +1,6 @@ AUT=denaliSquish LANGUAGE=Python OBJECTMAPSTYLE=script -TEST_CASES=tst_environment tst_post tst_standbymode tst_In_treatment tst_treatment_blood_dialysateflow_rate +TEST_CASES=tst_environment tst_post tst_standbymode tst_In_treatment tst_treatment_blood_dialysateflow_rate tst_case1 VERSION=3 WRAPPERS=Qt Index: tst_treatment_blood_dialysateflow_rate/test.py =================================================================== diff -u -rad65d7bb5685900a9f0e34dc39bf1987afcc9775 -r36656e34f23732aebe84299507f0996a215039ae --- tst_treatment_blood_dialysateflow_rate/test.py (.../test.py) (revision ad65d7bb5685900a9f0e34dc39bf1987afcc9775) +++ tst_treatment_blood_dialysateflow_rate/test.py (.../test.py) (revision 36656e34f23732aebe84299507f0996a215039ae) @@ -15,36 +15,39 @@ import names from dialin.ui import utils from dialin.ui.hd_simulator import HDSimulator -from configuration import config, utility +from configuration import config +BLOOD_DIALYSATE_TESTING_OPTION = { + "OPTION_1" : [0, 0, 0, 0, 0, 0, 0, 0, 'None'], + "OPTION_2" : [100, 1, 1, 1, 1, 1, 1, 1, 'blood'], + "OPTION_3" : [125, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 'blood'], + "OPTION_4" : [550, 24, 32, 425, 85, 18, 36, 45, 'blood'], + "OPTION_5" : [80, 12, 12, 12, 12, 12, 12, 12, 'blood'], + "OPTION_6" : [100, 0, 0, 0, 0, 0, 0, 0, 'dialysate'], + "OPTION_7" : [180, 1, 1, 1, 1, 1, 1, 1, 'dialysate'], + "OPTION_8" : [220, 1.45, 1.45, 1.45, 1.45, 1.45, 1.45, 1.45, 'blood'], + "OPTION_9" : [250, 1.45, 1.45, 1.45, 1.45, 1.45, 1.45, 1.45, 'dialysate'], + } + +hd_simulator = HDSimulator() + + def set_rejection_message(text): if isinstance(text, pyStr): names.o_treatment_notification_bar["text"] = text return names.o_treatment_notification_bar else: - test.log(f"Invalid \"text\": " +text+" for object.") + test.log("Invalid \"text\": " +text+" for object.") names.o_treatment_notification_bar["text"] = None - - -def verify_flow_rate(expected_blood_flow_value = "_", expected_dialysate_flow_rate = "_"): - """ - Tests to verify blood dialysate rate on main treatment screen - - @input: expected_blood_flow_value - expected blood flow rate - @input: expected_dialysate_flow_rate - expected dialysate flow rate - """ - test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_rate).label), str(expected_blood_flow_value)) - test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_rate).label), str(expected_dialysate_flow_rate)) - + def verify_blood_dialysate_adjustment(expected_blood_flow_value = "_", expected_dialysate_flow_rate = "_"): """ Tests to verify blood dialysate rate on flow adjustment screen - - @input: expected_blood_flow_value - expected blood flow rate - @input: expected_dialysate_flow_rate - expected dialysate flow rate + @param expected_blood_flow_value: (str) expected blood flow rate + @param expected_dialysate_flow_rate: (str) expected dialysate flow rate """ test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_adjustment).label), str(expected_blood_flow_value)) test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_adjustment).label), str(expected_dialysate_flow_rate)) @@ -53,23 +56,32 @@ def drag_and_drop_blood_dialysate_slider(slider_value): """ Tests to verify blood dialysate slider range - - @input: slider_value - value of the slider to set. + @param slider_value: (int) value of the slider to set. """ + slider_buffer = slider_value - config.BLOOD_FLOW_MINIMUM_VALUE + slider_width = (slider_buffer/config.BLOOD_FLOW_BUFFER) * config.FLOW_SLIDER_WIDTH_BUFFER + if slider_value < config.BLOOD_FLOW_MINIMUM_VALUE: + slider_value = config.BLOOD_FLOW_MINIMUM_VALUE + slider_width = 0 #minimum slider width + + if slider_value > config.BLOOD_FLOW_MAXIMUM_VALUE: + slider_value = config.BLOOD_FLOW_MAXIMUM_VALUE + slider_width = 597 #maximum slider width + + mouseClick(waitForObject(names.o_blood_flow_slider), slider_width , 4, Qt.LeftButton) - mouseClick(waitForObject(names.o_blood_flow_slider), slider_value, 4, Qt.LeftButton) test.compare(int(waitForObject(names.o_blood_flow_slider).value) , slider_value, "user adjusted slider value to -> "+ str(slider_value)) - -def test_treatment_blood_dialysate_rejection(hd): + +def test_treatment_blood_dialysate_rejection(): test.startSection("verification of blood dialysate rejection message") mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) for rejection in range(1, config.NUM_OF_REQUEST_REJECT_REASONS + 1): - hd.cmd_send_treatment_adjust_blood_dialysate_response(accepted = False, reason= rejection, - blood_rate = 180, dialysate_flow_rate = 120) - verify_blood_dialysate_adjustment(expected_blood_flow_value = 180, expected_dialysate_flow_rate = 120) + hd_simulator.cmd_send_treatment_adjust_blood_dialysate_response(accepted = False, reason= rejection, + blood_rate = 350, dialysate_flow_rate = 120) + verify_blood_dialysate_adjustment(expected_blood_flow_value = 350, expected_dialysate_flow_rate = 120) rejection_message = findObject(names.o_treatment_notification_bar) test.compare(rejection_message.text, config.REJECTION_MESSAGE[rejection], "expected rejection message") @@ -82,102 +94,100 @@ test.startSection("verification of blood dialysate adjustment") - for slider_value in (275, 300, 325): - drag_and_drop_blood_dialysate_slider(slider_value) - test.compare((waitForObject(names.o_blood_flow_minimum_value).text), config.BLOOD_FLOW_MINIMUM_VALUE, "minimum blood flow value verified") - test.compare((waitForObject(names.o_blood_flow_maximum_value).text), config.BLOOD_FLOW_MAXIMUM_VALUE, "maximum blood flow value verified") - test.compare((waitForObject(names.o_dialysate_flow_minimum_value).text), config.DIALYSATE_FLOW_MINIMUM_VALUE, "minimum dialysate flow value verified") - test.compare((waitForObject(names.o_dialysate_flow_maximum_value).text), config.DIALYSATE_FLOW_MAXIMUM_VALUE, "maximum dialysate flow value verified") + drag_and_drop_blood_dialysate_slider(slider_value = 125) + drag_and_drop_blood_dialysate_slider(slider_value = 375) + drag_and_drop_blood_dialysate_slider(slider_value = 150) + drag_and_drop_blood_dialysate_slider(slider_value = 225) + drag_and_drop_blood_dialysate_slider(slider_value = 250) + drag_and_drop_blood_dialysate_slider(slider_value = 175) + drag_and_drop_blood_dialysate_slider(slider_value = 500) + drag_and_drop_blood_dialysate_slider(slider_value = 200) + drag_and_drop_blood_dialysate_slider(slider_value = 275) + drag_and_drop_blood_dialysate_slider(slider_value = 475) + drag_and_drop_blood_dialysate_slider(slider_value = 300) + drag_and_drop_blood_dialysate_slider(slider_value = 425) + drag_and_drop_blood_dialysate_slider(slider_value = 350) + drag_and_drop_blood_dialysate_slider(slider_value = 475) + drag_and_drop_blood_dialysate_slider(slider_value = 450) + drag_and_drop_blood_dialysate_slider(slider_value = 700) + drag_and_drop_blood_dialysate_slider(slider_value = 80) + test.compare((waitForObject(names.o_blood_flow_minimum_value).text), str(config.BLOOD_FLOW_MINIMUM_VALUE) + config.FLOW_UNIT, "minimum blood flow value verified") + test.compare((waitForObject(names.o_blood_flow_maximum_value).text), str(config.BLOOD_FLOW_MAXIMUM_VALUE) + config.FLOW_UNIT, "maximum blood flow value verified") + test.compare((waitForObject(names.o_dialysate_flow_minimum_value).text), str(config.DIALYSATE_FLOW_MINIMUM_VALUE) + config.FLOW_UNIT, "minimum dialysate flow value verified") + test.compare((waitForObject(names.o_dialysate_flow_maximum_value).text), str(config.DIALYSATE_FLOW_MAXIMUM_VALUE) + config.FLOW_UNIT, "maximum dialysate flow value verified") + test.endSection() -def test_blood_flow_rate_and_dialysate(hd): - - test.startSection("verification of blood flow range and dialysate range on" + \ +def test_blood_flow_rate_and_dialysate(blood_dialysate_control_list): + """ + Tests to verify blood flow data message setter/sender method + @param blood_dialysate_control_list: (list) value of blood dialysate control. + @param flow_set_pt: (int) blood_dialysate_control_list[0] + @param measured_flow: (float) blood_dialysate_control_list[1] + @param rot_speed: (float) blood_dialysate_control_list[3] + @param mot_speed: (float) blood_dialysate_control_list[4] + @param mc_speed: (float) blood_dialysate_control_list[5] + @param mc_current: (float) blood_dialysate_control_list[6] + @param pwm: (float) blood_dialysate_control_list[7] + @param signal_strength: (float) blood_dialysate_control_list[8] + @param flow_type: (str) blood_dialysate_control_list[9] + """ + test.startSection("verification of blood flow range and dialysate range on " + \ "main treatment screen") + flow_set_pt = blood_dialysate_control_list[0] + measured_flow = blood_dialysate_control_list[1] + rot_speed = blood_dialysate_control_list[2] + mot_speed = blood_dialysate_control_list[3] + mc_speed = blood_dialysate_control_list[4] + mc_current = blood_dialysate_control_list[5] + pwm = blood_dialysate_control_list[6] + signal_strength = blood_dialysate_control_list[7] + flow_type = blood_dialysate_control_list[8] + + if flow_type == config.BLOOD_FLOW_TEXT: + hd_simulator.cmd_set_treatment_blood_flow_rate(flow_set_pt, measured_flow, rot_speed, mot_speed, mc_speed, + mc_current, pwm, signal_strength) + test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_rate).label), str(flow_set_pt)) - hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 100, measured_flow = 0, - rot_speed = 0, mot_speed = 0, mc_speed = 0, - mc_current = 0, pwm = 0, signal_strength = 0) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 100) - - - hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 125, measured_flow = 1, - rot_speed = 1, mot_speed = 1, mc_speed = 1, - mc_current = 1, pwm = 1, signal_strength = 1) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 125) - - - hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 175, measured_flow = 1.45, - rot_speed = 1.45, mot_speed = 1.45, mc_speed = 1.45, - mc_current = 1.45, pwm = 1.45, signal_strength = 1.45) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 175) - - - hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 600, measured_flow = 4, - rot_speed = 6, mot_speed = 15, mc_speed = 24, - mc_current = 6.25, pwm = 12, signal_strength = 8) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 600) - - - hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 225, measured_flow = 1, - rot_speed = 1, mot_speed = 1, mc_speed = 1, - mc_current = 1, pwm = 1, signal_strength = 1) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 225 ) - - - hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 500, measured_flow = 110, - rot_speed = 125, mot_speed = 135, mc_speed = 145, - mc_current = 125, pwm = 185, signal_strength = 155) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 500 ) - - mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) - verify_blood_dialysate_adjustment(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 500) - mouseClick(waitForObject(names.o_treatment_flow_adjustment_close)) - - - hd.cmd_set_treatment_blood_flow_rate(flow_set_pt = 425, measured_flow = 4.25, - rot_speed = 1.25, mot_speed = 9, mc_speed = 1.25, - mc_current = 12, pwm = 1.25, signal_strength = 1.25) - hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 350, measured_flow = 0, - rot_speed = 125, mot_speed = 1.25, mc_speed = 1.25, - mc_current = 1, pwm = 5, signal_strength = 10) - utils.waitForGUI() #delay for fetching effect - verify_flow_rate(expected_blood_flow_value = 425, expected_dialysate_flow_rate = 350) - - mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) - verify_blood_dialysate_adjustment(expected_blood_flow_value = 425, expected_dialysate_flow_rate = 350) - mouseClick(waitForObject(names.o_treatment_flow_adjustment_close)) - + elif flow_type == config.DIALYSATE_FLOW_TEXT: + hd_simulator.cmd_set_treatment_dialysate_flow_rate(flow_set_pt, measured_flow, + rot_speed, mot_speed, mc_speed, mc_current, pwm, signal_strength) + test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_rate).label), str(flow_set_pt)) + + else : + test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_rate).label), '_') + test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_rate).label), '_') + test.endSection() def main(): utils.tstStart(__file__) - utility.start_application(config.AUT_NAME) + startApplication(config.AUT_NAME) - hd = HDSimulator() + utils.waitForGUI(2) - utils.waitForGUI() - #navigate to In-treatment section - hd.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=1, heparin_state= 0, + hd_simulator.cmd_set_treatment_states_data(sub_mode= 2, uf_state= 0, saline_state=1, heparin_state= 0, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 2, treatment_end_state=0, treatment_stop_state= 0) utils.waitForGUI() #delay for fetching effect - test_blood_flow_rate_and_dialysate(hd) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_1"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_2"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_3"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_4"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_5"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_6"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_7"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_8"]) + test_blood_flow_rate_and_dialysate(BLOOD_DIALYSATE_TESTING_OPTION["OPTION_9"]) + + test_treatment_blood_dialysate_rejection() - test_treatment_blood_dialysate_rejection(hd) - test_treatment_adjustment_blood_dialysate() utils.tstDone()