Index: shared/scripts/names.py =================================================================== diff -u -ref497ba544e919ae353985f2b3915997c5da3f32 -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- shared/scripts/names.py (.../names.py) (revision ef497ba544e919ae353985f2b3915997c5da3f32) +++ shared/scripts/names.py (.../names.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -12,7 +12,7 @@ # author Behrouz NematiPour # -AUT_NAME = "denaliSquish" # Squish +AUT_NAME = "denali" # 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 @@ -209,10 +209,25 @@ 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_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_bar = {"container": o_Overlay , "id": "_alarmBar" , "type": "NotificationBar"} +o_alarm_bar_text = {"container": o_alarm_bar , "id": "_text" , "type": "Text" } + + o_qquickview_alarm = {"type": "QQuickView", "unnamed": 1, "visible": True} -o_alarm_dialog = {"container": o_Overlay, "id": "_backgroundRect", "type": "Rectangle", "unnamed": 1, "visible": True} o_okay_alarm = {"container": o_Overlay, "id": "_okay", "type": "TouchRect", "unnamed": 1, "visible": True} -o_alarm_bar = {"container": o_qquickview_alarm, "objectName": "NotificationBar", "type": "NotificationBar"} o_treatmentStart_heparinTouchArea_TreatmentFluid = {"container": o_treatmentStart_TreatmentStart, "id": "_heparinTouchArea", "type": "TreatmentFluid", "unnamed": 1, "visible": True} o_dismiss_alarm = {"container": o_Overlay, "id": "_silence", "type": "TouchRect", "unnamed": 1, "visible": True} o_treatmentStart_TimeText_TimeText = {"container": o_treatmentStart_TreatmentStart, "objectName": "_TimeText", "type": "TimeText", "visible": True} @@ -442,7 +457,7 @@ o_managerHome_canbusFaultCount = {"container": o_managerHome, "id": "_canbusFaultCountText", "type": "Text" } # Alarm System -o_NotificationDialog_Description_Text = {"container": o_Overlay, "objectName": "_NotificationDialog_Description", "type": "Text"} +#o_NotificationDialog_Description_Text = {"container": o_Overlay, "objectName": "_NotificationDialog_Description", "type": "Text"} o_NotificationDialog_OKAY = {"container": o_Overlay, "text": "OKAY", "type": "Text"} o_create_treatment_button = {"container": o_treatmentHome, "text": "CREATE TREATMENT", "type": "Text", "unnamed": 1 } @@ -477,3 +492,4 @@ o_treatment_begin_flickable = {"container": o_treatment_begin_container, "objectName": "_treatmentBeginFlickable", "type": "TreatmentBegin"} o_treatment_begin_start_button = {"container": o_treatment_begin_container, "objectName": "_treatmentBeginStart", "type": "TouchRect"} o_treatment_begin_back_button = {"container": o_treatment_begin_container, "objectName": "_backButton", "type": "BackButton"} + Index: tst_AlarmStatusData/test.py =================================================================== diff -u -r393fd43e9a1cbf6b25a0f107928a051a622b2be2 -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- tst_AlarmStatusData/test.py (.../test.py) (revision 393fd43e9a1cbf6b25a0f107928a051a622b2be2) +++ tst_AlarmStatusData/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -17,6 +17,42 @@ from dialin.squish import utils, denaliMessages +# buttons position/definition in alarm flags +# 3 - no_resume +# 4 - no_rinseback +# 5 - no_end +# 7 - user_must_ack(OK) +# Important Note : OK button can't come with the three others +# 7 543 +alarm_buttons_Ok = 0B0000000010111000 + +alarm_buttons_Resume = 0B0000000000110000 +alarm_buttons_Resume_RinseBack = 0B0000000000100000 +alarm_buttons_Resume_End = 0B0000000000010000 + +alarm_buttons_RinseBack = 0B0000000000101000 +alarm_buttons_RinseBack_Resume = alarm_buttons_Resume_RinseBack +alarm_buttons_RinseBack_End = 0B0000000000001000 + +alarm_buttons_End = 0B0000000000011000 +alarm_buttons_End_Resume = alarm_buttons_Resume_End +alarm_buttons_End_RinseBack = alarm_buttons_RinseBack_End + +alarm_buttons_Resume_RinseBack_End = 0B0000000000000000 +alarm_buttons_RinseBack_Resume_End = alarm_buttons_Resume_RinseBack_End +alarm_buttons_End_Resume_RinseBack = alarm_buttons_Resume_RinseBack_End + +# alarm status flags +alarm_flag_mute = 0B0000001000000000 +alarm_flag_unmute = 0B0000000000000000 + +# alarm colors + +alarm_id_noalarm = 0 +alarm_id_outofrange = 1000000 +alarm_id_undefined_string = "ALARM_ID_UNDEFINED [{}]" + + def isNotificationBar(): if object.exists(names.o_alarm_bar): alarmBar = findObject(names.o_alarm_bar) @@ -30,7 +66,7 @@ return [False, None] # ALARM_ID = (priority, alarmID, escalates in, silent_espires_in, flags) -def test_values(vPriority, vTopID, vEscalatesIn, vMuteTimeout, vFlags): +def test_colors(vPriority, vTopID, vEscalatesIn, vMuteTimeout, vFlags): barVisible, barObj = isNotificationBar() dlgVisible, dlgObj = isNotificationDialog() @@ -53,35 +89,131 @@ 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 ) + else: + if vTopID == alarm_id_outofrange: + test.compare(str(waitForObjectExists(names.o_alarm_text_description).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]) + pass +def test_buttons(vButtons): + test.compare(waitForObjectExists(names.o_alarm_button_ok ).visible, + vButtons == alarm_buttons_Ok, + "Button visible [OK]") + test.compare(waitForObjectExists(names.o_alarm_button_resume ).visible, + vButtons == alarm_buttons_Resume or + vButtons == alarm_buttons_Resume_RinseBack or + vButtons == alarm_buttons_Resume_End or + vButtons == alarm_buttons_Resume_RinseBack_End , + "Button visible [Resume]") + test.compare(waitForObjectExists(names.o_alarm_button_rinseback ).visible, + vButtons == alarm_buttons_RinseBack or + vButtons == alarm_buttons_RinseBack_Resume or + vButtons == alarm_buttons_RinseBack_End or + vButtons == alarm_buttons_RinseBack_Resume_End , + "Button visible [RinseBack]") + test.compare(waitForObjectExists(names.o_alarm_button_end ).visible, + vButtons == alarm_buttons_End or + vButtons == alarm_buttons_End_Resume or + vButtons == alarm_buttons_End_RinseBack or + vButtons == alarm_buttons_End_Resume_RinseBack , + "Button visible [End]") + + obj = waitForObjectExists(names.o_alarm_button_ok) + if obj.visible : mouseClick(obj) + + obj = waitForObjectExists(names.o_alarm_button_resume) + if obj.visible : mouseClick(obj) + + obj = waitForObjectExists(names.o_alarm_button_rinseback) + if obj.visible : mouseClick(obj) + + obj = waitForObjectExists(names.o_alarm_button_end) + 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) + + muted = vFlags == alarm_flag_mute + test.compare( waitForObjectExists(names.o_alarm_button_mute_min).visible, muted) + test.compare( waitForObjectExists(names.o_alarm_button_mute_sec).visible, muted) + + 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)) + else: + test.compare(str(waitForObjectExists(names.o_alarm_button_mute_img).source.path), "/images/iBellOn" ) + + def main(): utils.tstStart(__file__) - startApplication(names.AUT_NAME) + #testSettings.throwOnFailure = True + + startApplication(names.AUT_NAME + " -q") utils.waitForGUI(1) - denaliMessages.setAlarmStatus(0, 0, 0, 0, 0) - test_values (0, 0, 0, 0, 0) + # ----- test silence + # 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 + 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) + 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 ) - for i in range(len(names.AlarmTextMap)): - # setting priority is to see notification dialog is also showing correct text - for j in names.AlarmPriority: - denaliMessages.setAlarmStatus(j, i, 0, 0, 0) - test_values (j, i, 0, 0, 0) - - denaliMessages.setAlarmStatus(1, 2, 3, 4, 5) - test_values (1, 2, 3, 4, 5) - # Coverage - denaliMessages.setAlarmStatus(1, 2, 3, 4, 5) - test_values (1, 2, 3, 4, 5) - - denaliMessages.setAlarmStatus(0, 1, 3, 4, 5) - test_values (0, 1, 3, 4, 5) - - denaliMessages.setAlarmStatus(0, 0, 0, 0, 0) - #test_values (0, 0, 0, 0, 0) +# # ----- 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() Index: tst_AlarmStatusData/verificationPoints/VP1 =================================================================== diff -u --- tst_AlarmStatusData/verificationPoints/VP1 (revision 0) +++ tst_AlarmStatusData/verificationPoints/VP1 (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -0,0 +1,6 @@ + + + +iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAAsVBMVEXbjwDbjwHelxLemBTemBXemRbemRfgoCbhoCfhoSjhoizjqTzkqj3kqz/krEHkrELkrEPlrkfmsEzmsU3ntVfntljotlnqvWnrv27rwHDsw3fsxXrtxn3txn7tyYPuyYXuy4nwz5Lw0JXw0Zbx05rx1Jzx1J3x1J7y16Py16T03LD247/358j46Mr46Mv46s/68N368d768d/78eD78+T89+z89+39+O79+fL9+vP///+CBjAYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB7klEQVRIiZWVZ3+CMBDGj5I66sBV6l64B4oLfL7/B2uoqIkJFu4FJJf/7xKO3HNEshlWc+ruffh7d96yDHpnhf4Gom0HxVi2ODoDh2Wnnmdk5mrthQdcnJKWzXRPCGY2E1xmYxbg1MuocHWFq1NR3OXxFavqq/d7h7Wt3dNeY/ctu36OmGRjPic7wfFHinzE8CMGJvoY4ihEr+4wfJdaY4jd4+yZFSbxkf+iT7C6Z6aHddyZ75Zdo3sblU5XfTZEs6+n2291MP4XDqlR+CpegnICuhKcC/w1wCwBTDRDn2dni8bTZZoSIU5tbAyy4D1dDBCvkDRlB1jUwkJcldbl6RJNmqP92PdWAkyEgcfOHUzJRe2FjsJF8JOuwyUPOXnrCL+PPx+reezJh/DdT1yFucsnQEzZHfpSYQpRH0yHa2CTx94jT3G4BFOOn9tFnWJwGaYaz8kUHdLjLzC1MacmlqTFX2FaoMXvyYHpcAU2PX5PjA3UymEqTA1seaX3E9/vAX8WzoEqaKqVg8tfYY7gJKDHEVVMWPORNHcT6UkvGqbTqnQ6mFJjU+p3yt5w6ztjVeIqjq7v8Mz0wp7WEMWK2WFP62p6GreScwG8RbuWM4nl653lATiP3vTXwVaqy02/EMuGZlitedTnp02lz/8CBZdcIqRqq+MAAAAASUVORK5CYII= + + Index: tst_Alarm_Colors/test.py =================================================================== diff -u -ref497ba544e919ae353985f2b3915997c5da3f32 -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- tst_Alarm_Colors/test.py (.../test.py) (revision ef497ba544e919ae353985f2b3915997c5da3f32) +++ tst_Alarm_Colors/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -111,7 +111,9 @@ #test.log("Testing {0} = {1}".format(alarm_list[idx], alarm_id)) color = HIGH_PRIORITY_COLOR if priority == HIGH else MED_LOW_PRIORITY_COLOR denaliMessages.setAlarmStatus(priority, alarm_id, escalates_in, silent_expires_in, flags) - test.compare(waitForObject(names.o_alarm_dialog).color.name, color) + + + test.compare(str(waitForObjectExists(names.o_modalDialog).color.name), color) # mouseClick(waitForObject(names.o_dismiss_alarm)) # mouseClick(waitForObject(names.o_alarm_bar)) # mouseClick(waitForObject(names.o_dismiss_alarm)) @@ -130,7 +132,7 @@ denaliMessages.clear_all_alarms() denaliMessages.setAlarmStatus(*alarms.ALARM_ID_SOFTWARE_FAULT) - test.compare(waitForObject(names.o_alarm_dialog).color.name, HIGH_PRIORITY_COLOR) + test.compare(str(waitForObjectExists(names.o_modalDialog).color.name), HIGH_PRIORITY_COLOR) # mouseClick(waitForObject(names.o_okay_alarm)) denaliMessages.clear_all_alarms() denaliMessages.setAlarmStatus(*alarms.ALARM_ID_SOFTWARE_FAULT) Index: tst_ConfirmPrimingBegin/test.py =================================================================== diff -u -ref497ba544e919ae353985f2b3915997c5da3f32 -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- tst_ConfirmPrimingBegin/test.py (.../test.py) (revision ef497ba544e919ae353985f2b3915997c5da3f32) +++ tst_ConfirmPrimingBegin/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -61,9 +61,9 @@ test.compare(waitForObject(names.o_create_treatment_back_button).visible, True, "Found create treatment back button") mouseClick(waitForObject(names.o_create_treatment_back_button)) - utils.waitForGUI(0.1) + utils.waitForGUI(0.5) mouseClick(waitForObject(names.o_create_treatment_button)) - utils.waitForGUI(0.1) + utils.waitForGUI(0.5) # skip_create_treatment(hd_simulator) # utils.waitForGUI(1) # test.compare(waitForObjectExists(names.o_create_treatment_confirm).visible, True, "Found treatment confirm button") Index: tst_HDOperationModeData/test.py =================================================================== diff -u -r393fd43e9a1cbf6b25a0f107928a051a622b2be2 -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- tst_HDOperationModeData/test.py (.../test.py) (revision 393fd43e9a1cbf6b25a0f107928a051a622b2be2) +++ tst_HDOperationModeData/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -32,7 +32,6 @@ mouseClick(waitForObject(names.o_mainMenu_manager)) test_values(0) - def test_values(vOpMode): if (vOpMode < len(opModes)): test.compare(str(waitForObjectExists(names.o_managerHome_HDOperationModeData_OpMode).text), opModes[vOpMode]) Index: tst_Treatment_Adjustment_Heparin/test.py =================================================================== diff -u -r6d01b12355c38d1a14b9aa6fb3578c52928d285b -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- tst_Treatment_Adjustment_Heparin/test.py (.../test.py) (revision 6d01b12355c38d1a14b9aa6fb3578c52928d285b) +++ tst_Treatment_Adjustment_Heparin/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -17,7 +17,6 @@ from dialin.squish import utils, denaliMessages from dialin.squish.denaliMessages import txStates from dialin.common.msg_defs import RequestRejectReasons as rejectReason -from numpy.distutils.fcompiler import none def gotoScreenNtest_Contains_TreatmentHeparinData(): Index: tst_Treatment_Adjustment_Ultrafiltration/test.py =================================================================== diff -u -r2b0ff4367443cf0458594c81c32598df5b6c39cb -rab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13 --- tst_Treatment_Adjustment_Ultrafiltration/test.py (.../test.py) (revision 2b0ff4367443cf0458594c81c32598df5b6c39cb) +++ tst_Treatment_Adjustment_Ultrafiltration/test.py (.../test.py) (revision ab2ebd8c7b5c8df145c2b8cc06a397258ecf2f13) @@ -241,7 +241,7 @@ def testScreen_Confirm_Ultrafiltration(): - #[Confrim Screen] + #[Confirm Screen] test.compare( waitForObjectExists(names.o_treatmentAdjustmentUltrafiltrationConfirm_Screen).visible, True) test.compare(str(waitForObjectExists(names.o_treatmentAdjustmentUltrafiltrationConfirm_PausedText).text), "Ultrafiltration is paused") test.compare(str(waitForObjectExists(names.o_treatmentAdjustmentUltrafiltrationConfirm_ConfirmButton).text.text), "CONFIRM")