# -*- 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_post # @author (last) Papiya Mandal # @date (last) 19-04-2022 # import names from builtins import int as pyInt from configuration import config from dialin.ui import utils from dialin.ui.dg_simulator import DGSimulator from dialin.ui.hd_simulator import HDSimulator hd_simulator = HDSimulator() dg_simulator = DGSimulator() MSGS_AND_CONDITIONS = { 9: [True, False], 5: [True, False], 2: [True, False], 4: [True, False], 8: [True, False], 1: [False, False], 3: [True, False], 13: [True, False], 15: [True, False], 11: [True, False], 18: [True, False], 12: [True, False], 20: [True, False], 10: [True, False], 14: [True, False], 6: [False, False], 17: [True, False], 7: [True, False], 21: [True, True], 16: [False, True], 19: [True, True], 22: [True, True], } def post_a_message_and_verify_progress_and_completion(msgs_and_conditions): """ Method to post message and verify the progress and completion @param msgs_and_conditions - (list) list of messages and conditions @return - None """ for msg, conditions in msgs_and_conditions.items(): final_msg = conditions[0] final_msg_posted = conditions[1] hd_simulator.cmd_send_hd_post(msg, final_msg, final_msg_posted) dg_simulator.cmd_send_dg_post(msg, final_msg, final_msg_posted) utils.waitForGUI(1) verify_the_progress(value=msg, final_msg_posted=final_msg_posted) verify_final_message_posted(final_msg=final_msg, final_msg_posted=final_msg_posted) def verify_the_progress(value, final_msg_posted) -> None: """ Method to verify the progress @param value - (int) single message @final_msg_posted - (bool) True/False @return - None """ progress = pyInt(get_progress()) if final_msg_posted is True: test.xcompare(value, progress, "Final value {} should not reflect on the progress bar".format(value)) elif final_msg_posted is False: test.compare(value, progress, "{} should reflect on progress bar".format(value)) def get_progress(): """ Method to obtain progress @return: Progress value """ progress_bar = object.parent(waitForObjectExists(names.o_progress_bar)) progress_bar_children = object.children(progress_bar) PROGRESS_BAR_VAL_PARENT_INDEX = 3 progress_bar_val_parent = progress_bar_children[PROGRESS_BAR_VAL_PARENT_INDEX] progress_bar_val_parents_children = object.children(progress_bar_val_parent) PROGRESS_VALUE = 1 progress_bar_val = progress_bar_val_parents_children[PROGRESS_VALUE] return progress_bar_val.text.toUtf8().constData() def verify_final_message_posted(final_msg=None, final_msg_posted=None) -> None: """ method to verify the indication of final message posted @param final_msg - (bool) final message(True/False) @param final_msg_posted - (bool) if this is the final post message(True/False) @return - None """ test.startSection("Verifying the status") if final_msg == True and final_msg_posted == True: if object.exists(names.o_done_indicator): done_indicator = waitForObject(names.o_done_indicator) test.compare(done_indicator.enabled, True, "Done, Final value passed") elif (final_msg == False and final_msg_posted == True) : if object.exists(names.o_fail_indicator): fail_indicator = waitForObject(names.o_fail_indicator) test.compare(fail_indicator.enabled, True, "Failed, Final value not passed") elif (final_msg == True and final_msg_posted == False) or (final_msg == False and final_msg_posted == False): if object.exists(names.o_busy_indicator): busy_indicator = waitForObject(names.o_busy_indicator) test.compare(busy_indicator.enabled, True, "Waiting for a value") test.endSection() def main(): utils.tstStart(__file__) startApplication(config.AUT_NAME) hd_simulator.cmd_send_power_on_self_test_version_request() post_a_message_and_verify_progress_and_completion(MSGS_AND_CONDITIONS) utils.tstDone()