Index: suite_leahi/tst_water_dialysate_blood_sampling/test.py =================================================================== diff -u -rc39b460f6f4585f23938b67f74bb60e58862baef -rb29968830a0ad7bfb6b1711404ece8e3f6b656eb --- suite_leahi/tst_water_dialysate_blood_sampling/test.py (.../test.py) (revision c39b460f6f4585f23938b67f74bb60e58862baef) +++ suite_leahi/tst_water_dialysate_blood_sampling/test.py (.../test.py) (revision b29968830a0ad7bfb6b1711404ece8e3f6b656eb) @@ -13,23 +13,105 @@ # 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) - utility.verify_create_treatment_parameters() - test.endSection() \ No newline at end of file + 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()