Index: shared/scripts/names.py =================================================================== diff -u -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 -rbb99af6ec9ef22ef17d1fad542810e898132c5b2 --- shared/scripts/names.py (.../names.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) +++ shared/scripts/names.py (.../names.py) (revision bb99af6ec9ef22ef17d1fad542810e898132c5b2) @@ -12,9 +12,8 @@ # author Behrouz NematiPour # -AUT_NAME = "denali" # Squish +AUT_NAME = "denaliSquish" # Squish -AlarmPriority = [ 0, 1, 2, 3, 4 ] # 4 is out of range check # KEPT THE START AT LINE 20 SO ANY (MESSAGE LINE NUMBER - 20) IS THE INDEX AlarmTextMap = [ "" , @@ -209,23 +208,27 @@ o_treatmentStart_59_Text = {"container": o_treatmentStart_TreatmentStart, "text": 59, "type": "Text", "unnamed": 1, "visible": True} # Alarm Status -o_alarm_dialog_content = {"container": o_Overlay , "objectName": "_NotificationDialog" , "type": "ContentItem" } +o_alarm_dialog_content = {"container": o_Overlay , "objectName": "_NotificationDialog" , "type": "ContentItem" } +o_alarm_dialog_titleBar = {"container": o_alarm_dialog_content , "id" : "_titleBar" , "type": "Rectangle" } o_alarm_button_minimize = {"container": o_alarm_dialog_content , "id" : "_minimizeButton" , "type": "UpDownButton" ,"visible": True } o_alarm_button_mute = {"container": o_alarm_dialog_content , "id" : "_muteButton" , "type": "MuteButton" ,"visible": True } -o_alarm_button_mute_img = {"container": o_alarm_button_mute , "id" : "_muteImage" , "type": "Image" } -o_alarm_button_mute_min = {"container": o_alarm_button_mute , "id" : "_hourText" , "type": "Text" } -o_alarm_button_mute_sec = {"container": o_alarm_button_mute , "id" : "_minuteText" , "type": "Text" } -o_alarm_button_row = {"container": o_alarm_dialog_content , "id" : "_buttonGroup" , "type": "Row" } -o_alarm_button_resume = {"container": o_alarm_button_row , "id" : "_resumeTouchRect" , "type": "TouchRect" } -o_alarm_button_rinseback = {"container": o_alarm_button_row , "id" : "_rinsebackTouchRect" , "type": "TouchRect" } -o_alarm_button_end = {"container": o_alarm_button_row , "id" : "_endTouchRect" , "type": "TouchRect" } -o_alarm_button_ok = {"container": o_alarm_button_row , "id" : "_okTouchRect" , "type": "TouchRect" } -o_alarm_text_description = {"container": o_alarm_dialog_content , "id" : "_desc" , "type": "Text" } +o_alarm_button_mute_img = {"container": o_alarm_button_mute , "id" : "_muteImage" , "type": "Image" } +o_alarm_button_mute_min = {"container": o_alarm_button_mute , "id" : "_hourText" , "type": "Text" } +o_alarm_button_mute_sec = {"container": o_alarm_button_mute , "id" : "_minuteText" , "type": "Text" } +o_alarm_button_row = {"container": o_alarm_dialog_content , "id" : "_buttonGroup" , "type": "Row" } +o_alarm_button_resume = {"container": o_alarm_button_row , "id" : "_resumeTouchRect" , "type": "TouchRect" } +o_alarm_button_rinseback = {"container": o_alarm_button_row , "id" : "_rinsebackTouchRect" , "type": "TouchRect" } +o_alarm_button_end = {"container": o_alarm_button_row , "id" : "_endTouchRect" , "type": "TouchRect" } +o_alarm_button_ok = {"container": o_alarm_button_row , "id" : "_okTouchRect" , "type": "TouchRect" } +o_alarm_text_description = {"container": o_alarm_dialog_content , "id" : "_desc" , "type": "Text" } -o_alarm_bar = {"container": o_Overlay , "id": "_alarmBar" , "type": "NotificationBar"} -o_alarm_bar_text = {"container": o_alarm_bar , "id": "_text" , "type": "Text" } +o_alarm_bar = {"container": o_QQuickView , "id" : "_alarmBar" , "type": "NotificationBar" } +o_alarm_bar_text = {"container": o_alarm_bar , "id" : "_text" , "type": "Text" } +o_alarm_bar_mute_img = {"container": o_alarm_bar , "id" : "_muteImage" , "type": "Image" } +o_alarm_bar_mute_min = {"container": o_alarm_bar , "id" : "_hourText" , "type": "Text" } +o_alarm_bar_mute_sec = {"container": o_alarm_bar , "id" : "_minuteText" , "type": "Text" } +o_alarm_bar_maximize = {"container": o_alarm_bar , "id" : "_updownButton" , "type": "UpDownButton" } - o_qquickview_alarm = {"type": "QQuickView", "unnamed": 1, "visible": True} o_okay_alarm = {"container": o_Overlay, "id": "_okay", "type": "TouchRect", "unnamed": 1, "visible": True} o_treatmentStart_heparinTouchArea_TreatmentFluid = {"container": o_treatmentStart_TreatmentStart, "id": "_heparinTouchArea", "type": "TreatmentFluid", "unnamed": 1, "visible": True} Index: suite.conf =================================================================== diff -u -r0a4b4e4653203852eae6d9edb24116f2147a7c3e -rbb99af6ec9ef22ef17d1fad542810e898132c5b2 --- suite.conf (.../suite.conf) (revision 0a4b4e4653203852eae6d9edb24116f2147a7c3e) +++ suite.conf (.../suite.conf) (revision bb99af6ec9ef22ef17d1fad542810e898132c5b2) @@ -5,6 +5,6 @@ IMPLICITAUTSTART=0 LANGUAGE=Python OBJECTMAPSTYLE=script -TEST_CASES=tst_Internals tst_HomeScreen tst_ServiceShutdown tst_TreatmentScreen tst_Treatment_Section_BloodDialysate tst_Treatment_BloodDialysateFlowRate tst_Treatment_Time tst_Treatment_Ultrafiltration tst_Treatment_PressureOcclusion tst_Treatment_ParametersRange tst_Treatment_Adjustment_BloodDialysate tst_Treatment_Adjustment_Duration tst_Treatment_Adjustment_Ultrafiltration tst_Treatment_Adjustment_Pressures tst_Treatment_Adjustment_Saline tst_Treatment_Adjustment_Heparin tst_TreatmentSalineData tst_TreatmentStatesData tst_TreatmentHeparineData tst_DGROPumpData tst_DGDrainPumpData tst_DGPressureData tst_DGReservoirData tst_DGHeatersData tst_DGLoadCellReadingsData tst_DGTemperaturesData tst_case2 tst_DGValvesStatesData tst_DGOperationMode tst_HDOperationModeData tst_HDBloodFlowData tst_HDInletFlowData tst_HDOutletFlowData tst_HDPressureOcclusionData tst_CANBusFaultCount tst_DebugText tst_CreateTreatment tst_ConfirmPrimingBegin tst_Alarm_Colors tst_AlarmStatusData tst_AlarmTriggered tst_AlarmCleared +TEST_CASES=tst_Internals tst_HomeScreen tst_ServiceShutdown tst_TreatmentScreen tst_Treatment_Section_BloodDialysate tst_Treatment_BloodDialysateFlowRate tst_Treatment_Time tst_Treatment_Ultrafiltration tst_Treatment_PressureOcclusion tst_Treatment_ParametersRange tst_Treatment_Adjustment_BloodDialysate tst_Treatment_Adjustment_Duration tst_Treatment_Adjustment_Ultrafiltration tst_Treatment_Adjustment_Pressures tst_Treatment_Adjustment_Saline tst_Treatment_Adjustment_Heparin tst_TreatmentSalineData tst_TreatmentStatesData tst_TreatmentHeparineData tst_DGROPumpData tst_DGDrainPumpData tst_DGPressureData tst_DGReservoirData tst_DGHeatersData tst_DGLoadCellReadingsData tst_DGTemperaturesData tst_case2 tst_DGValvesStatesData tst_DGOperationMode tst_HDOperationModeData tst_HDBloodFlowData tst_HDInletFlowData tst_HDOutletFlowData tst_HDPressureOcclusionData tst_CANBusFaultCount tst_DebugText tst_CreateTreatment tst_ConfirmPrimingBegin tst_AlarmStatusData tst_AlarmTriggered tst_AlarmCleared VERSION=3 WRAPPERS=Qt Index: tst_AlarmStatusData/test.py =================================================================== diff -u -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 -rbb99af6ec9ef22ef17d1fad542810e898132c5b2 --- tst_AlarmStatusData/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) +++ tst_AlarmStatusData/test.py (.../test.py) (revision bb99af6ec9ef22ef17d1fad542810e898132c5b2) @@ -46,67 +46,90 @@ alarm_flag_mute = 0B0000001000000000 alarm_flag_unmute = 0B0000000000000000 +# alarm priorities +alarm_priority_none = 0 +alarm_priority_low = 1 +alarm_priority_medium = 2 +alarm_priority_high = 3 +alarm_priority_outofrange = 9 + +alarm_priorities = [ + alarm_priority_none , + alarm_priority_low , + alarm_priority_medium , + alarm_priority_high , + alarm_priority_outofrange +] + # alarm colors +alarm_colors_header = { + alarm_priority_none : "#438feb", + alarm_priority_low : "#db8f00", + alarm_priority_medium : "#db8f00", + alarm_priority_high : "#831913", + alarm_priority_outofrange : "#438feb", +} +alarm_colors_body = { + alarm_priority_none : "#254670", + alarm_priority_low : "#f5a623", + alarm_priority_medium : "#f5a623", + alarm_priority_high : "#c53b33", + alarm_priority_outofrange : "#254670", +} alarm_id_noalarm = 0 alarm_id_outofrange = 1000000 alarm_id_undefined_string = "ALARM_ID_UNDEFINED [{}]" +def minimize(): + mouseClick(waitForObject(names.o_alarm_button_minimize)) + utils.waitForGUI(0.5) # this wait is necessary. Due to dialog animation it will be hide until the animation is done. -def isNotificationBar(): - if object.exists(names.o_alarm_bar): - alarmBar = findObject(names.o_alarm_bar) - return [alarmBar.visible, alarmBar] - return [False, None] + +def maximize(): + mouseClick(waitForObject(names.o_alarm_bar_maximize)) + utils.waitForGUI(0.5) # this wait is necessary. Due to dialog animation it will be hide until the animation is done. + + +def test_colors(vPriority): + test.compare(str(waitForObjectExists(names.o_modalDialog ).color.name), alarm_colors_body [vPriority]) + test.compare(str(waitForObjectExists(names.o_alarm_dialog_titleBar).color.name), alarm_colors_header[vPriority]) -def isNotificationDialog(): - if object.exists(names.o_NotificationDialog_Description_Text): - alarmTxt = findObject(names.o_NotificationDialog_Description_Text) - return [alarmTxt.visible, alarmTxt] - return [False, None] + minimize() + test.compare(str(waitForObject (names.o_alarm_bar ).color.name), alarm_colors_body[vPriority]) -# ALARM_ID = (priority, alarmID, escalates in, silent_espires_in, flags) -def test_colors(vPriority, vTopID, vEscalatesIn, vMuteTimeout, vFlags): - barVisible, barObj = isNotificationBar() - dlgVisible, dlgObj = isNotificationDialog() + maximize() - if vPriority == 0 and vTopID == 0: - test.compare(barVisible, False, "bar clr I{} P{} ".format(vTopID, vPriority)) - test.compare(dlgVisible, False, "dlg clr I{} P{} ".format(vTopID, vPriority)) -# return - - if barVisible: - if vTopID == len(names.AlarmTextMap) - 1: - test.compare(str(barObj.text), names.AlarmTextMap[vTopID] + " [{}]".format(vTopID), "bar I{} P{} :{}".format(vTopID, vPriority, str(barObj.text))) - else: - test.compare(str(barObj.text), names.AlarmTextMap[vTopID] , "bar I{} P{} :{}".format(vTopID, vPriority, str(barObj.text))) - return - - if dlgVisible: - if vTopID == len(names.AlarmTextMap) - 1: - test.compare(str(dlgObj.text), names.AlarmTextMap[vTopID] + " [{}]".format(vTopID), "bar I{} P{} :{}".format(vTopID, vPriority, str(dlgObj.text))) - else: - test.compare(str(dlgObj.text), names.AlarmTextMap[vTopID] , "dlg I{} P{} :{}".format(vTopID, vPriority, str(dlgObj.text))) - return -# ALARM_ID = (priority, alarmID, escalates in, silent_espires_in, flags) def test_messages(vTopID): if vTopID == alarm_id_noalarm: - utils.waitForGUI() # this wait is necessary. Due to dialog animation it will be hide until the animation is done. - test.compare(object.exists(names.o_alarm_dialog_content), False ) - test.compare(object.exists(names.o_alarm_bar ), False ) + utils.waitForGUI() + dlg = names.o_modalDialog + bar = names.o_alarm_bar + dlg_exists = object.exists(dlg) + bar_exists = object.exists(bar) + if not dlg_exists: + test.compare(dlg_exists, False) + else: + test.compare(waitForObjectExists(dlg).visible, False) + + if not bar_exists: + test.compare(True, True) + else: + test.compare(waitForObjectExists(bar).visible, False) + else: - if vTopID == alarm_id_outofrange: + if vTopID == alarm_id_outofrange: test.compare(str(waitForObjectExists(names.o_alarm_text_description).text), alarm_id_undefined_string.format(vTopID)) + minimize() + test.compare(str(waitForObjectExists(names.o_alarm_bar_text ).text), alarm_id_undefined_string.format(vTopID)) else: test.compare(str(waitForObjectExists(names.o_alarm_text_description).text), names.AlarmTextMap[vTopID]) - - -# mouseClick(waitForObjectExists(names.o_alarm_button_minimize)) -# test.compare(str(waitForObjectExists(names.o_alarm_bar_text).text), names.AlarmTextMap[vTopID]) + minimize() + test.compare(str(waitForObjectExists(names.o_alarm_bar_text ).text), names.AlarmTextMap[vTopID]) + maximize() + - pass - def test_buttons(vButtons): test.compare(waitForObjectExists(names.o_alarm_button_ok ).visible, vButtons == alarm_buttons_Ok, @@ -143,11 +166,6 @@ if obj.visible : mouseClick(obj) -def test_minimize_maximize(): - mouseClick(waitForObjectExists(names.o_alarm_button_minimize)) - pass - - def test_silence(vMuteTimeout, vFlags): test.compare(waitForObjectExists(names.o_alarm_button_mute).timeout, vMuteTimeout) @@ -156,13 +174,22 @@ test.compare( waitForObjectExists(names.o_alarm_button_mute_min).visible, muted) test.compare( waitForObjectExists(names.o_alarm_button_mute_sec).visible, muted) + muteTimeout_min,muteTimeout_sec = divmod(vMuteTimeout, 60) if muted: test.compare(str(waitForObjectExists(names.o_alarm_button_mute_img).source.path), "/images/iBellOff") - muteTimeout_min,muteTimeout_sec = divmod(vMuteTimeout, 60) test.compare(str(waitForObjectExists(names.o_alarm_button_mute_min).text), "{}" .format(muteTimeout_min)) test.compare(str(waitForObjectExists(names.o_alarm_button_mute_sec).text), "{0:02}".format(muteTimeout_sec)) + minimize() + test.compare(str(waitForObjectExists(names.o_alarm_bar_mute_img ).source.path), "/images/iBellOff" ) + test.compare(str(waitForObjectExists(names.o_alarm_bar_mute_min ).text), "{}" .format(muteTimeout_min)) + test.compare(str(waitForObjectExists(names.o_alarm_bar_mute_sec ).text), "{0:02}".format(muteTimeout_sec)) + else: test.compare(str(waitForObjectExists(names.o_alarm_button_mute_img).source.path), "/images/iBellOn" ) + minimize() + test.compare(str(waitForObjectExists(names.o_alarm_bar_mute_img ).source.path), "/images/iBellOn" ) + + maximize() def main(): @@ -173,47 +200,46 @@ startApplication(names.AUT_NAME + " -q") utils.waitForGUI(1) - # ----- test silence - # not muted + + # --------------------- Alarm Dialog: test the buttons + for buttons in (alarm_buttons_Ok , + alarm_buttons_Resume , + alarm_buttons_RinseBack , + alarm_buttons_End , + alarm_buttons_Resume_RinseBack , + alarm_buttons_Resume_End , + alarm_buttons_RinseBack_End , + alarm_buttons_Resume_RinseBack_End ): + denaliMessages.setAlarmStatus(1, 1, 0, 0, buttons) + test_buttons ( buttons) + + + ## -------------------- Alarm Dialog/Bar: test silence + # --------------------- Alarm Dialog/Bar: not muted for mute_timeout in (0, 40, 40, 60, 75, 75): denaliMessages.setAlarmStatus(1, 1 ,0, mute_timeout, alarm_flag_unmute) test_silence ( mute_timeout, alarm_flag_unmute) + - # muted + # --------------------- Alarm Dialog/Bar: muted mouseClick(waitForObject(names.o_alarm_button_mute)) for mute_timeout in (0, 10, 20, 30, 30, 100): denaliMessages.setAlarmStatus(1, 2 ,0, mute_timeout, alarm_flag_mute) test_silence ( mute_timeout, alarm_flag_mute) - # ----- test the buttons - for buttons in (alarm_buttons_Ok , - alarm_buttons_Resume , - alarm_buttons_RinseBack , - alarm_buttons_End , - alarm_buttons_Resume_RinseBack , - alarm_buttons_Resume_End , - alarm_buttons_RinseBack_End , - alarm_buttons_Resume_RinseBack_End ): - denaliMessages.setAlarmStatus(1, 1, 0, 0, buttons) - test_buttons ( buttons) - - - # ----- test alarm messages (dialog and bar) + ## -------------------- Alarm Dialog/Bar: test alarm messages for alarm_id in (5, 5 , 6, 7, 8, 9, 10, 10, alarm_id_outofrange, alarm_id_outofrange, alarm_id_noalarm, alarm_id_noalarm): # not all of alarms are required to be tested. denaliMessages.setAlarmStatus(1, alarm_id, 0, 0, 0) test_messages ( alarm_id ) + ## -------------------- Alarm Dialog/Bar: test alarm priority colors + for alarm_priority in alarm_priorities: + denaliMessages.setAlarmStatus(alarm_priority, 1, 0, 0, 0) + test_colors (alarm_priority ) -# # ----- test alarm priority colors -# for alarm_priority in names.AlarmPriority: -# denaliMessages.setAlarmStatus(alarm_priority, 1, 0, 0, 0) -# test_colors (alarm_priority ) -# # ----- test minimize/maximize - - utils.tstDone() Fisheye: Tag bb99af6ec9ef22ef17d1fad542810e898132c5b2 refers to a dead (removed) revision in file `tst_Alarm_Colors/config.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag bb99af6ec9ef22ef17d1fad542810e898132c5b2 refers to a dead (removed) revision in file `tst_Alarm_Colors/test.py'. Fisheye: No comparison available. Pass `N' to diff?