# -*- coding: utf-8 -*-" # Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. # copyright # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, # IN PART OR IN WHOLE, # WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # file tst_In_treatment # date 2020/03/18 # author Amritha Debnat # import names from configuration.utility import * from configuration.config import * from dialin.ui import utils from dialin.ui.hd_simulator import HDSimulator hd_simulator = HDSimulator() PRE_TREATMENT_STEP = 3 NUM_OF_PRETREATMENT_BULLETS = len(PRE_TREATMENT_SCREENS) SCREEN_OBJ = names.o_PreTreatmentDisposableStack_PreTreatmentBase_TreatmentFlowBase CARTRIDGE_INSTALLATION = 1 HEPARIN_SYRINGE = 2 NUM_OF_CARTRIDGE_INSTALLATION_SCREENS = 4 NUM_OF_HEPARIN_SYRINGE_SCREENS = 5 CARTRIDGE_INSTALLATION_TEXT = "Open the front panel door.\nAnd check the cartridge." HEPARIN_SYRINGE_TEXT = "Connect the cartridge blood and dialysis fluid lines to the dialyzer." def navigate_to_disposables(): """ Method to navigate to disposables and verify 'System Self Test' title is displayed """ test.startSection("Navigating to disposables and verifying 'System Self Test' title is displayed") navigate_to_pretreatment_screen(mode=3) test.compare(SYSTEM_SELF_TEST_TITLE, waitForObject(names.o_system_test_text).text, "'{} title should displayed when user is navigated to disposable screen".format(SYSTEM_SELF_TEST_TITLE)) page_step_indicator_verification(SCREEN_OBJ, PRE_TREATMENT_STEP) test.endSection() def verification_of_right_instruction_navigation(num_of_instruction, screen): """ Method to verify right arrow functionality and verify the status of back, next and confirm button if available @param num_of_instruction - (int) count the number of instructions, @param screen - (int) current screen """ test.startSection("verifying right arrow functionality and verify the status of left, 'BACK', 'NEXT' and 'CONFIRM' button if available") verification_of_missing_object(names.o_PreTreatmentBase_leftImage_Image) for indicator in range(1, num_of_instruction, 1): verification_of_bullet_navigation(indicator, num_of_instruction) verification_of_next_button(DISABLED) if screen == CARTRIDGE_INSTALLATION: verification_of_back_button(DISABLED) else: verification_of_back_button(ENABLED) if indicator != num_of_instruction: mouseClick(waitForObject(names.o_PreTreatmentBase_rightImage_Image)) verification_of_missing_object(names.o_PreTreatmentBase_rightImage_Image) verification_of_next_button(ENABLED) test.endSection() def verification_of_left_instruction_navigation(num_of_instruction, screen): """ Method to verify left arrow functionality and verify the status of back, next and confirm button if available @param num_of_instruction - (int) count the number of instructions, @param screen - (int) current screen """ test.startSection("verifying left arrow functionality and verify the status of left, 'BACK', 'NEXT' and 'CONFIRM' button if available") verification_of_missing_object(names.o_PreTreatmentBase_rightImage_Image) for indicator in range(num_of_instruction, 0, -1): verification_of_bullet_navigation(indicator, num_of_instruction) if indicator == num_of_instruction: verification_of_next_button(ENABLED) else: verification_of_next_button(DISABLED) if screen == CARTRIDGE_INSTALLATION: verification_of_back_button(DISABLED) else: verification_of_back_button(ENABLED) if indicator != 1: mouseClick(waitForObject(names.o_PreTreatmentBase_leftImage_Image)) verification_of_missing_object(names.o_PreTreatmentBase_leftImage_Image) test.endSection() def verification_of_bullet_navigation(num, num_of_instruction): """ Method to verify the status of bullets based on the number of instruction screen @param num - (int) number of indicator @param num_of_instruction- (int) count the number of instructions """ test.startSection("instruction bullet verification for screens") for instruction in range(1, num_of_instruction): bullet_children = object.children(waitForObjectExists(get_bullet_object(SCREEN_OBJ,(NUM_OF_PRETREATMENT_BULLETS + instruction) - 1))) bullet_circle_color = bullet_children[0].color.name bullet_border_color = bullet_children[0].border.color.name if instruction <= num: test.compare(bullet_circle_color, COMPLETE_COLOR) test.compare(bullet_border_color,COMPLETE_COLOR) test.log(str(instruction) + " Complete bullet") else: test.compare(bullet_circle_color, CURRENT_COLOR) test.compare(bullet_border_color,INCOMPLETE_COLOR) test.log(str(instruction) + " Incomplete bullet") test.endSection() def verification_of_next_button(condition): """ Method to verify the status 'NEXT' button @param condition - (bool) True/False """ test.startSection("Verifying the status of 'NEXT' button") test.compare(str(waitForObjectExists(names.o_next_button_text).text), NEXT_BUTTON_TEXT, "'NEXT' button text should be {}".format(NEXT_BUTTON_TEXT)) if condition: test.compare(waitForObjectExists(names.o_next_button_text).enabled, condition, "'NEXT' button should be enabled") else: test.compare(waitForObjectExists(names.o_next_button_text).enabled, condition, "'NEXT' button should be disabled") test.endSection() def click_on_next_button(): """ Method to click on 'NEXT' button """ mouseClick(waitForObjectExists(names.o_next_button_text)) def verification_of_back_button(condition): """ Method to verify the availability of 'BACK' button verify the status of the same @param condition - (bool) True/False """ test.startSection("Verifying the availability of 'BACK' button verify the status of the same") if object.exists(names.o_back_button_text): test.compare(str(waitForObjectExists(names.o_back_button_text).text), BACK_BUTTON_TEXT,"'BACK' button text should be {}".format(BACK_BUTTON_TEXT)) if condition: test.compare(waitForObjectExists(names.o_back_button_text).enabled , condition, "'BACK' button should be enabled") else: test.compare(waitForObjectExists(names.o_back_button_text).enabled , condition, "'BACK' button should be disabled") else: test.passes("'BACK' Button should not exists") test.endSection() def click_on_back_button(): """ Method to click on 'BACK' button """ mouseClick(waitForObjectExists(names.o_back_button_text)) def verify_cartridge_installation_first_screen_displayed(): """ Method to verify the screen 1 of cartridge_installation of instructions is displayed """ test.startSection("Verifying the screen 1 of 'cartridge installation' of instructions is displayed") expected_screen_text = waitForObject(names.o_cartridge_installation_screen1_text) test.compare(expected_screen_text.text, CARTRIDGE_INSTALLATION_TEXT, "{} Should be displayed when navigated to cartridge_installationcartridge_installation by using 'BACK' button".format(CARTRIDGE_INSTALLATION_TEXT)) test.endSection() def verify_heparin_syringe_first_screen_displayed(): """ Method to verify the screen 1 of heparin syringe of instructions is displayed """ test.startSection("Verifying the screen 1 of 'heparin syringe' of instructions is displayed") expected_screen_text = waitForObject(names.o_heparin_syringe_screen1_text) test.compare(expected_screen_text.text, HEPARIN_SYRINGE_TEXT, "{} Should be displayed when navigated to Phase 2 by using BACK button".format(HEPARIN_SYRINGE_TEXT)) test.endSection() def verification_of_confirm_button(): """ Method to verify the status 'CONFIRM' button """ test.startSection("Verifying the status 'CONFIRM' button") test.compare(str(waitForObjectExists(names.o_confirm_button_text).text), CONFIRM_BUTTON_TEXT,"'CONFIRM' button text should be {}".format(CONFIRM_BUTTON_TEXT)) test.compare(waitForObjectExists(names.o_confirm_button_text).enabled , True, "'CONFIRM' button should be enabled") test.endSection() def verify_the_functionality_for_cartridge_installation(): """ Method to verify functionality of the cartridge_installation screen's left, right navigation and 'NEXT' button """ test.startSection("Verifying functionality of the cartridge installation screen's left, right navigation and 'NEXT' button") navigate_to_pretreatment_screen(mode=4) verification_of_right_instruction_navigation(NUM_OF_CARTRIDGE_INSTALLATION_SCREENS, CARTRIDGE_INSTALLATION) verification_of_left_instruction_navigation(NUM_OF_CARTRIDGE_INSTALLATION_SCREENS, CARTRIDGE_INSTALLATION) verification_of_right_instruction_navigation(NUM_OF_CARTRIDGE_INSTALLATION_SCREENS, CARTRIDGE_INSTALLATION) click_on_next_button() test.endSection() def verify_the_functionality_for_heparin_syringe(): """ Method to verify functionality of the heparin syringe screen's left, right navigation and 'NEXT' button """ test.startSection("Verifying functionality of the heparin syringe screen's left, right navigation, 'BACK'and 'NEXT' button") verification_of_right_instruction_navigation(NUM_OF_HEPARIN_SYRINGE_SCREENS, HEPARIN_SYRINGE) verification_of_left_instruction_navigation(NUM_OF_HEPARIN_SYRINGE_SCREENS, HEPARIN_SYRINGE) click_on_back_button() verify_cartridge_installation_first_screen_displayed() verification_of_right_instruction_navigation(NUM_OF_CARTRIDGE_INSTALLATION_SCREENS, CARTRIDGE_INSTALLATION) click_on_next_button() verification_of_right_instruction_navigation(NUM_OF_HEPARIN_SYRINGE_SCREENS, HEPARIN_SYRINGE) click_on_back_button() verify_cartridge_installation_first_screen_displayed() verification_of_right_instruction_navigation(NUM_OF_CARTRIDGE_INSTALLATION_SCREENS, CARTRIDGE_INSTALLATION) click_on_next_button() verification_of_right_instruction_navigation(NUM_OF_HEPARIN_SYRINGE_SCREENS, HEPARIN_SYRINGE) click_on_next_button() verification_of_confirm_button() test.endSection() def verify_the_functionality_for_saline_bag(): """ Method to verify functionality of the saline bag screen's left, right navigation and 'NEXT', 'BACK' and 'CONFIRM' button """ test.startSection("Verifying functionality of the saline bag") click_on_back_button() verify_heparin_syringe_first_screen_displayed() click_on_back_button() verify_cartridge_installation_first_screen_displayed() verification_of_right_instruction_navigation(NUM_OF_CARTRIDGE_INSTALLATION_SCREENS, CARTRIDGE_INSTALLATION) click_on_next_button() verification_of_right_instruction_navigation(NUM_OF_HEPARIN_SYRINGE_SCREENS, HEPARIN_SYRINGE) click_on_next_button() verification_of_confirm_button() test.endSection() def main(): utils.tstStart(__file__) startApplication(AUT_NAME) navigate_to_disposables() verify_the_countdown(SYSTEM_SELF_TEST_TITLE) verify_the_functionality_for_cartridge_installation() utils.waitForGUI(1) verify_the_functionality_for_heparin_syringe() utils.waitForGUI(1) verify_the_functionality_for_saline_bag() utils.tstDone()