# -*- 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_inhandled_message_log # date 2022/04/09 # author sai chaithyna ela, # joseph varghese # # NOTE: # This test verifies the unhandled logs for the messages provided from dialin.ui.hd_simulator import HDSimulator from dialin.ui import utils from configuration import utility from configuration import config hd_simulator = HDSimulator() UNHANDLED_MESSAGE_1 = "\n[0x2A00]\nHD_custom_data_verification_1\nU32=Reset\nU32=Health\n" UNHANDLED_MESSAGE_2 = "\n[0x1300]\nHD_custom_data_verification_2\nU32=Reset_1\nU32=Reset_2\nU32=Reset_3\nU32=Reset_4\n" UNHANDLED_MESSAGE_3 = "\n[0x8C00]\nHD_custom_data_verification_3\nU32=Reset\nU32=Seconds\n" UNHANDLED_MESSAGE_4 = "\n[0x9F00]\nHD_custom_data_verification_4\nU32=Reset\nU32=Seconds\n" def verify_log(api_content, expected_api_argument): """ This function is capable to verify the log data from sd-card @param api_content - (string) combination of message id, message text and arguments separated with '\n' @param expected_api_argument - (list) expected arguments for API. """ utils.waitForGUI(0.2) api_content = api_content.split('\n') test.log(str(api_content[2])) message_extracted = utility.get_current_log_details(message_ack = True, message_text = '~'+api_content[2]) test.log(str(message_extracted)) #loop to remove default arguments present in API, here it is '?' while('?' in message_extracted[0]): message_extracted[0].remove('?') #step to remove square bracket and padded zeros from standard UNHANDLED_MESSAGE format. formated_meassage_id = api_content[1].replace('[', "") formated_meassage_id = formated_meassage_id.replace(']', "") if formated_meassage_id[-2:] == '00' and len(formated_meassage_id) == 6: expected_meassage_id = formated_meassage_id.replace("00", "") test.compare(expected_meassage_id.lower(), message_extracted[2], "message id should be "+str(api_content[1])) test.compare(str(expected_api_argument), str(message_extracted[0]), "API arguments should be "+str(expected_api_argument)) test.verify(config.ACK_REQ_STATUS in message_extracted, "ack request is verified") test.verify(config.ACK_BAK_STATUS in message_extracted, "ack back is verified") def navigate_unhandled_message(): location = '/home/denali/Projects/application/resources/settings/Messages/Unhandled.conf' with open(location, "a") as filereader: filereader.write(UNHANDLED_MESSAGE_1) filereader.write(UNHANDLED_MESSAGE_2) filereader.write(UNHANDLED_MESSAGE_3) filereader.write(UNHANDLED_MESSAGE_4) utils.waitForGUI(5) def main(): navigate_unhandled_message() startApplication("denaliSquish") #0x2A00 hd_simulator.cmd_send_hd_general_response(message_id = 42, accepted = 1, reason = 1) verify_log(UNHANDLED_MESSAGE_1, [1, 1]) #0x9 hd_simulator.cmd_send_hd_general_response(message_id = 19, accepted = 1, reason = 1) #verify_log(UNHANDLED_MESSAGE_2) #0x8C00 hd_simulator.cmd_send_hd_general_response(message_id = 140, accepted = 0, reason = 0) verify_log(UNHANDLED_MESSAGE_3, [0, 0]) #0x9F00 hd_simulator.cmd_send_hd_general_response(message_id = 159, accepted = 0, reason = 1) verify_log(UNHANDLED_MESSAGE_4, [0, 1]) utils.tstDone()