def testModifyStatusIfDuplicateSingleAnalysisResult(self): analyses = self._CreateAnalyses('m', 'b', 1) check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0]) analysis = WfAnalysis.Get('m', 'b', 0) self.assertEqual(result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateFirstResultUntriaged(self): analyses = self._CreateAnalyses('m', 'b', 3) check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis_one.result_status)
def testModifyStatusIfDuplicateFirstResultUntriaged(self): analyses = self._CreateAnalyses('m', 'b', 3) check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) self.assertEqual(result_status.FOUND_UNTRIAGED, analysis_one.result_status)
def testModifyStatusIfDuplicateSingleAnalysisResult(self): analyses = self._CreateAnalyses('m', 'b', 1) check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0]) analysis = WfAnalysis.Get('m', 'b', 0) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateCheckForTriagedResult(self): analyses = self._CreateAnalyses('m', 'b', 1) analyses[0].result_status = result_status.NOT_FOUND_UNTRIAGED check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0]) analysis = WfAnalysis.Get('m', 'b', 0) self.assertEqual(result_status.NOT_FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateCheckForTriagedResult(self): analyses = self._CreateAnalyses('m', 'b', 1) analyses[0].result_status = wf_analysis_result_status.NOT_FOUND_UNTRIAGED check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0]) analysis = WfAnalysis.Get('m', 'b', 0) self.assertEqual(wf_analysis_result_status.NOT_FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateOnlyOneTriagedEnd(self): analyses = self._CreateAnalyses('m', 'b', 4) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 3): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateOnlyOneTriagedEnd(self): analyses = self._CreateAnalyses('m', 'b', 4) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 3): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateModifiedMultipleAnalyses(self): analyses = self._CreateAnalyses('m', 'b', 4) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() analyses[3].result_status = result_status.FOUND_CORRECT analyses[3].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 3): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE, analysis.result_status)
def testModifyStatusIfDuplicateModifiedMultipleAnalyses(self): analyses = self._CreateAnalyses('m', 'b', 4) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[3].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[3].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 3): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE, analysis.result_status)
def testModifyStatusIfDuplicateSuccess(self): analyses = self._CreateAnalyses('m', 'b', 3) analyses[0].result_status = wf_analysis_result_status.FOUND_INCORRECT analyses[0].put() analyses[2].result_status = wf_analysis_result_status.FOUND_INCORRECT analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) # Use data in datastore rather than in memory. analysis_two = WfAnalysis.Get('m', 'b', 1) self.assertEqual(wf_analysis_result_status.FOUND_INCORRECT_DUPLICATE, analysis_two.result_status)
def testModifyStatusIfDuplicateSuccess(self): analyses = self._CreateAnalyses('m', 'b', 3) analyses[0].result_status = result_status.FOUND_INCORRECT analyses[0].put() analyses[2].result_status = result_status.FOUND_INCORRECT analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) # Use data in datastore rather than in memory. analysis_two = WfAnalysis.Get('m', 'b', 1) self.assertEqual(result_status.FOUND_INCORRECT_DUPLICATE, analysis_two.result_status)
def testModifyStatusIfDuplicateDifferentStatuses(self): analyses = self._CreateAnalyses('m', 'b', 4) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[3].result_status = wf_analysis_result_status.FOUND_INCORRECT analyses[3].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 3): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateNotContinuousFailures(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[4].put() analyses[2].result['failures'][0]['step_name'] = 'not_a' analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis_one.result_status)
def testModifyStatusIfDuplicateDifferentStatusInBetween(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[4].put() analyses[2].result_status = wf_analysis_result_status.NOT_FOUND_UNTRIAGED analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis_one.result_status)
def testModifyStatusIfDuplicateDifferentStatusInBetween(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = result_status.FOUND_CORRECT analyses[4].put() analyses[2].result_status = result_status.NOT_FOUND_UNTRIAGED analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) self.assertEqual(result_status.FOUND_UNTRIAGED, analysis_one.result_status)
def testModifyStatusIfDuplicateNotContinuousFailures(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = result_status.FOUND_CORRECT analyses[4].put() analyses[2].result['failures'][0]['step_name'] = 'not_a' analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) self.assertEqual(result_status.FOUND_UNTRIAGED, analysis_one.result_status)
def testModifyStatusIfDuplicateDifferentCLs(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[4].put() analyses[2].result['failures'][0]['suspected_cls'][0]['revision'] = 'rev' analyses[2].suspected_cls[0]['revision'] = 'rev' analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 4): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateDifferentCLs(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = result_status.FOUND_CORRECT analyses[4].put() analyses[2].result['failures'][0]['suspected_cls'][0][ 'revision'] = 'rev' analyses[2].suspected_cls[0]['revision'] = 'rev' analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 4): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(result_status.FOUND_UNTRIAGED, analysis.result_status)
def testModifyStatusIfDuplicateDuplicateStatusInBetween(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = result_status.FOUND_CORRECT analyses[4].put() analyses[2].result_status = (result_status.FOUND_CORRECT_DUPLICATE) analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) analysis_three = WfAnalysis.Get('m', 'b', 3) self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE, analysis_one.result_status) self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE, analysis_three.result_status)
def testModifyStatusIfDuplicateDuplicateStatusInBetween(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[4].put() analyses[2].result_status = ( wf_analysis_result_status.FOUND_CORRECT_DUPLICATE) analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) analysis_one = WfAnalysis.Get('m', 'b', 1) analysis_three = WfAnalysis.Get('m', 'b', 3) self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE, analysis_one.result_status) self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE, analysis_three.result_status)
def testModifyStatusIfDuplicateExtraFlakyFailure(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT analyses[4].put() flaky_failure = { 'step_name': 'flaky', 'first_failure': 2, 'last_pass': 1, 'suspected_cls': [], } analyses[2].result['failures'].append(flaky_failure) analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 4): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE, analysis.result_status)
def testModifyStatusIfDuplicateExtraFlakyFailure(self): analyses = self._CreateAnalyses('m', 'b', 5) analyses[0].result_status = result_status.FOUND_CORRECT analyses[0].put() analyses[4].result_status = result_status.FOUND_CORRECT analyses[4].put() flaky_failure = { 'step_name': 'flaky', 'first_failure': 2, 'last_pass': 1, 'suspected_cls': [], } analyses[2].result['failures'].append(flaky_failure) analyses[2].put() check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1]) for i in range(1, 4): analysis = WfAnalysis.Get('m', 'b', i) self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE, analysis.result_status)