import names import test import squish 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 "Device Settings" screen and Compare Device Settings screen title text """ td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value, 0) 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, config.DEVICE_SETTINGS ) if device_setting_screen_headerbar_title_text is not None: test.compare( device_setting_screen_headerbar_title_text.text, config.DEVICE_SETTINGS_SCREEN_TITLE_TEXT, "{} screen is displayed and Comparison of Device Settings Screen Title text".format( config.DEVICE_SETTINGS_SCREEN_TITLE_TEXT ), ) def navigate_to_device_settings_using_service_password(): td_simulator.td_operation_mode(TDOpModes.MODE_STAN.value, 0) 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) squish.mouseClick(utility.findChildByText(grid_container, config.SERVICE)) 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): """ Navigate to the specified page using the step indicator component. This method selects the given step from the page step indicator Args: vStep_name (str): The name of the step to navigate to as displayed in the step indicator. """ test.startSection("Method to navigation in the pretreatment page ") 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") 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) test.endSection()