Index: shared/scripts/configuration/config.py =================================================================== diff -u -r2f6839e14432633d5b272cc65fec63bec7aacbeb -r6533529bc24f039c9dd07edecf9451b31d15093f --- shared/scripts/configuration/config.py (.../config.py) (revision 2f6839e14432633d5b272cc65fec63bec7aacbeb) +++ shared/scripts/configuration/config.py (.../config.py) (revision 6533529bc24f039c9dd07edecf9451b31d15093f) @@ -80,5 +80,12 @@ 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 + + + Index: shared/scripts/names.py =================================================================== diff -u -r2f6839e14432633d5b272cc65fec63bec7aacbeb -r6533529bc24f039c9dd07edecf9451b31d15093f --- shared/scripts/names.py (.../names.py) (revision 2f6839e14432633d5b272cc65fec63bec7aacbeb) +++ shared/scripts/names.py (.../names.py) (revision 6533529bc24f039c9dd07edecf9451b31d15093f) @@ -1,9 +1,14 @@ # encoding: UTF-8 + from objectmaphelper import * +# Top Parents +o_QQuickView = { "type": "QQuickView"} +o_Gui_MainView = { "type": "Gui::MainView" } + o_Gui_MainView = {"type": "Gui::MainView", "unnamed": 1, "visible": True} o_Overlay = {"container": o_Gui_MainView, "type": "Overlay", "unnamed": 1, "visible": True} o_borderRect_Rectangle = {"container": o_Overlay, "gradient": 0, "id": "_borderRect", "type": "Rectangle", "unnamed": 1, "visible": True} @@ -48,39 +53,24 @@ o_fluid_text = {"container": o_treatmentStack_treatmentHome_TreatmentHome, "text": "Volume Delivered", "type": "Text", "unnamed": 1, "visible": True} o_cumulative_fluid_text = {"container": o_treatmentStack_treatmentHome_TreatmentHome, "text": "Cumulative Delivered", "type": "Text", "unnamed": 1, "visible": True} - -# -# Top Parents -o_QQuickView = { "type": "QQuickView"} -o_Overlay = {"container": o_QQuickView, "type": "Overlay" } -o_treatmentHome = {"container": o_QQuickView , "id": "_treatmentHome" , "type": "TreatmentHome", "unnamed": 1, "visible": True} - -""" -o_treatmentStart_TreatmentStart = {"container": o_QQuickView, "id": "_treatmentStart", "type": "TreatmentStart", "unnamed": 1, "visible": True} -o_treatmentStart_treatmentTime_section = {"container": o_treatmentStart_TreatmentStart , "id": "_treatmentTime", "type": "Rectangle" } -p = {"container": o_treatmentStart_treatmentTime_section, "objectName": "_TimeText_minute", "type": "Text", "visible": True} -#p = o_TimeText_minute_Text = {"container": o_Overlay, "objectName": "_TimeText_minute", "type": "Text", "visible": True} -o_Overlay_2 = {"container": o_Gui_MainView, "type": "Overlay", "unnamed": 1, "visible": True} -o_flows_button = {"container": o_Overlay_2, "id": "_image", "source": "qrc:/images/iClose", "type": "Image", "unnamed": 1, "visible": True} -o_treatmentStart_TreatmentStart = {"container": o_QQuickView, "id": "_treatmentStart", "type": "TreatmentStart", "unnamed": 1, "visible": True} -o_treatmentStart_flowsTouchArea_TreatmentFlows = {"container": o_treatmentStart_TreatmentStart, "id": "_flowsTouchArea", "type": "TreatmentFlows", "unnamed": 1, "visible": True} -""" - +#flows o_treatment_blood_flow_touch_area = {"container": o_treatmentStack_treatmentHome_TreatmentHome, "text": "FLOWS", "type": "Text", "unnamed": 1, "visible": True} o_treatmentStart_TreatmentStart = {"container": o_QQuickView, "id": "_treatmentStart", "type": "TreatmentStart", "unnamed": 1, "visible": True} o_treatment_blood_flow_rate = {"container": o_treatmentStack_treatmentHome_TreatmentHome, "id": "_bloodFlow", "type": "TextRect", "unnamed": 1, "visible": True} o_treatment_dialysate_flow_rate = {"container": o_treatmentStack_treatmentHome_TreatmentHome, "id": "_dialysateInletFlow", "type": "TextRect", "unnamed": 1, "visible": True} o_treatment_blood_flow_adjustment = {"container": o_Overlay, "id": "_bloodFlowTextRect", "type": "TextRect", "unnamed": 1, "visible": True} o_treatment_dialysate_flow_adjustment = {"container": o_Overlay, "id": "_dialysateInletFlowTextRect", "type": "TextRect", "unnamed": 1, "visible": True} o_treatment_flow_adjustment_close = {"container": o_Overlay, "id": "_closeButton", "type": "CloseButton", "unnamed": 1, "visible": True} -o_treatment_notification_bar = {"container": o_Overlay, "gradient": 0, "objectName": "NotificationBar", "type": "NotificationBar", "visible": True} +o_treatment_notification_bar = {"container": o_Overlay, "type": "Text", "unnamed": 1, "visible": True} +o_dialysateFlowSlider_Slider = {"container": o_Overlay, "id": "_dialysateFlowSlider", "type": "Slider", "unnamed": 1, "visible": True} +o_blood_flow_slider = {"container": o_Overlay, "id": "_bloodFlowSlider", "type": "Slider", "unnamed": 1, "visible": True} +o_blood_flow_minimum_value = {"container": o_Overlay, "text": "100mL/min", "type": "Text", "unnamed": 1, "visible": True} +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} - - - - Index: tst_treatment_blood_dialysateflow_rate/test.py =================================================================== diff -u -r2f6839e14432633d5b272cc65fec63bec7aacbeb -r6533529bc24f039c9dd07edecf9451b31d15093f --- tst_treatment_blood_dialysateflow_rate/test.py (.../test.py) (revision 2f6839e14432633d5b272cc65fec63bec7aacbeb) +++ tst_treatment_blood_dialysateflow_rate/test.py (.../test.py) (revision 6533529bc24f039c9dd07edecf9451b31d15093f) @@ -15,83 +15,132 @@ import names from dialin.ui import utils from dialin.ui.hd_simulator import HDSimulator -from dialin.common.msg_defs import RequestRejectReasons from configuration import config -def verify_flow_rate(expected_blood_flow_vlue = "_", expected_dialysate_flow_rate = "_"): - - test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_rate).label), str(expected_blood_flow_vlue)) +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.") + 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_vlue = "_", 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 - test.compare(str(waitForObjectExists(names.o_treatment_blood_flow_adjustment).label), str(expected_blood_flow_vlue)) + @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_adjustment).label), str(expected_blood_flow_value)) test.compare(str(waitForObjectExists(names.o_treatment_dialysate_flow_adjustment).label), str(expected_dialysate_flow_rate)) -def test_treatment_adjustment_blood_dialysate(hd): +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. + """ + + mouseClick(waitForObject(names.o_blood_flow_slider), slider_value, 4, Qt.LeftButton) + current_slider_value = int(waitForObject(names.o_blood_flow_slider).value) + test.compare(current_slider_value , slider_value, "user adjusted slider value to -> "+ str(slider_value)) + + +def test_treatment_blood_dialysate_rejection(hd): + + test.startSection("verification of blood dialysate rejection message") + mouseClick(waitForObject(names.o_treatment_blood_flow_touch_area)) - for rejection in range(2,3): + 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 = 110, dialysate_flow_rate = 120) - verify_blood_dialysate_adjustment(expected_blood_flow_vlue = 110, expected_dialysate_flow_rate = 120) - + blood_rate = 180, dialysate_flow_rate = 120) + verify_blood_dialysate_adjustment(expected_blood_flow_value = 180, expected_dialysate_flow_rate = 120) rejection_message = findObject(names.o_treatment_notification_bar) - test.compare(config.REJECTION_MESSAGE[rejection], rejection_message.text) - + test.compare(rejection_message.text, config.REJECTION_MESSAGE[rejection], "expected rejection message") + utils.waitForGUI(0.5) - snooze(20) + test.endSection() +def test_treatment_adjustment_blood_dialysate(): + + 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") + + test.endSection() + + def test_blood_flow_rate_and_dialysate(hd): + test.startSection("verification of blood flow range and dialysate range on" + \ + "main treatment screen") + 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_vlue = 100) + 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_vlue = 125) + 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_vlue = 175) + 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_vlue = 600) + 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_vlue = 600, expected_dialysate_flow_rate = 225 ) + 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_vlue = 600, expected_dialysate_flow_rate = 500 ) + 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_vlue = 600, expected_dialysate_flow_rate = 500) + verify_blood_dialysate_adjustment(expected_blood_flow_value = 600, expected_dialysate_flow_rate = 500) mouseClick(waitForObject(names.o_treatment_flow_adjustment_close)) @@ -102,12 +151,13 @@ 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_vlue = 425, expected_dialysate_flow_rate = 350) + 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_vlue = 425, expected_dialysate_flow_rate = 350) + verify_blood_dialysate_adjustment(expected_blood_flow_value = 425, expected_dialysate_flow_rate = 350) mouseClick(waitForObject(names.o_treatment_flow_adjustment_close)) + test.endSection() def main(): @@ -116,8 +166,9 @@ startApplication(config.AUT_NAME) hd = HDSimulator() - snooze(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, rinseback_state= 0, recirculate_state= 0, blood_prime_state= 2, @@ -126,56 +177,9 @@ test_blood_flow_rate_and_dialysate(hd) - test_treatment_adjustment_blood_dialysate(hd) + test_treatment_blood_dialysate_rejection(hd) - """ - 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) - verify_blood_flow_rate() - verify_blood_flow_rate() - - - - - - - snooze(10) + test_treatment_adjustment_blood_dialysate() - hd.cmd_set_treatment_dialysate_flow_rate(flow_set_pt = 121, measured_flow = 100, - rot_speed = 112, mot_speed = 113, mc_speed = 114, - mc_current = 115, pwm = 116, signal_strength = 117) - snooze(10) - - - - snooze(10) - - hd.cmd_send_treatment_adjust_blood_dialysate_response(accepted = False, reason= 8, - blood_rate = 110, dialysate_flow_rate = 120) - - snooze(10) - - hd.cmd_send_treatment_adjust_blood_dialysate_response(accepted = 0, reason= 1, - blood_rate = 100, dialysate_flow_rate = 102) - - - - mouseClick(waitForObject(names.o_flows_button)) - - - gotoScreenNtest_Contains_FlowsSection() - utils.waitForGUI(1) - - test.compare(str(waitForObjectExists(names.o_treatmentStart_flowsTouchArea_TreatmentFlows).bloodFlowSetPoint), "0") - - - denaliMessages.setTreatmentBloodFlowRate(350, 1, 1, 1, 1, 1, 1) - test.compare(str(waitForObjectExists(names.o_treatmentStart_flowsTouchArea_TreatmentFlows).bloodFlowSetPoint), "350") - """ utils.tstDone() - - - -