def _GetUpdatedAnalysisResult(analysis, flaky_failures): if not analysis or not analysis.result or not analysis.result.get( 'failures'): return {}, False return test_failure_analysis.UpdateAnalysisResultWithFlakeInfo( analysis.result, flaky_failures)
def testUpdateAnalysisResultAllFlaky(self): analysis_result = { 'failures': [{ 'tests': [ { 'last_pass': 123, 'first_failure': 123, 'suspected_cls': [], 'test_name': 'TestSuite1.test1' }, { 'last_pass': 123, 'first_failure': 123, 'suspected_cls': [], 'test_name': 'TestSuite1.test2' }, ], 'step_name': 'browser_tests on platform' }] } flaky_failures = { 'browser_tests on platform': ['TestSuite1.test1', 'TestSuite1.test2'] } updated_result, all_flaked = ( test_failure_analysis.UpdateAnalysisResultWithFlakeInfo( analysis_result, flaky_failures)) expected_result = { 'failures': [{ 'tests': [ { 'last_pass': 123, 'first_failure': 123, 'suspected_cls': [], 'test_name': 'TestSuite1.test1', 'flaky': True }, { 'last_pass': 123, 'first_failure': 123, 'suspected_cls': [], 'test_name': 'TestSuite1.test2', 'flaky': True }, ], 'step_name': 'browser_tests on platform', 'flaky': True }] } self.assertTrue(all_flaked) self.assertEqual(expected_result, updated_result)
def testUpdateAnalysisResultOnlyStep(self): analysis_result = {'failures': [{'step_name': 'another_step1'}]} flaky_failures = { 'browser_tests on platform': ['TestSuite1.test1', 'TestSuite1.test2'] } _, all_flaked = ( test_failure_analysis.UpdateAnalysisResultWithFlakeInfo( analysis_result, flaky_failures)) self.assertFalse(all_flaked)