Index: suite_leahi/shared/scripts/configuration/config.py =================================================================== diff -u -r1e21f896ce2a5556dee960920f041a81f6471f1e -rd94d75c2c397752dfee66870ad4cee7dd913651d --- suite_leahi/shared/scripts/configuration/config.py (.../config.py) (revision 1e21f896ce2a5556dee960920f041a81f6471f1e) +++ suite_leahi/shared/scripts/configuration/config.py (.../config.py) (revision d94d75c2c397752dfee66870ad4cee7dd913651d) @@ -3,7 +3,7 @@ # -K, --enable-acknow-log Enables Acknowledgment Log AUT_NAME = "leahi -k -K -S -q" -AUT_NAME_ONLY = "leahi" +AUT_NAME_ONLY = "leahi" # Need only the AUT name for tst_ui_logs, do not add options # Configuration application_init.py TMP_DIR = "/tmp/" @@ -18,6 +18,24 @@ EXPORT_LOG_PROGRESS_STATUS = "Service log export to USB in progress ... " SERVICE_SCREEN_TITLE_TEXT = "Service" +# Headerbar_information_popup +INFORMATION_PARAMETERS = [ + "OS Version", "UI Version", "TD Version", "TD FPGA Version", + "TD Serial Number", "DD Version", "DD FPGA Version", "DD Serial Number", +] +#Device Settings Information Version +INFORMATION_SCREEN_TITLE_TEXT = "Information" +INFORMATION_TITLES = ["Information", "Versions"] +VERSION_PARAMETERS = [ + "Information", "UI Version", "TD Version", "TD FPGA Version", + "TD Serial Number", "DD Version", "DD FPGA Version", "DD Serial Number" +] +SERVICES_PARAMETERS = [ + "TD Last Service Date", "TD Next Service Date", + "DD Last Service Date", "DD Next Service Date" +] +SERIVCES_TITLE = "Service" +WATER_PARAMETERS = ["Water Configuration", "Water Input"] # General Alarm Requirements Instruction NUM_OF_ALARM_PRIORITIES = 4 # Total number of alarm priorities ALARM_MUTE_FLAG = 0B0000001000000000 @@ -29,6 +47,15 @@ 3 : 'ALARM_PRIORITY_HIGH', } +#HeaderBar WiFi +WIFI_POPUP_TEXT = "WiFi Connection Error" + +# Device Settings WiFi +WIFI_TEXT = "Wi-Fi" +WIFI_PARAMETERS_TEXTS = ["SSID", "IP Address", "Gateway", "Subnet Mask", "DNS"] +WIFI_SCREEN_SCAN_BUTTON_TEXT = "SCAN" +DISABLED = False + ALARMS_COLORS_HEADER = { "ALARM_PRIORITY_NONE" : "#438feb", "ALARM_PRIORITY_LOW" : "#db8f00", Index: suite_leahi/shared/scripts/configuration/utility.py =================================================================== diff -u -r34175fa27bfee67e492c7dbdf4fef89d0b0e5c39 -rd94d75c2c397752dfee66870ad4cee7dd913651d --- suite_leahi/shared/scripts/configuration/utility.py (.../utility.py) (revision 34175fa27bfee67e492c7dbdf4fef89d0b0e5c39) +++ suite_leahi/shared/scripts/configuration/utility.py (.../utility.py) (revision d94d75c2c397752dfee66870ad4cee7dd913651d) @@ -1,6 +1,10 @@ import squish import test import object +import names +from squish import * +from leahi_dialin.ui import utils +from builtins import int as pyInt def get_object_from_names(names_dict, error_message = "Missing object", timeout_ms = 200): """ @@ -12,8 +16,51 @@ return squish.waitForObject(names_dict, timeout_ms) except LookupError: test.fail("ERROR : " + error_message) - return None + return None + +def get_bullet_object(screen_obj, num): + """ + To obtain a bullet object based on occurrence provided. + @param screen_obj: provides the container on which the bullet must be present + @param num: provides the occurrence value + @returns a real name object + """ + names.o_bullet_object["container"] = screen_obj + names.o_bullet_object["occurrence"] = num + 1 + return names.o_bullet_object +def get_text_object(screen_obj, txt): + """ + To obtain a text object based on text provided + @param screen_obj: provides the container on which the txt must be present + @returns a real name object + """ + names.o_text_object["container"] = screen_obj + names.o_text_object["text"] = txt + return names.o_text_object + +def setObjectText(text,obj): + """ + Method to set object property based on text + @param text : (string) treatment parameter text + """ + obj["text"] = text + return obj + +def findObjectById(parent, id): + """ + Recursively searches for a child object by its id. + Returns the found object or None if not found. + """ + if str(parent.id) == id: + return parent + + for child in object.children(parent): + found = findObjectById(child, id) + if found: + return found + return None + def findChildByText(parent_object, target_text): """Recursively finds a child object by its text property.""" for child in object.children(parent_object): @@ -22,8 +69,110 @@ found = findChildByText(child, target_text) if found: return found + return None +def set_value_based_on_target(obj, target_value): + """ + obj: dictionary containing object paths + Example: + { + "value_obj": ":mainTreatmentScreen.PressureText", + "left_arrow": ":mainTreatmentScreen.LeftArrow", + "right_arrow": ":mainTreatmentScreen.RightArrow" + } + + target_value: integer or string number, e.g. 220 + """ + parent_obj = squish.waitForObjectExists(obj) + left_arrow = findObjectById(parent_obj, "_leftArrow") + right_arrow =findObjectById(parent_obj, "_rightArrow") + + try: + current_value = round(float(findObject(obj).value),1) + except LookupError: + current_value = float(findObject(obj).property("value")) + + # Determine direction + while current_value != float(target_value): + if current_value < float(target_value): + squish.mouseClick(squish.waitForObject(right_arrow)) + + elif current_value > float(target_value): + squish.mouseClick(squish.waitForObject(left_arrow)) + # Update current value after click + try: + current_value = round(float(findObject(obj).value),1) + except Exception: + current_value = float(findObject(obj).property("value")) + + test.log(f"Updated value: {current_value}") + + test.log(f"✅ Target value reached: {current_value}") + +def select_different_dropdown(object,type,whichTypeIndex): + """ + Method selects the option based on index from the dropdown + """ + type_combo_box = get_object_from_names(object, error_message="Combo box object is missing") + if type_combo_box is not None: + squish.mouseClick(squish.waitForObjectExists(object)) + + type_option = get_object_from_names(setObjectText(obj = names.o_option_combo_box,text = type[whichTypeIndex]),error_message=f"Option {type[whichTypeIndex]} object is missing",timeout_ms=5000) + if type_option is not None: + squish.mouseClick(type_option) + return True + return False # default return if not successful + +def set_value_with_slider(value_field_obj, slider_obj,parameter): + """ + Opens the slider and moves it gradually to the target value (step of 10). + Uses controlled arrow key input for fine adjustment. + """ + + try: + value_field = waitForObject(value_field_obj,1000) + test.log(f"Opening slider for {parameter}...") + squish.mousePress(value_field, squish.Qt.LeftButton) + value = value_field.value + + # If not visible, try left long-press + if not object.exists(slider_obj): + test.log(f"{parameter}: Slider not opened by left-click, trying long left-press...") + squish.mousePress(value_field, squish.Qt.LeftButton) + + if not object.exists(slider_obj): + test.fail(f"{parameter}: Slider did not appear.") + + slider = waitForObject(slider_obj) + test.log(f"{parameter}: Slider appeared successfully.") + squish.mousePress(slider,squish.Qt.LeftButton) + final_value = waitForObject(value_field_obj).value + test.verify(final_value!= value, f"{parameter} slider adjusted correctly to {final_value}") + squish.mouseRelease(slider, squish.Qt.LeftButton) + + if object.exists(slider_obj): + test.log(f"Waiting for {parameter} slider to close...") + waitFor(lambda: not object.exists(slider_obj), 1000) + + except LookupError as e: + test.fail(f"{parameter}: LookupError - {e}") + +def click_left_until_off(object_name): + """ + Method to perform the left arrow untill the value + becomes off + """ + parent_obj = waitForObject(object_name) + left_arrow = findObjectById(parent_obj, "_leftArrow") + + # Loop until the value becomes "off" + while findObject(object_name).value != 0.0: + squish.mouseClick(waitForObject(left_arrow)) + utils.waitForGUI(0.2) # Small delay to allow UI to update + + return None + def get_object_color(names_dict, error_message = "Missing object color", timeout_ms = 2000): """ To get an object color with try..except catching to prevent script errors when the object is not found on the GUI Index: suite_leahi/shared/scripts/names.py =================================================================== diff -u -r1e21f896ce2a5556dee960920f041a81f6471f1e -rd94d75c2c397752dfee66870ad4cee7dd913651d --- suite_leahi/shared/scripts/names.py (.../names.py) (revision 1e21f896ce2a5556dee960920f041a81f6471f1e) +++ suite_leahi/shared/scripts/names.py (.../names.py) (revision d94d75c2c397752dfee66870ad4cee7dd913651d) @@ -2,8 +2,6 @@ from objectmaphelper import * -AUT_NAME ="leahi" - # Top Parents o_Gui_MainView = { "type": "Gui::MainView", "unnamed": 1 } o_QQuickView = { "type": "QQuickView" } @@ -40,7 +38,6 @@ o_dialyste_cond_title_Text = {"container": mainTreatmentScreen, "id": "_dialysateCond", "objectName": "dialysateCondComponent", "type": "TreatmentFlowsComponent" } o_treatmentTimeNotificationBarSmall = {"container": mainTreatmentScreen, "objectName": "notification", "type": "NotificationBarSmall" } - # settings_service_export_logs o_listView_ListView = {"container": o_Gui_MainView, "id": "_listView", "type": "ListView", "unnamed": 1 } o_listView_delegateControl = {"container": o_listView_ListView, "index": 2, "objectName": "delegateControl", "type": "Item" } @@ -58,6 +55,10 @@ o_ExportLogsNotificationBar = {"container": o_SettingsExportLogs, "id": "_information", "type": "NotificationBarSmall" } o_DeviceSettingsGrid = {"container": o_SettingsHome, "id": "_grid", "type": "Grid", } +#HeaderBar Information Pop up +o_InformationIconButton = {"container": o_Gui_MainView, "id": "_informationButton", "type": "IconButton", "unnamed": 1 } +o_InformationParameters = {"container": o_Overlay, "type": "Text", "unnamed": 1 } +o_VersionColumn = {"container": o_Overlay, "id": "_versionColumn", "type": "Column", "unnamed": 1 } # General Alarm Requirements Instruction o_AlarmButton_Mute = {"container": o_Overlay, "id": "_muteButton", "type": "MuteButton" } o_AlarmButton_Mute_Min = {"container": o_AlarmButton_Mute, "id": "_hourText", "type": "Text" } @@ -77,3 +78,99 @@ o_Alarm_Resume_Button = {"container": o_Overlay, "id": "_resumeTouchRect", "type": "TouchRect", "unnamed": 1 } o_Alarm_Rinseback_Button = {"container": o_Overlay, "id": "_rinsebackTouchRect", "type": "TouchRect", "unnamed": 1 } o_Alarm_End_Treatment_Button = {"container": o_Overlay, "id": "_endTouchRect", "type": "TouchRect", "unnamed": 1 } + +#ultrafiltration +o_treatmentUltrafiltration = {"container": mainTreatmentScreen, "objectName": "treatmentUltrafiltration", "type": "TreatmentUltrafiltration" } +o_editButton_ultrafiltration_IconButton = {"container": o_treatmentUltrafiltration, "id": "_editButton", "type": "IconButton", "unnamed": 1 } +o_uf_Volume_LabelValue = {"container": mainTreatmentScreen, "id": "_ufVolume", "type": "LabelValue", "unnamed": 1 } +o_uf_Rate_LabelValue = {"container": mainTreatmentScreen, "id": "_ufRate", "type": "LabelValue", "unnamed": 1 } +o_volume_Delivered = {"container": mainTreatmentScreen, "id": "_valueText", "type": "Text", "unnamed": 1 } +o_ufVolumeRemovedItem_ValueItem = {"container": o_Overlay, "id": "_ufVolumeRemovedItem", "type": "ValueItem", "unnamed": 1 } +o_ufVolumeGoalItem_ValueItem = {"container": o_Overlay, "id": "_ufVolumeGoalItem", "type": "ValueItem", "unnamed": 1 } +o_editButton_TouchRect = {"container": o_Overlay, "objectName": "_editButton", "type": "TouchRect" } +o_volumeGoalAdjuster_ValueAdjuster = {"container": o_Overlay, "objectName": "_volumeGoalAdjuster", "type": "ValueAdjuster" } +o_continueButton_TouchRect = {"container": o_Overlay, "objectName": "_continueButton", "type": "TouchRect" } +o_newVolumeContainer_ValueContainer = {"container": o_Overlay, "objectName": "_newVolumeContainer", "type": "ValueContainer" } +o_newRateContainer_ValueContainer = {"container": o_Overlay, "objectName": "_newRateContainer", "type": "ValueContainer" } +o_confirmButton_TouchRect = {"container": o_Overlay, "objectName": "_confirmButton", "type": "TouchRect" } +o_backButton_BackButton = {"container": o_Overlay, "id": "_backButton", "type": "BackButton", "unnamed": 1 } +o_notificationBar_NotificationBarSmall = {"container": o_Overlay, "objectName": "NotificationBar", "type": "NotificationBarSmall" } +o_title_Text = {"container": o_Overlay, "type": "Text", "unnamed": 1 } + +# Device Settings Information Version +o_DeviceSettingsInformation = {"container": o_SettingsHome, "id": "_touchItem", "type": "TouchRect", "unnamed": 1 } +o_InformationPageTitleText = {"container": o_SettingsInformation, "id": "_titleText", "type": "Text", "unnamed": 1 } +o_SettingsBase_SettingsInformation = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsBase" } +o_SettingsBase_Information_Text = {"container": o_SettingsBase_SettingsInformation, "type": "Text", "unnamed": 1 } +o_SettingsBase_SettingsInformation_2 = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsInformation" } +o_SettingsBase_grid_Grid = {"container": o_SettingsBase_SettingsInformation_2, "id": "_grid", "type": "Grid", "unnamed": 1 } + +#HeaderBar WiFi +o_HeaderBar_WiFi_IconButton = {"container": o_Gui_MainView, "id": "_wifiButton", "type": "IconButton", "unnamed": 1 } +o_HeaderBar_WiFi_Popup = {"container": o_Overlay, "id": "_backgroundRect", "type": "Rectangle", "unnamed": 1 } +o_HeaderBar_Wifi_PopuoParameters = {"container": o_Overlay, "type": "Text", "unnamed": 1 } +o_HeaderBar_WiFi_IconImage = {"container": o_Gui_MainView, "id": "_iconImage", "source": "qrc:/images/iWifi", "type": "Image", "unnamed": 1 } + +#Device Settings Wi-Fi +o_SettingsBase_SettingsInformation = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsBase" } +o_SettingsBase_Information_Text = {"container": o_SettingsBase_SettingsInformation, "type": "Text", "unnamed": 1 } +o_InformationPageTitleText = {"container": o_SettingsInformation, "id": "_titleText", "type": "Text", "unnamed": 1 } +o_SettingsBase_SettingsWiFi = {"container": o_Gui_MainView, "objectName": "_SettingsBase", "type": "SettingsWiFi" } +o_SettingsBase_WifiScreen_ScanButton = {"container": o_SettingsBase_SettingsWiFi, "id": "_scanButton", "type": "TouchRect", "unnamed": 1 } +o_SettingsBase_WifiScreen_BackButton = {"container": o_SettingsBase_SettingsWiFi, "objectName": "_backButton", "type": "BackButton" } + +#Create Treatment +o_PreTreatmentCreateStack_PreTreatmentCreateStack = {"container": o_Gui_MainView, "objectName": "_PreTreatmentCreateStack", "type": "PreTreatmentCreateStack" } +o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate = {"container": o_PreTreatmentCreateStack_PreTreatmentCreateStack, "objectName": "_PreTreatmentCreate", "type": "PreTreatmentCreate" } +o_bullet_object = { "type": "StepBullet", "unnamed": 1 } +o_text_object = { "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_gridSteps_Grid = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_gridSteps", "type": "Grid", "unnamed": 1 } +o_PreTreatmentCreate_bloodFlowRate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bloodFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PatientIDEntry_TextEntry = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_pretreatmentPatientIDEntry", "type": "TextEntry", "unnamed": 1 } +o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateFlowRateControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_durationControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_durationControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinDispensingRateControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinDispensingRate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinDispensingRate", "type": "LabelUnitContainer", "unnamed": 1, } +o_PreTreatmentCreate_heparinDispensingRateControl_OffText = {"container": o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster, "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinStopTimeControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperatureControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolumeControl", "type": "ValueAdjuster", "unnamed": 1 } +o_PreTreatmentCreate_heparinBolusVolume_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinBolusVolume", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_heparinBolusVolume_Off_Text = {"container": o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster, "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_dialyzerTypeComboBox_BaseComboBox = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerTypeComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_saveButton_TouchRect = {"container": o_Overlay, "id": "_saveButton", "type": "TouchRect", "unnamed": 1 } +o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_acidConcentrate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_acidConcentrate", "type": "LabelUnitContainer", "unnamed": 1 } +o_acidConcentrate_editbutton = {"container": o_PreTreatmentCreate_acidConcentrate_LabelUnitContainer, "id": "_editButton", "type": "IconButton", "unnamed": 1, } +o_PreTreatmentCreate_acidConcentrate_Popup_Text = {"container": o_Overlay, "type": "TitleText", "unnamed": 1 } +o_PreTreatmentCreate_qrCode_Image = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_qrCode", "type": "Image", "unnamed": 1 } +o_PreTreatmentButton = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "objectName": "_confirmButton", "type": "ConfirmButton" } +o_prescription_menuButton = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_prescriptionMenu", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_dialysateFlowRate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateFlowRate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_duration_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_duration", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_heparinStopTime_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_heparinStopTime", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_heparinStopTime_OFF_Text = {"container": o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_bicarbonateConcentrate_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bicarbonateConcentrate", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_dialyzerType_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialyzerType", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_dialysateTemperature_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_dialysateTemperature", "type": "LabelUnitContainer", "unnamed": 1 } +o_PreTreatmentCreate_salineBolusVolume_LabelUnitContainer = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_salineBolusVolume", "type": "LabelUnitContainer", "unnamed": 1 } +o_potassium_LabelUnitContainer = {"container": o_Overlay, "id": "_potassium", "type": "LabelUnitContainer", "unnamed": 1 } +o_potassium_leftArrow_IconButton = {"container": o_potassium_LabelUnitContainer, "id": "_leftArrow", "type": "IconButton", "unnamed": 1 } +o_calcium_LabelUnitContainer = {"container": o_Overlay, "id": "_calcium", "type": "LabelUnitContainer", "unnamed": 1 } +o_calcium_leftArrow_IconButton = {"container": o_calcium_LabelUnitContainer, "id": "_leftArrow", "type": "IconButton", "unnamed": 1 } +o_option_combo_box = {"container": o_Overlay, "type": "Text", "unnamed": 1 } +o_PreTreatmentCreate_bloodFlowRate_slider_Slider = {"container": o_PreTreatmentCreate_bloodFlowRateControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_dialysateFlowRate_slider_Slider = {"container": o_PreTreatmentCreate_dialysateFlowRateControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_duration_slider_Slider = {"container": o_PreTreatmentCreate_durationControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_heprainBolusVolume_slider_Slider = {"container": o_PreTreatmentCreate_heparinBolusVolumeControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_heprainDispensingRate_slider_Slider = {"container": o_PreTreatmentCreate_heparinDispensingRateControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_heprainStopTime_slider_Slider = {"container": o_PreTreatmentCreate_heparinStopTimeControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_dialysateTemperature_slider_Slider = {"container": o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_salineBolusVolume_slider_Slider = {"container": o_PreTreatmentCreate_salineBolusVolumeControl_ValueAdjuster, "id": "_slider", "type": "Slider", "unnamed": 1 } +o_PreTreatmentCreate_bicarbonateConcentrateComboBox_BaseComboBox= {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bicarbonateConcentrateComboBox", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatment_vitalsCombobox_BaseCombobox = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "id": "_bpMeasurementIntervalControl", "type": "BaseComboBox", "unnamed": 1 } +o_PreTreatmentCreate_Text = {"container": o_PreTreatmentCreateStack_PreTreatmentCreate_PreTreatmentCreate, "type": "Text", "unnamed": 1 } + + Index: suite_leahi/suite.conf =================================================================== diff -u -rd6995833789c17ba62c955bd2eea0fbcaed0f3e9 -rd94d75c2c397752dfee66870ad4cee7dd913651d --- suite_leahi/suite.conf (.../suite.conf) (revision d6995833789c17ba62c955bd2eea0fbcaed0f3e9) +++ suite_leahi/suite.conf (.../suite.conf) (revision d94d75c2c397752dfee66870ad4cee7dd913651d) @@ -1,6 +1,6 @@ AUT=leahi LANGUAGE=Python OBJECTMAPSTYLE=script -TEST_CASES=tst_solution_infusion tst_main_treatment tst_service_export_logs tst_general_alarm_requirements_instruction +TEST_CASES = tst_solution_infusion tst_main_treatment tst_service_export_logs tst_device_settings_information_version tst_headerbar_information_popup tst_headerbar_wifi_indicator tst_device_settings_wifi tst_ultrafiltration tst_create_treatment tst_general_alarm_requirements_instruction VERSION=3 WRAPPERS=Qt