def test_get_warnings_suppressed_by_multiple_rules(self): oWarningList = warning_list.create() oWarning = warning.create('WID1') oWarning.add_suppression_rule('Rule 1') oWarning.add_suppression_rule('Rule 2') oWarningList.add_warning(oWarning) oWarning = warning.create('WID2') oWarning.add_suppression_rule('Rule 3') oWarningList.add_warning(oWarning) oWarning = warning.create('WID3') oWarning.add_suppression_rule('Rule 4') oWarning.add_suppression_rule('Rule 5') oWarningList.add_warning(oWarning) lActual = oWarningList.get_warnings_suppressed_by_multiple_rules() self.assertEqual(2, len(lActual)) self.assertEqual('WID1', lActual[0].get_id()) self.assertEqual('WID3', lActual[1].get_id())
def test_build_suppressed_warning_table(self): lExpected = [] lExpected.append('-' * 17 + '+' + '-' * 8 + '+' + '-' * (80 - 20 - 1 - 5 - 1)) lExpected.append(' ID | Line # | Warning Message') lExpected.append('-' * 17 + '+' + '-' * 8 + '+' + '-' * (80 - 20 - 1 - 5 - 1)) lExpected.append(' CMP001 | 1 | message 1') lExpected.append(' CMP002 | 2 | message 2') lExpected.append(' CMP003 | 3 | message 3') lExpected.append(' CMP004 | 4 | message 4') lExpected.append(' CMP005 | 5 | message 5') lExpected.append('-' * 17 + '+' + '-' * 8 + '+' + '-' * (80 - 20 - 1 - 5 - 1)) lExpected.append('') oSup = suppression.create() oSup.add_suppressed_warning( warning.create('CMP001', 'message 1', None, 1)) oSup.add_suppressed_warning( warning.create('CMP002', 'message 2', None, 2)) oSup.add_suppressed_warning( warning.create('CMP003', 'message 3', None, 3)) oSup.add_suppressed_warning( warning.create('CMP004', 'message 4', None, 4)) oSup.add_suppressed_warning( warning.create('CMP005', 'message 5', None, 5)) lActual = display.build_suppressed_warning_table(oSup) for iIndex, sLine in enumerate(lExpected): self.assertEqual(sLine, lActual[iIndex])
def test_add_warning_method(self): oWarningList = warning_list.create() oWarningList.add_warning(warning.create('WID1')) oWarningList.add_warning(warning.create('WID2')) self.assertEqual('WID1', oWarningList.warnings[0].warning_id) self.assertEqual('WID2', oWarningList.warnings[1].warning_id)
def test_get_number_of_warnings(self): oWarningList = warning_list.create() self.assertEqual(0, oWarningList.get_number_of_warnings()) oWarningList.add_warning(warning.create('WID1')) self.assertEqual(1, oWarningList.get_number_of_warnings()) oWarningList.add_warning(warning.create('WID2')) self.assertEqual(2, oWarningList.get_number_of_warnings())
def test_add_suppression_rule(self): oWarning = warning.create() self.assertEqual([], oWarning.suppressed_by) oWarning.add_suppression_rule('Rule') self.assertEqual(['Rule'], oWarning.suppressed_by) oWarning.add_suppression_rule('Rule 1') self.assertEqual(['Rule', 'Rule 1'], oWarning.suppressed_by)
def extract_warnings(lFile): oReturn = warning_list.create() fWarningFound = False for iLineNumber, sLine in enumerate(lFile): # Clear the warning found flag if not sLine.startswith(' ') and fWarningFound: fWarningFound = False oReturn.add_warning(oWarning) if sLine.startswith(' ') and fWarningFound: oWarning.message += ' ' + sLine.strip() if sLine.startswith('Warning:'): fWarningFound = True iColon1Index = sLine.find(':') iColon2Index = sLine.find(':', iColon1Index+1) if iColon2Index == -1: sID = 'NO_ID' sMessage = sLine[iColon1Index+1:].strip() else: sID = sLine[iColon1Index+1:iColon2Index].strip() sMessage = sLine[iColon2Index+1:].strip() if ' ' in sID: sID = 'NO_ID' sMessage = sLine[iColon1Index+1:].strip() oWarning = warning.create(sID, sMessage, None, iLineNumber + 1) return oReturn
def test_is_suppressed_by_multiple_rules(self): oWarning = warning.create() self.assertFalse(oWarning.is_suppressed_by_multiple_rules()) oWarning.add_suppression_rule('Rule') self.assertFalse(oWarning.is_suppressed_by_multiple_rules()) oWarning.add_suppression_rule('Rule 1') self.assertTrue(oWarning.is_suppressed_by_multiple_rules())
def test_empty_warning_creation(self): oWarning = warning.create() self.assertEqual(None, oWarning.warning_id) self.assertEqual(None, oWarning.message) self.assertEqual(None, oWarning.filename) self.assertEqual(None, oWarning.linenumber) self.assertEqual(False, oWarning.investigate) self.assertEqual([], oWarning.suppressed_by)
def test_has_warnings(self): oWarningList = warning_list.create() self.assertEqual(False, oWarningList.has_warnings()) oWarningList.add_warning(warning.create('WID1')) self.assertEqual(True, oWarningList.has_warnings())
def test_maximum_id_length(self): oWarningList = warning_list.create() oWarning = warning.create('1') oWarningList.add_warning(oWarning) self.assertEqual(1, oWarningList.get_maximum_id_length()) oWarning = warning.create('11111') oWarningList.add_warning(oWarning) self.assertEqual(5, oWarningList.get_maximum_id_length()) oWarning = warning.create('1111111111111') oWarningList.add_warning(oWarning) self.assertEqual(13, oWarningList.get_maximum_id_length())
def test_build_multiply_suppressed_warning_header(self): lExpected = [] lExpected.append('~' * 80) lExpected.append('Warning ID : SYN001') lExpected.append('Line Number : 54') lExpected.append('Message : Some warning message') lExpected.append('') oWarning = warning.create('SYN001', 'Some warning message', None, 54) lActual = display.build_multiply_suppressed_warning_header(oWarning) for iIndex, sLine in enumerate(lExpected): self.assertEqual(sLine, lActual[iIndex])
def extract_warnings(lFile): oReturn = warning_list.create() fWarningFound = False for iLineNumber, sLine in enumerate(lFile): if sLine.startswith('# Warning:'): iColon1Index = sLine.find(':') iColon2Index = sLine.find(':', iColon1Index + 1) sID = sLine[iColon1Index + 1:iColon2Index].strip() sID = sID[1:-1] if ' ' in sID: sID = 'NO_ID' sMessage = sLine[iColon1Index + 1:].strip() else: sMessage = sLine[iColon2Index + 1:].strip() oWarning = warning.create(sID, sMessage, None, iLineNumber + 1) oReturn.add_warning(oWarning) return oReturn
def extract_warnings(lFile): oReturn = warning_list.create() fWarningFound = False for iLineNumber, sLine in enumerate(lFile): # Clear the warning found flag to keep track of multiline warnings if not sLine.startswith(' ') and fWarningFound: fWarningFound = False oReturn.add_warning(oWarning) if sLine.startswith(' ') and fWarningFound: oWarning.message += ' ' + sLine.strip() if sLine.startswith('WARNING:') or sLine.startswith('CRITICAL WARNING'): fWarningFound = True iOpenBracketIndex = sLine.find('[') iCloseBracketIndex = sLine.find(']', iOpenBracketIndex+1) sID = sLine[iOpenBracketIndex+1:iCloseBracketIndex].strip() sMessage = sLine[iCloseBracketIndex+1:].strip() oWarning = warning.create(sID, sMessage, None, iLineNumber + 1) return oReturn
def test_get_investigate_warnings(self): oWarningList = warning_list.create() lExpected = [] oWarning = warning.create('1') oWarning.set_investigate() oWarning.add_suppression_rule('Suppression_rule') oWarningList.add_warning(oWarning) lExpected.append(oWarning) oWarning = warning.create('2') oWarning.add_suppression_rule('Suppression_rule') oWarningList.add_warning(oWarning) oWarning = warning.create('3') oWarning.add_suppression_rule('Suppression_rule') oWarning.set_investigate() oWarningList.add_warning(oWarning) lExpected.append(oWarning) oWarning = warning.create('4') oWarning.add_suppression_rule('Suppression_rule') oWarningList.add_warning(oWarning) oWarning = warning.create('5') oWarning.add_suppression_rule('Suppression_rule') oWarning.set_investigate() oWarningList.add_warning(oWarning) lExpected.append(oWarning) oWarning = warning.create('6') oWarning.add_suppression_rule('Suppression_rule') oWarning.set_investigate() oWarningList.add_warning(oWarning) lExpected.append(oWarning) lActual = oWarningList.get_investigate_warnings() self.assertEqual(lExpected, lActual)
def test_is_investigate(self): oWarning = warning.create() self.assertFalse(oWarning.is_investigate()) oWarning.set_investigate() self.assertTrue(oWarning.is_investigate())
def test_get_investigate(self): oWarning = warning.create() self.assertEqual(False, oWarning.get_investigate())
def test_assignment_class_creation(self): oWarning = warning.create('WID', 'Message', 'Filename', 'Linenumber') self.assertEqual('WID', oWarning.warning_id) self.assertEqual('Message', oWarning.message) self.assertEqual('Filename', oWarning.filename) self.assertEqual('Linenumber', oWarning.linenumber)
def test_get_linenumber_method(self): oWarning = warning.create('WID', 'Message', 'Filename', 'Linenumber') self.assertEqual('Linenumber', oWarning.get_linenumber())
def test_is_suppressed(self): oWarning = warning.create() self.assertFalse(oWarning.is_suppressed()) oWarning.add_suppression_rule('Rule') self.assertTrue(oWarning.is_suppressed())