# 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) 27-Jan-2022 # # NOTE: # This test is a demo and is intended to be used as an example on how to call the dialin API within SquishQt. import names # from time import sleep from dialin.ui import utils # from dialin.ui import unittests from builtins import int as pyInt from configuration.assertion_helper import * from dialin.ui.hd_simulator import HDSimulator # from dialin.ui.dg_simulator import DGSimulator # from dialin.ui.hd_simulator_alarms import HDAlarmsSimulator MSGS_AND_CONDITIONS = { 5: [True, False], 10: [True, False], 2: [True, False], 18: [True, True], 7: [False, True], } assertion = AssertionHelper() hd = HDSimulator() #dg = DGSimulator() def get_progress(): """ Method to obtain progress @return: Progress value """ progress_bar = object.parent(waitForObjectExists(names.progress_bar)) progress_bar_children = object.children(progress_bar) progress_bar_val_parent = progress_bar_children[3] progress_bar_val_parents_children = object.children(progress_bar_val_parent) progress_bar_val = progress_bar_val_parents_children[1] return progress_bar_val.text.toUtf8().constData() def verify_the_progress(value, final_msg_posted) -> None: """ Method to verify the progress @param value: int single message """ progress = pyInt(get_progress())-1 if final_msg_posted is True: assertion.are_not_equal(expected_value=value, actual_value=progress, message=f"Final value {value} should " + "not reflect on the progress bar") elif final_msg_posted is False: assertion.are_equal(expected_value=value, actual_value=progress, message=f"{value} should reflect "+ "on progress bar") def post_a_message_and_verify_progress_and_completion(msgs_and_conditions): """ method to post a message and verify the progress bar and if final message is posted """ for msg, conditions in msgs_and_conditions.items(): final_msg = conditions[0] final_msg_posted = conditions[1] hd.cmd_send_hd_post(msg, final_msg, final_msg_posted) snooze(2) 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_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.done_indicator): done_indicator = waitForObject(names.done_indicator) test.compare(done_indicator.enabled, True, "Done, Final value passed") elif (final_msg == False and final_msg_posted == True) \ or (final_msg == False and final_msg_posted == False): if object.exists(names.fail_indicator): fail_indicator = waitForObject(names.fail_indicator) test.compare(fail_indicator.enabled, True, "Failed, Final value not passed") elif (final_msg == True and final_msg_posted == False): if object.exists(names.busy_indicator): busy_indicator = waitForObject(names.busy_indicator) test.compare(busy_indicator.enabled, True, "Waiting for a value") test.endSection() def main(): utils.tstStart("tst_post_done") startApplication("denaliSquish") hd.cmd_send_power_on_self_test_version_request() post_a_message_and_verify_progress_and_completion(MSGS_AND_CONDITIONS) utils.tstDone()