Index: shared/scripts/configuration/utility.py =================================================================== diff -u -r535df219a0721d69e25f36e9a24c98e7b59394b3 -r22fa52de3108551fe5f5c9a4d7246eeb9d103fa7 --- shared/scripts/configuration/utility.py (.../utility.py) (revision 535df219a0721d69e25f36e9a24c98e7b59394b3) +++ shared/scripts/configuration/utility.py (.../utility.py) (revision 22fa52de3108551fe5f5c9a4d7246eeb9d103fa7) @@ -84,16 +84,16 @@ containerPos = container.mapToGlobal(squish.QPoint(0, 0)) container_x, container_y = pyInt(containerPos.x), pyInt(containerPos.y) container_width, container_height = pyInt(container.width), pyInt(container.height) - + obj = squish.findObject(obj) objPos = obj.mapToGlobal(squish.QPoint(0, 0)) obj_x, obj_y = pyInt(objPos.x), pyInt(objPos.y) obj_width, obj_height = pyInt(obj.width), pyInt(obj.height) - + if obj_x >= container_x and obj_y >= container_y: if (obj_x + obj_width) <= (container_x + container_width) and (obj_y + obj_height) <= (container_y + container_height): return True - + return False @@ -123,8 +123,7 @@ raise LookupError("zone object is not in view to the user after " + \ "trying 100 times") - - + def navigate_to_pretreatment_screen(mode): """ Method to navigate to sub mode under pre-treatment screen @@ -136,325 +135,6 @@ no_cartridge_self_test_state=0,installation_state=0, dry_self_test_state=0, prime_state=0,recirculate_state=0, patient_connection_state=0) - - -def get_current_date_and_time(date_format='%Y/%b/%d - %H:%M:%S'): - - date = datetime.now() - return str(date.strftime(date_format)) - - -def is_float(num): - """ - This function checks the value is adaptable for float conversion. - - @param num - (string) input value for conversion. - @return True/False- (bool) returns True if the value can type casted into float, else False - """ - try: - if '.' in num: - float(num) - return True - except ValueError: - return False - - -def is_intiger(num): - """ - This function checks the value is adaptable for integer conversion. - - @param num - (string) (string) input value for conversion. - @return True/False- (bool) returns True if the value can type casted into int, else False - """ - try: - if num.isdigit(): - return True - except ValueError: - return False - - -def get_extracted_file(): - """ - This function is the handler for getting file from log folder. - - This handler will go inside log folder and looks for newly added log based on current time. - if it satisfied that condition, it will return the exact path of newly created log. - - @return latest_file - (string) returns latest file that append on log folder from sd-data - """ - try: - list_of_files = glob.glob(LOG_LOCATION) - latest_file = max(list_of_files, key=os.path.getctime) - return latest_file - except: - test.fail("log file is not created during application interaction") - return False - - -# def get_message_from_log(file_name, message_text): -# -# """ -# This method intended to extract the message from application log. -# -# The handler find a match between time displayed on log and occurrences time of event to -# extract the details. For row[index], index represent column to be extracted. -# -# @param file_name - (string) path of the latest log file created. -# @param message_text - (string) message text to be extracted. -# @return message - (string) binary message for the event. -# """ -# message = "" # Message binaries appending with for easy identification -# try: -# with open(file_name, 'r') as csv_file: -# try: -# for row in reversed(list(csv.reader(csv_file))): -# if row[0].isalpha(): -# pass -# else: -# row_length = sum(1 for values in row) -# if row_length >= 4: -# if row[3]!= None and row[3] == message_text: -# message_length = sum(1 for values in row) -# for column in range((message_length-1), 3, -1): -# message = row[column] + message -# return message -# else: -# pass -# except: -# test.fail("application log data is corrupted") -# except: -# test.fail("application log is protected") - - -def get_message_from_log(file_name, message_text): - - """ - This method intended to extract the message from application log. - For row[index], index represent column to be extracted. - - @param file_name - (string) path of the latest log file created. - @param message_text - (string) message text to be extracted. - @return message - (string) binary message for the event. - """ - message = [] - try: - with open(file_name, 'r') as csv_file: - try: - for row in reversed(list(csv.reader(csv_file))): - if row[0].isalpha(): - pass - else: - row_length = sum(1 for values in row) - if row_length >= 4: - if row[3]!= None and row[3] == message_text: - message_length = sum(1 for values in row) - for column in range(4, (message_length),1): #for column in range((message_length-1), 3, -1): - message.append(row[column]) - for value in range(len(message)): - float_status = is_float(message[value]) - int_status = is_intiger(message[value]) - if float_status is True: - message[value] = float(message[value]) - if int_status is True: - message[value] = int(message[value]) - return message - else: - pass - except: - test.fail("application log data is corrupted") - except: - test.fail("application log is protected") - - -# def get_ack_request_details(file_name, message_text): -# """ -# This method intended to extract the ack request from application log. -# -# The handler find a match between time displayed on log and occurrences time of event -# along with message id to extract the request acknowledgement. -# For row[index], were index represent column to be extracted. -# -# @param file_name - (string) path of the latest log file created. -# @return row[3] - (string) acknowledgement request status. -# @return row[4] - (string) Negative requested acknowledgement value (Sq) . -# """ -# try: -# message_id = " ID" -# with open(file_name, 'r') as csv_file: -# try: -# for row in reversed(list(csv.reader(csv_file))): -# if row[0].isalpha(): -# pass -# else: -# row_length = sum(1 for values in row) -# if row_length == 6 and row[3] != message_text: -# if row[5].split(':')[0] == message_id: -# extracted_message_id = pyInt(row[5].split(':')[1], 16) -# formatted_message_id = format(extracted_message_id, '#0x') -# return row[3], row[4], formatted_message_id.replace("00", "") -# else: -# pass -# except: -# test.fail("application log data is corrupted - unable to fetch data") -# except: -# test.fail("application log is protected") - - -def get_ack_request_details(file_name, message_text): - """ - This method intended to extract acknowledgement request status, negative requested acknowledgement - and message id from application log. - - For row[index], were index represent column to be extracted. - - @param file_name - (string) path of the latest log file created. - @param message_text - (string) message text to be extracted from log. - @return row[3] - (string) acknowledgement request status. - @return row[4] - (string) Negative requested acknowledgement value (Sq). - @return message_id - (string) formatted message id from log. - """ - try: - message_id = " ID" - with open(file_name, 'r') as csv_file: - try: - for row in reversed(list(csv.reader(csv_file))): - if row[0].isalpha(): - pass - else: - row_length = sum(1 for values in row) - if row_length == 6 and row[3] != message_text: - if row[5].split(':')[0] == message_id: - extracted_message_id = pyInt(row[5].split(':')[1], 16) - formatted_message_id = format(extracted_message_id, '#0x') - return row[3], row[4], formatted_message_id.replace("00", "") - else: - pass - except: - test.fail("application log data is corrupted - unable to fetch data") - except: - test.fail("application log is protected") - - -# def get_bak_request_details(file_name, ack_bak_value): -# """ -# This method intended to extract the ack from application log. -# -# The handler find a match between time displayed on log and occurrences time of event -# along with message id to extract the request acknowledgement. -# For row[index], were index represent column to be extracted. -# -# @param file_name - (string) path of the latest log file created. -# @param message_id - (string) message text to be extracted. -# @param ack_bak_value - (string) Positive back acknowledgement value (Sq). -# @return row[3] - (string) acknowledgement back status. -# """ -# try: -# with open(file_name, 'r') as csv_file: -# try: -# for row in reversed(list(csv.reader(csv_file))): -# if row[0].isalpha(): -# pass -# else: -# row_length = sum(1 for values in row) -# log_time = row[0].split(':') -# if row_length >= 5: -# if row[4] == ack_bak_value: -# return row[3] -# else: -# pass -# else: -# pass -# except: -# test.fail("application log data is corrupted") -# except: -# test.fail("application log is protected") - - -def get_bak_request_details(file_name, ack_bak_value): - """ - This method intended to extract the acknowledgement back status from application log. - - For row[index], were index represent column to be extracted. - - @param file_name - (string) path of the latest log file created. - @param ack_bak_value - (string) Positive back acknowledgement value (Sq). - @return row[3] - (string) acknowledgement back status. - """ - try: - with open(file_name, 'r') as csv_file: - try: - for row in reversed(list(csv.reader(csv_file))): - if row[0].isalpha(): - pass - else: - row_length = sum(1 for values in row) - if row_length >= 5: - if row[4] == ack_bak_value: - return row[3] - else: - pass - else: - pass - except: - test.fail("application log data is corrupted") - except: - test.fail("application log is protected") - - -# def get_current_log_details(message_ack = None, message_text = None): -# """ -# This function is capable to perform data analysis from application log folder. -# -# logs are automatically created in path :"/home/denali/Desktop/sd-card/log/*.log". -# -# In row[index], index represent column to be extracted. -# @param message_ack - (string) 'Y' - if ack is satisfied in log / 'N' - if ack condition is not satisfied -# @param message_text - (string) message text to be extracted from log. -# @param message_id - (string) message id to be extracted from log. -# @return content_record - (list) list contains extracted data (ack_req, ack_bak, message). -# """ -# content_record = [] -# file_name = get_extracted_file() -# if message_text != None: -# message = get_message_from_log(file_name, message_text) -# content_record.append(message) -# if message_ack != None: -# ack_req_status, ack_req_value, message_id = get_ack_request_details(file_name, message_text) -# ack_bak_value = ack_req_value.replace(":-", ":") # getting negative requested ack from positive requested ack -# content_record.append(ack_req_status) -# content_record.append(message_id.lower()) -# if message_ack != None and ack_bak_value != None: -# ack_bak_status = get_bak_request_details(file_name, ack_bak_value) -# content_record.append(ack_bak_status) -# return content_record - - -def get_current_log_details(message_ack = None, message_text = None): - """ - This function is capable to perform data analysis from application log folder. - - logs are automatically created in path :"/home/denali/Desktop/sd-card/log/*.log". - - In row[index], index represent column to be extracted. - @param message_ack - (string) 'Y' - if ack is satisfied in log / 'N' - if ack condition is not satisfied - @param message_text - (string) message text to be extracted from log. - @return content_record - (list) list contains extracted data (ack_req, ack_bak, message, message_id). - """ - content_record = [] - file_name = get_extracted_file() - if message_text != None: - message = get_message_from_log(file_name, message_text) - content_record.append(message) - if message_ack != None: - ack_req_status, ack_req_value, message_id = get_ack_request_details(file_name, message_text) - ack_bak_value = ack_req_value.replace(":-", ":") # getting negative requested ack from positive requested ack - content_record.append(ack_req_status) - content_record.append(message_id.lower()) - if message_ack != None and ack_bak_value != None: - ack_bak_status = get_bak_request_details(file_name, ack_bak_value) - content_record.append(ack_bak_status) - return content_record - def set_arterial_ranges_min_val(art_low): """ Method to set the Arterial range maximum value to user expected value @@ -656,46 +336,4 @@ else: test.compare(ven_min, ven_low, "Actual Venous range minimum value: {} is equal to Expected value: {}".format(ven_min, ven_low)) - test.endSection() - -def scroll_to_value_on_pop_up(value=None, container=None): - """ - scroll to the to the value if object is hidden - @param value - (obj) value object - @param container - (obj) Container of the value - @return boolean true and false - """ - counter = 0 - while counter <= 100: - try: - counter += 1 - squish.findObject(value) - squish.snooze(0.5) - if check_if_object_is_within_the_container(obj=value, container=container): - return True - else: - raise RuntimeError - except RuntimeError: - ScreenObj = squish.waitForObject(container) - screenHeight = pyInt(ScreenObj.height) - screenWidth = pyInt(ScreenObj.width) - squish.mouseWheel(ScreenObj, screenWidth//2, - screenHeight//2, 0, -50, squish.Qt.NoModifier) - - raise LookupError("value object is not in view to the user after " + \ - "trying 100 times") - - -def expected_heparin_value(val): - names.o_heparin_value["text"] = val - return names.o_heparin_value - - -def msg(string): - """ - Added ### at the right side of the string to make sure that it is a message. - @param string: (str) the string to add trailing ### to - @return pad_str: (str) padded string - """ - padded_str = "###"+string - return padded_str + test.endSection() \ No newline at end of file