def format_log_msg(logObj): """ Using the log object, format the meta information from the object into a meaningful message to the user. """ msg = "" # Protocol imported from Version Control System Successfully if logObj.message_type == "PRI": testSuffix = "" caseSuffix = "" testCount = logObj.meta.split(",")[0] caseCount = logObj.meta.split(",")[1] if int(testCount) > 1: testSuffix = "s" if int(caseCount) > 1: caseSuffix = "s" msg = "Protocol imported from the VCS with "+testCount+" test"+testSuffix+" and "+caseCount+" case"+caseSuffix+"." # Protocol Refresh elif logObj.message_type == "PRF": newVersion, oldVersion = logObj.meta.split(',') msg = "Protocol refreshed from %s to %s." % (oldVersion, newVersion) # Protocol initially assigned to gNumber elif logObj.message_type == "POA": msg = "Protocol owner assigned to %s." % convert_gnumber_link(logObj.meta) # Protocol Inactivated elif logObj.message_type == "PRN": msg = "Protocol deactivated by %s." % convert_gnumber_link(logObj.meta) # Protocol Reactivation elif logObj.message_type == "PRR": msg = "Protocol reactivated by %s." % convert_gnumber_link(logObj.meta) # Protocol has been reassigned elif logObj.message_type == "POC": newOwner = logObj.meta.split(',')[0] oldOwner = logObj.meta.split(',')[1] msg = "Protocol ownership reassigned to %s from %s." % ( convert_gnumber_link(newOwner), convert_gnumber_link(oldOwner) ) # Protocol state has been updated elif logObj.message_type == "PSU": newState = logObj.meta.split(',')[0] oldState = logObj.meta.split(',')[1] if oldState == "None": msg = "Protocol state set to %s." % newState else: msg = "Protocol state changed from %s to %s." % (oldState, newState) # Case Option "PRM" was modified elif logObj.message_type == "COP": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s value for PRM equipment was changed to %s." % (name, value) # Case Option "Machsim" was modified elif logObj.message_type == "COM": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s value for Machsim equipment was changed to %s." % (name, value) # Case Option "shield_box" was modified elif logObj.message_type == "COS": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s value for Shield box equipment was changed to %s." % (name, value) # Case Option "PG Type" was modified elif logObj.message_type == "CPG": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s pulse generator type equipment was changed to %s." % (name, value) # Case Option "Sensor Type" was modified elif logObj.message_type == "CST": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s external sensor type equipment was changed to %s." % (name, value) # Case Option "Environment Type" was modified elif logObj.message_type == "CET": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s testing environment type was changed to %s." % (name, value) # Case Option "Execution Type" was modified elif logObj.message_type == "CEE": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s test execution type was changed to %s." % (name, value) # Case Option "Automation state" was modified elif logObj.message_type == "CAS": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s test automation development state was changed to %s." % (name, value) # Case Option "SVMachsim" was modified elif logObj.message_type == "CSV": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s value for SVMachsim equipment was changed to %s." % (name, value) # Case Option "Teltone" was modified elif logObj.message_type == "CTE": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s value for Teltone equipment was changed to %s." % (name, value) # Case Option "Telephone" was modified elif logObj.message_type == "CTL": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s value for telephone equipment was changed to %s." % (name, value) # Planned Execution was added elif logObj.message_type == "PEA": name = logObj.meta.split(',')[0] id = logObj.meta.split(',')[1] region = logObj.meta.split(',')[2] pg_model = logObj.meta.split(',')[3] comm_model = logObj.meta.split(',')[4] browser = logObj.meta.split(',')[5] if browser == BROWSER_OPTIONS[0][1]: browser = '' # Country was added later, so not all log messages of this type have it try: country = logObj.meta.split(',')[6] msg = 'Test List item for %s added: %s (%s), %s, %s, %s' % (create_planned_exec_created_case_link(logObj.meta), region, country, pg_model, comm_model, browser) except IndexError: msg = 'Test List item for %s added: %s, %s, %s, %s' % (create_planned_exec_created_case_link(logObj.meta), region, pg_model, comm_model, browser) # Case Option "Centricity" was modified elif logObj.message_type == "CCT": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s testing centricity was changed to %s." % (name, value) # Case Option "Comm Connection" was modified elif logObj.message_type == "CCC": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s communicator connection type was changed to %s." % (name, value) # Test Log Parsing Success elif logObj.message_type == "TLS": # Get individual meta data protocol_name = logObj.meta.split(',')[0] case_name = logObj.meta.split(',')[1] test_name = logObj.meta.split(',')[2] pg_model = logObj.meta.split(',')[3] external = logObj.meta.split(',')[4] browser = logObj.meta.split(',')[5] testplan = logObj.meta.split(',')[6].strip() msg = 'Successfully parsed a test log (%s) for %s, %s, %s, with pg = %s, external = %s, and browser = %s' % (convert_planned_exec_link(testplan), protocol_name, test_name, case_name, pg_model, external, browser) # Test Log Parsing Failure elif logObj.message_type == "TLF": msg = "Log Parsing Failure" # Test Log Parsing Incomplete elif logObj.message_type == "TLI": # Get individual meta data protocol_name = logObj.meta.split(',')[0] case_name = logObj.meta.split(',')[1] test_name = logObj.meta.split(',')[2] msg = "<div id='view_details'>Incomplete Log File: " \ "<div title='<p>Test: <b>%s</b></p>" \ "<p>Case: <b>%s</b></p>'" \ " style='display:inline;'>Mouse over to view details.</div>" \ % (test_name, case_name) # Case has been reassigned elif logObj.message_type == "COC": case = logObj.meta.split(',')[0] newOwner = logObj.meta.split(',')[1] oldOwner = logObj.meta.split(',')[2] msg = "%s ownership reassigned to %s from %s." % ( case, convert_gnumber_link(newOwner), convert_gnumber_link(oldOwner) ) # Case automation owner has been assigned elif logObj.message_type == "CAO": case = logObj.meta.split(',')[0] newOwner = logObj.meta.split(',')[1] msg = "%s automation ownership assigned to %s." % ( case, convert_gnumber_link(newOwner) ) # Planned Execution was deleted elif logObj.message_type == "PED": name = logObj.meta.split(',')[0] id = logObj.meta.split(',')[1] region = logObj.meta.split(',')[2] pg_model = logObj.meta.split(',')[3] comm_model = logObj.meta.split(',')[4] browser = logObj.meta.split(',')[5] msg = 'Test List item for %s has been deleted: %s, %s, %s, %s' % (create_planned_exec_created_case_link(logObj.meta), region, pg_model, comm_model, browser) # Planned Execution was deactivated elif logObj.message_type == "PDD": name = logObj.meta.split(',')[0] id = logObj.meta.split(',')[1] region = logObj.meta.split(',')[2] pg_model = logObj.meta.split(',')[3] comm_model = logObj.meta.split(',')[4] browser = logObj.meta.split(',')[5] msg = 'Test List item for %s has been deactivated: %s, %s, %s, %s' % (create_planned_exec_created_case_link(logObj.meta), region, pg_model, comm_model, browser) # Case Option "USB Relay Type" was modified elif logObj.message_type == "CUT": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s external USB relay type equipment was changed to %s." % (name, value) # Case Option "Comm Cellular Type" was modified elif logObj.message_type == "CCL": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s external cellular type equipment was changed to %s." % (name, value) # Case Option "Comm Mode" was modified elif logObj.message_type == "CCM": name = logObj.meta.split(',')[0] value = logObj.meta.split(',')[1] msg = "%s external mode was changed to %s." % (name, value) # Message is not defined else: msg = "This message cannot be displayed." return msg
def populateTestListTable_ajax(request,cid): """ Send back the planned_exec fields for the test list table in the case detail/test list tab Inputs: cid - case_id for the requested case """ try: test_list = Planned_Exec.objects.filter(case=cid).select_related('planned_for','case','plm') except Planned_Exec.DoesNotExist: msg = 'Test List does not exist for this case' except: msg = 'Unknown Error' # Get count of logs for each planned execution logCount = Counter() for log in TestLog.objects.filter(case=cid): logCount[log.testplan_id] += 1 # Get latest testlogs for this case latestLogs = {log.planned_exec_id : log.testlog for log in LatestTestLog.objects.filter(planned_exec__case=cid).select_related('testlog')} release = Case.objects.get(id=cid).protocol.release_id schedule = ProjectSchedule.getProjScheduleDict(release) # dataTables plugin requires only a JSON-formatted list named "aaData" - http://www.datatables.net/examples/data_sources/ajax.html dataTables = {'aaData': [], 'status': False} # Iterate through the test list to supply the rows for test in test_list: # Create the checkbox tlbox = '''<input type="checkbox" name="delete_select_%s" id="id_delete_select" />''' % str(test.id) if test.planned_for: planned_for = test.planned_for.name else: planned_for = "None" # Create the regression options/edit link if fully automated # TODO: This does not reflect the database values if a user has switched from FA to something else after setting regression options. # Originally found in RTC 60655 if test.case.exec_type == 'FA': regression_column = test.get_regression_display() else: regression_column = "N/A" # Handle the deactivated planned executions a little differently if test.end_date: dataTables['aaData'].append([tlbox, regression_column, test.getDataTablesPLMBrowserStr(browser=True), planned_for, convert_gnumber_link(test.owner), "Deactivated", "N/A", "N/A", "N/A", convert_planned_exec_link(test.id), ""]) elif test.exec_state == "NR": dataTables['aaData'].append([tlbox, regression_column, test.getDataTablesPLMBrowserStr(browser=True), planned_for, convert_gnumber_link(test.owner), test.get_exec_state_display(), "N/A", "N/A", "N/A", convert_planned_exec_link(test.id), "zActivePE"]) else: # Get the build and phase strings build = str(latestLogs[test.id].build) testDate = latestLogs[test.id].test_starttime.date() phase_str = schedule.get(testDate.toordinal(), 'None') dataTables['aaData'].append([tlbox, regression_column, test.getDataTablesPLMBrowserStr(browser=True), planned_for, convert_gnumber_link(test.owner), test.get_exec_state_display(), logCount[test.id], latestLogs[test.id].test_starttime.strftime("%m/%d/%y %H:%M:%S"), build+" / "+phase_str, convert_planned_exec_link(test.id), "zActivePE"]) dataTables['status'] = True return JSONHttpResponse(dataTables)