Index: suite_leahi/shared/scripts/configuration/config.py =================================================================== diff -u -r8ac0eae52c22298abedaec3200ebd450888c3ac2 -r6078061ad1c24e3ad4873a1a64f3bb4fcfd3e2eb --- suite_leahi/shared/scripts/configuration/config.py (.../config.py) (revision 8ac0eae52c22298abedaec3200ebd450888c3ac2) +++ suite_leahi/shared/scripts/configuration/config.py (.../config.py) (revision 6078061ad1c24e3ad4873a1a64f3bb4fcfd3e2eb) @@ -97,3 +97,26 @@ #Feature Options FEATURE_CONFIGURATIONS_SCREEN_TITLE_TEXT = "Feature Configurations" FEATURE_CONFIGURATIONS_PARAMETERS_TEXTS = ["Integrated BP Cuff", "Heparin Syringe Pump", "Chemical Disinfection"] +MEASURE_VITALS = "Measure Vitals" + +#Device Settings Options +DEVICE_SETTINGS = "Device Settings" +ADVANCED_MODE = "Advanced Mode" +DEVICE_INFORMATION = "Device Information" +WI_FI = "Wi-Fi" +DEVICE_CLEANING = "Device Cleaning" +SERVICE = "Service" +EXPORT_LOGS = "Export Logs" +VOLUME_AND_BRIGHTNESS = "Volume And Brightness" +FEATURE_CONFIGURATIONS = "Feature Configurations" +ADVANCED_INSTITUTIONAL_SETTINGS = "Advanced Institutional Settings" +FACTORY_RESET = "Factory Reset" +ENABLE_ROOT_SSH = "Enable Root SSH" +INSTITUTIONAL_CONFIGURATIONS = "Institutional Configurations" +DATE_AND_TIME = "Date and Time" +LANGUAGE = "Language" + +#Menu Bar +PRESCRIPTIONS = "Prescriptions" +TREATMENT = "Treatment" +SETTINGS = "Settings" Index: suite_leahi/shared/scripts/configuration/navigation.py =================================================================== diff -u -rb46f1c58b3fc7e6a0eca95b1ca01b3cbff4e62f2 -r6078061ad1c24e3ad4873a1a64f3bb4fcfd3e2eb --- suite_leahi/shared/scripts/configuration/navigation.py (.../navigation.py) (revision b46f1c58b3fc7e6a0eca95b1ca01b3cbff4e62f2) +++ suite_leahi/shared/scripts/configuration/navigation.py (.../navigation.py) (revision 6078061ad1c24e3ad4873a1a64f3bb4fcfd3e2eb) @@ -4,24 +4,22 @@ from leahi_dialin.ui.td_messaging import TD_Messaging from leahi_dialin.common.td_defs import TDOpModes, TDStandbyStates from configuration import config, utility +from configparser import ConfigParser +from pathlib import Path td_simulator = TD_Messaging() def navigate_to_device_settings_screen(): """ - Method to navigate to "Service" screen + Method to navigate to "Device Settings" screen and Compare Device Settings screen title text """ td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value, 0) - headerbar_container = squish.waitForObject(names.o_mainMenu_MainMenu, 2000) - settings_menu_object = utility.findChildByText( - headerbar_container, "Settings" - ) - if settings_menu_object is not None: - squish.mouseClick(settings_menu_object) + main_menu_container = squish.waitForObject(names.o_mainMenu_MainMenu, 2000) + squish.mouseClick(utility.findChildByText(main_menu_container, config.SETTINGS)) headerbar_container = squish.waitForObject(names.o_headerBar_HeaderBar, 2000) device_setting_screen_headerbar_title_text = utility.findChildByText( - headerbar_container, "Device Settings" + headerbar_container, config.DEVICE_SETTINGS ) if device_setting_screen_headerbar_title_text is not None: test.compare( @@ -34,37 +32,35 @@ def navigate_to_device_settings_using_service_password(): td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value, 0) - headerbar_container = squish.waitForObject(names.o_mainMenu_MainMenu, 2000) - settings_menu_object = utility.findChildByText( - headerbar_container, "Settings" - ) - if settings_menu_object is not None: - squish.mouseClick(settings_menu_object) + main_menu_container = squish.waitForObject(names.o_mainMenu_MainMenu, 2000) + squish.mouseClick(utility.findChildByText(main_menu_container, config.SETTINGS)) td_simulator.td_operation_mode(TDOpModes.MODE_SERV.value, 0) grid_container = squish.waitForObject(names.o_DeviceSettingsGrid) - service_option = utility.findChildByText(grid_container, "Service") + squish.mouseClick(utility.findChildByText(grid_container, config.SERVICE)) - if service_option is not None: - squish.mouseClick(service_option) - - headerbar_container = squish.waitForObject(names.o_headerBar_HeaderBar) - service_screen_headerbar_title_text = utility.findChildByText( - headerbar_container, "Service" - ) - if service_screen_headerbar_title_text is not None: - test.compare( - service_screen_headerbar_title_text.text, - config.SERVICE_SCREEN_TITLE_TEXT, - "{} screen is displayed and Comparison of Device Settings Screen Title text".format( - config.SERVICE_SCREEN_TITLE_TEXT - ), - ) input_field = squish.waitForObject(names.o_userConfirmation_TextInput, 1000) squish.type(input_field, config.DEFAULT_SERVICE_PASSWORD_RAW) confirm_button = squish.waitForObject(names.o_userConfirmation_ConfirmButton, 1000) squish.mouseClick(confirm_button) + +def get_ini_value(conf_path: str , section: str, key: str): + """ + Method to get the advanced option from the System.conf file + """ + path = Path(conf_path) + if not path.exists(): + raise FileNotFoundError(f"Not found: {path}") + parser = ConfigParser() + # Preserve case if needed: + # parser.optionxform = str + parser.read(path, encoding="utf-8") + if not parser.has_section(section): + raise KeyError(f"Section [{section}] not found in {path}") + if not parser.has_option(section, key): + raise KeyError(f"Key '{key}' not found in section [{section}]") + return parser.get(section, key) def navigation_pageIndicator_step(vStep_name): """ @@ -77,35 +73,30 @@ """ test.startSection("Method to navigation in the pretreatment page ") - stepcount = squish.waitForObjectExists(names.o_preTreatmentStack_repeater_Repeater) - Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) - squish.mouseClick(squish.waitForObject(Nextbutton)) + stepId = squish.waitForObjectExists(names.o_preTreatmentStack_stepIndicator_StepIndicator) + stepnames = utility.findAllObjectsById(stepId, "_text") + value = get_ini_value("/home/denali/Public/luis/config/configurations/Settings/System.conf", section ="AdvancedMode", key ="AdvancedMode") + standard = stepnames[1:] + if value == "0": + standard = stepnames[3:] + Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) + squish.mouseClick(squish.waitForObject(Nextbutton)) + autoLoadbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text ="Auto Load") squish.mouseClick(squish.waitForObject(autoLoadbutton)) td_simulator.td_blood_set_auto_load_response(vRejectionReason = 0) stepId = squish.waitForObjectExists(names.o_preTreatmentStack_stepIndicator_StepIndicator) values = utility.findAllObjectsById(stepId, "_text") - if stepcount.count == 9: - for input_field in values[3:]: - test.log(str(input_field.text)) - if str(input_field.text) == "Water Sample": - squish.mouseClick(squish.waitForObject(names.o_PreTreatmentSampleStack_button_TouchRect)) - if str(input_field.text) == vStep_name: - break - else: - Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) - squish.mouseClick(Nextbutton) - else: - for input_field in values[3:]: - test.log(str(input_field.text)) - if str(input_field.text) == "Water Sample": - squish.mouseClick(waitForObject(names.o_PreTreatmentSampleStack_button_TouchRect)) + for input_field in standard: + test.log(str(input_field.text)) + if str(input_field.text) == "Water Sample": + squish.mouseClick(squish.waitForObject(names.o_PreTreatmentSampleStack_button_TouchRect)) - if str(input_field.text) == vStep_name: - break - else: - Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) - squish.mouseClick(Nextbutton) + if str(input_field.text) == vStep_name: + break + else: + Nextbutton = utility.setObjectText(obj =names.o_preTreatmentStack_Text, text =config.NEXT) + squish.mouseClick(Nextbutton) - test.endSection() + test.endSection() \ No newline at end of file Index: suite_leahi/tst_feature_options/test.py =================================================================== diff -u -r81c7919125877a08a7e54f3f4de9375a2e25bbaa -r6078061ad1c24e3ad4873a1a64f3bb4fcfd3e2eb --- suite_leahi/tst_feature_options/test.py (.../test.py) (revision 81c7919125877a08a7e54f3f4de9375a2e25bbaa) +++ suite_leahi/tst_feature_options/test.py (.../test.py) (revision 6078061ad1c24e3ad4873a1a64f3bb4fcfd3e2eb) @@ -33,9 +33,7 @@ """Helper function to Navigate to Main Treatment screen from Device Settings""" main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - settings_menu_object = utility.findChildByText(main_menu_container, "Treatment") - if settings_menu_object is not None: - mouseClick(settings_menu_object) + mouseClick(utility.findChildByText(main_menu_container, config.TREATMENT)) mouseClick(waitForObject(names.o_createTreatmentRect_TouchRect, 3000)) @@ -53,17 +51,12 @@ """Navigating to 'Feature Configurations' screen, Verifying Parameters, and Enable & Disable Integrated BP Cuff switch & Verifying it in Main Treatment Screen """ ) - grid_container = waitForObject(names.o_DeviceSettingsGrid) - feature_configurations_option = utility.findChildByText( - grid_container, "Feature Configurations" - ) + device_settings_grid = waitForObject(names.o_DeviceSettingsGrid) + mouseClick(utility.findChildByText(device_settings_grid, config.FEATURE_CONFIGURATIONS)) - if feature_configurations_option is not None: - mouseClick(feature_configurations_option) - headerbar_container = waitForObject(names.o_headerBar_HeaderBar) feature_configurations_title_text = utility.findChildByText( - headerbar_container, "Feature Configurations" + headerbar_container, config.FEATURE_CONFIGURATIONS_SCREEN_TITLE_TEXT ) if feature_configurations_title_text is not None: test.compare( @@ -75,7 +68,7 @@ ) # Wait for the main grid/container - grid_container = waitForObject(names.o_SettingsBase_SettingsFeatureConfigurations) + feature_configuration_grid = waitForObject(names.o_SettingsBase_SettingsFeatureConfigurations) # Iterate through the list of expected texts from config for ( @@ -84,7 +77,7 @@ # Finding any child within the container that matches this text found_elements = utility.findAllObjectsByText( - grid_container, feature_configurations_parameter + feature_configuration_grid, feature_configurations_parameter ) # Verify that at least one such element was found @@ -122,18 +115,14 @@ mouseClick(waitForObject(names.o_SettingsFeatureConfigurations_BackButton, 2000)) main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - prescriptions_menu_object = utility.findChildByText( - main_menu_container, "Prescriptions" - ) - if prescriptions_menu_object is not None: - mouseClick(prescriptions_menu_object) + mouseClick(utility.findChildByText(main_menu_container, config.PRESCRIPTIONS)) td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value) navigate_to_main_treatment_screen_from_settings() mouseClick(waitForObjectExists(names.o_vitalsButton_VitalsButton, 2000)) overlay_container = waitForObject(names.o_Overlay, 2000) integrated_bp_cuff_button = utility.findChildByText( - overlay_container, "Measure Vitals" + overlay_container, config.MEASURE_VITALS ) test.verify( integrated_bp_cuff_button.enabled, "Verify Measure Vitals button is Enabled" @@ -142,12 +131,7 @@ td_simulator.td_operation_mode(TDOpModes.MODE_INIT.value) td_simulator.td_operation_mode(TDOpModes.MODE_SERV.value, 0) - grid_container = waitForObject(names.o_DeviceSettingsGrid) - feature_configurations_option = utility.findChildByText( - grid_container, "Feature Configurations" - ) - if feature_configurations_option is not None: - mouseClick(feature_configurations_option) + mouseClick(utility.findChildByText(device_settings_grid, config.FEATURE_CONFIGURATIONS)) # Wait for the toggle Integrated BP Cuff switch object integrated_bp_cuff_mode_switch = waitForObject( @@ -171,19 +155,14 @@ ) mouseClick(waitForObject(names.o_SettingsFeatureConfigurations_BackButton, 2000)) - main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - prescriptions_menu_object = utility.findChildByText( - main_menu_container, "Prescriptions" - ) - if prescriptions_menu_object is not None: - mouseClick(prescriptions_menu_object) + mouseClick(utility.findChildByText(main_menu_container, config.PRESCRIPTIONS)) navigate_to_main_treatment_screen_from_settings() mouseClick(waitForObjectExists(names.o_vitalsButton_VitalsButton, 2000)) overlay_container = waitForObject(names.o_Overlay, 2000) integrated_bp_cuff_button = utility.findChildByText( - overlay_container, "Measure Vitals" + overlay_container, config.MEASURE_VITALS ) test.verify( not integrated_bp_cuff_button.enabled, @@ -203,20 +182,13 @@ ) td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value, 0) headerbar_container = waitForObject(names.o_mainMenu_MainMenu, 3000) - settings_menu_object = utility.findChildByText( - headerbar_container, "Settings" - ) - if settings_menu_object is not None: - mouseClick(settings_menu_object) + mouseClick(utility.findChildByText(headerbar_container, config.SETTINGS)) + td_simulator.td_operation_mode(TDOpModes.MODE_SERV.value, 0) - grid_container = waitForObject(names.o_DeviceSettingsGrid, 3000) - feature_configurations_option = utility.findChildByText( - grid_container, "Feature Configurations" - ) + device_settings_grid = waitForObject(names.o_DeviceSettingsGrid, 3000) + mouseClick(utility.findChildByText(device_settings_grid, config.FEATURE_CONFIGURATIONS)) - if feature_configurations_option is not None: - mouseClick(feature_configurations_option) # Wait for the toggle Heparin Syringe Pump switch object heparin_syringe_pump_mode_switch = waitForObject( @@ -242,14 +214,9 @@ mouseClick(waitForObject(names.o_SettingsFeatureConfigurations_BackButton, 2000)) main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - prescriptions_menu_object = utility.findChildByText( - main_menu_container, "Prescriptions" - ) - if prescriptions_menu_object is not None: - mouseClick(prescriptions_menu_object) + mouseClick(utility.findChildByText(main_menu_container, config.PRESCRIPTIONS)) - main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - mouseClick(utility.findChildByText(main_menu_container, "Treatment")) + mouseClick(utility.findChildByText(main_menu_container, config.TREATMENT)) mouseClick(waitForObject(names.o_createTreatmentRect_TouchRect, 2000)) td_simulator.td_operation_mode(TDOpModes.MODE_PRET.value) @@ -285,20 +252,14 @@ TDTreatmentStates.TREATMENT_DIALYSIS_STATE.value, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) headerbar_container = waitForObject(names.o_headerBar_HeaderBar, 2000) - heparin_bar = utility.findChildByText(headerbar_container, "Heparin") + heparin_bar = utility.findChildByText(headerbar_container, config.HEPARIN) test.verify(heparin_bar.visible, "Verify Heparin Bar in HearderBar is Visible") td_simulator.td_operation_mode(TDOpModes.MODE_INIT.value) td_simulator.td_operation_mode(TDOpModes.MODE_SERV.value, 0) - grid_container = waitForObject(names.o_DeviceSettingsGrid) - feature_configurations_option = utility.findChildByText( - grid_container, "Feature Configurations" - ) + mouseClick(utility.findChildByText(device_settings_grid, config.FEATURE_CONFIGURATIONS)) - if feature_configurations_option is not None: - mouseClick(feature_configurations_option) - # Wait for the toggle Heparin Syringe Pump switch object heparin_syringe_pump_mode_switch = waitForObject( names.o_SettingsBase_heparinSyringePumpSwitch_BaseSwitch, 3000 @@ -320,20 +281,10 @@ "Verify Heparin Syringe Pump switch is Disabled", ) - mouseClick(waitForObject(names.o_SettingsFeatureConfigurations_BackButton, 2000)) - - main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - prescriptions_menu_object = utility.findChildByText( - main_menu_container, "Prescriptions" - ) - if prescriptions_menu_object is not None: - mouseClick(prescriptions_menu_object) + mouseClick(waitForObject(names.o_SettingsFeatureConfigurations_BackButton, 2000)) + mouseClick(utility.findChildByText(main_menu_container, config.PRESCRIPTIONS)) + mouseClick(utility.findChildByText(main_menu_container, config.TREATMENT)) - main_menu_container = waitForObject(names.o_mainMenu_MainMenu, 2000) - settings_menu_object = utility.findChildByText(main_menu_container, "Treatment") - if settings_menu_object is not None: - mouseClick(settings_menu_object) - mouseClick(waitForObject(names.o_createTreatmentRect_TouchRect, 2000)) td_simulator.td_operation_mode(TDOpModes.MODE_PRET.value) navigation.navigation_pageIndicator_step(config.CREATERX) @@ -370,7 +321,7 @@ ) headerbar_container = waitForObject(names.o_headerBar_HeaderBar, 2000) - heparin_bar = utility.findChildByText(headerbar_container, "Heparin") + heparin_bar = utility.findChildByText(headerbar_container, config.HEPARIN) test.verify( not heparin_bar.visible, "Verify Heparin Bar in HearderBar is Not Visible" )