# Subject/Title: LDT -2973 Heparin - SW - 02 - Q&R - 15: SIT - Software Integration Tests - Squish Qt # Functionalities: Testing all functionalities of Heparin in the main treatment screen # # Steps: # Heparin: # 1 Navigate to create treatement and set Heparin dispensing, Heparin bolus and stop values to OFF state # And Verify the values in heparin page # 2 Navigate to create treatement and set Heparin dispensing, Heparin bolus and stop values to some state # And Verify the same parameter display in Heparin page # 3 In the Heparin page verify the different Heparin states # Paused State # Resume State # Completed state import names import can from leahi_dialin.ui import utils from configuration import utility,config,navigation from configuration import config from leahi_dialin.ui.td_messaging import TD_Messaging from leahi_dialin.common.ui_defs import TXStates from leahi_dialin.common.td_defs import TDOpModes,TDTreatmentStates from leahi_dialin.protocols import CAN from leahi_dialin.utils import conversions from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions td =TD_Messaging() watersample = None # handler for messages from UI to FW def handle_water_sample_request( message, timestamp = 0.0): """ Called when the user requests to firmware from UI @return: None """ message = message['message'] index = MsgFieldPositions.START_POS_FIELD_1 state,index = conversions.bytearray_to_integer( message, index) global watersample watersample = state def set_acid_concentrate(): test.startSection("Set acid concentrate") navigation.navigation_pageIndicator_step(config.CREATERX) mouseClick(waitForObject(names.o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry)) waitForObject(names.o_PreTreatmentCreate_pretreatmentPatientIDEntry_TextEntry).text ="abcd" utility.select_different_dropdown(names.o_PreTreatmentCreate_acidConcentrateComboBox_BaseComboBox,config.ACID_CONCENTRATE,2) utility.set_value_based_on_target(names.o_PreTreatmentCreate_dialysateTemperatureControl_ValueAdjuster,37.0) test.endSection() def main(): utils.tstStart(__file__) startApplication(config.AUT_NAME) can_interface = td.can_interface global watersample # handle sent messages from UI if can_interface is not None: channel_id = CAN.DenaliChannels.ui_to_td_ch_id message_id = MsgIds.MSG_ID_UI_WATER_SAMPLE_RESULT_REQUEST.value can_interface.register_receiving_publication_function(channel_id, message_id, handle_water_sample_request) test.startSection("Navigate to the create Rx page and set the acid concentrate option") td.td_operation_mode(TDOpModes.MODE_STAN.value) mouseClick(waitForObject(names.o_createTreatmentRect_TouchRect)) td.td_operation_mode(TDOpModes.MODE_PRET.value) td.td_blood_set_auto_load_response(vRejectionReason = 0) set_acid_concentrate() #open water sample dialog mouseClick(waitForObject(names.o_waterSample_IconButton)) #Check the dialog is opened water_sample = waitForObject(names.o_menu_MainMenu) test.compare(water_sample.visible,True ,"Water sample dialog is visible") chlorine_level = waitForObject(names.o_Column) fail_chlorine = utility.findObjectById(chlorine_level, "_failContainer") mouseClick(waitForObject(fail_chlorine)) mouseClick(waitForObject(names.o_confirmButton_ConfirmButton_2)) test.verify(waitFor( lambda: watersample == 0, 3000), "Testing FW received Chlorine level > 0.1 mg/L Value") pass_chlorine = utility.findObjectById(chlorine_level, "_passContainer") mouseClick(waitForObject(pass_chlorine)) mouseClick(waitForObject(names.o_confirmButton_ConfirmButton_2,2000)) test.verify(waitFor( lambda: watersample == 1, 3000), "Testing FW received Chlorine level ≤ 0.1 mg/L Value") dialysate_checks = waitForObject(names.o_touchRect1_TouchRect) dialysate_checks_text =utility.findChildByText(dialysate_checks, "Dialysate Checks") mouseClick(waitForObject(dialysate_checks_text)) acid_concentrate = waitForObject(names.o_acidConcentrateContainer_LabelUnitContainer) acid_concentrate_text = utility.findObjectById(acid_concentrate,"_acidConcentrateText") test.log(str(acid_concentrate_text.text)) bicarbonate_cartridge = waitForObject(names.o_bicarbonateCartrideSizeContainer_LabelUnitContainer) bicarbonate_cartridge_text = utility.findObjectById(bicarbonate_cartridge,"_bicarbonateCartrideSizeText") test.log(str(bicarbonate_cartridge_text.text)) sodium = waitForObject(names.o_sodiumContainer_LabelUnitContainer) sodium_text = utility.findObjectById(sodium,"_sodiumText") test.log(str(sodium_text.text)) bicarbonate = waitForObject(names.o_bicarbonateContainer_LabelUnitContainer) bicarbonate_text = utility.findObjectById(bicarbonate,"_bicarbonateText") test.log(str(bicarbonate_text.text)) theoritical_Condictivity = waitForObject(names.o_theoriticalCondictivityContainer_LabelUnitContainer) theoritical_Condictivity_text =utility.findObjectById(theoritical_Condictivity,"_theoriticalCondictivityText") test.log(str(theoritical_Condictivity_text.text)) independent_Conductivity_Reading1 = waitForObject(names.o_independentConductivityReadingContainer1_LabelUnitContainer) independent_Conductivity_Reading1_text = utility.findObjectById(independent_Conductivity_Reading1,"_independentConductivityReading1Text") test.log(str(independent_Conductivity_Reading1_text.text)) independent_Conductivity_Reading2 =waitForObject(names.o_independentConductivityReadingContainer2_LabelUnitContainer) independent_Conductivity_Reading2_text = utility.findObjectById(independent_Conductivity_Reading2,"_independentConductivityReading2Text") test.log(str(independent_Conductivity_Reading2_text.text)) dialsate_Temperature = waitForObject(names.o_dialsateTemperatureContainer_LabelUnitContainer) dialsate_Temperature_text = utility.findObjectById(dialsate_Temperature, "_dialsateTemperatureText") test.log(str(dialsate_Temperature_text.text)) actualRO_RejectionPercentage = waitForObject(names.o_actualRORejectionPercentageContainer_LabelUnitContainer) actualRO_RejectionPercentage_text = utility.findObjectById(actualRO_RejectionPercentage,"_actualRORejectionPercentageText") test.log(str(actualRO_RejectionPercentage_text.text)) test.endSection()