| OLD | NEW |
| (Empty) | |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 from common.waterfall import failure_type |
| 6 from model import analysis_approach_type |
| 7 from model.wf_suspected_cl import WfSuspectedCL |
| 8 from waterfall import suspected_cl_util |
| 9 from waterfall.test import wf_testcase |
| 10 |
| 11 |
| 12 class SuspectedCLUtilTest(wf_testcase.WaterfallTestCase): |
| 13 |
| 14 def testCreateWfSuspectedCL(self): |
| 15 approach = analysis_approach_type.HEURISTIC |
| 16 master_name = 'm' |
| 17 builder_name = 'b' |
| 18 build_number = 123 |
| 19 compile_failure_type = failure_type.COMPILE |
| 20 repo_name = 'chromium' |
| 21 revision = 'r1' |
| 22 commit_position = 1 |
| 23 |
| 24 self.assertIsNone(WfSuspectedCL.Get(repo_name, revision)) |
| 25 |
| 26 suspected_cl_util.UpdateSuspectedCL( |
| 27 approach, master_name, builder_name, build_number, compile_failure_type, |
| 28 repo_name, revision, commit_position) |
| 29 |
| 30 suspected_cl = WfSuspectedCL.Get(repo_name, revision) |
| 31 |
| 32 self.assertIsNotNone(suspected_cl) |
| 33 self.assertEqual(analysis_approach_type.HEURISTIC, suspected_cl.approach) |
| 34 self.assertEqual(compile_failure_type, suspected_cl.failure_type) |
| 35 self.assertEqual([[master_name, builder_name, build_number]], |
| 36 suspected_cl.builds) |
| 37 |
| 38 def testUpdateWfSuspectedCL(self): |
| 39 approach = analysis_approach_type.HEURISTIC |
| 40 master_name = 'm' |
| 41 builder_name = 'b' |
| 42 build_number = 122 |
| 43 test_failure_type = failure_type.TEST |
| 44 repo_name = 'chromium' |
| 45 revision = 'r2' |
| 46 commit_position = 2 |
| 47 |
| 48 suspected_cl = WfSuspectedCL.Create(repo_name, revision, commit_position) |
| 49 suspected_cl.approach = analysis_approach_type.TRY_JOB |
| 50 suspected_cl.builds.append(['m', 'b1', 100]) |
| 51 suspected_cl.failure_type = test_failure_type |
| 52 suspected_cl.put() |
| 53 |
| 54 suspected_cl_util.UpdateSuspectedCL( |
| 55 approach, master_name, builder_name, build_number, test_failure_type, |
| 56 repo_name, revision, commit_position) |
| 57 |
| 58 suspected_cl = WfSuspectedCL.Get(repo_name, revision) |
| 59 |
| 60 self.assertIsNotNone(suspected_cl) |
| 61 self.assertEqual(analysis_approach_type.BOTH, suspected_cl.approach) |
| 62 self.assertEqual(test_failure_type, suspected_cl.failure_type) |
| 63 self.assertEqual( |
| 64 [['m', 'b1', 100], [master_name, builder_name, build_number]], |
| 65 suspected_cl.builds) |
| 66 |
| 67 def testUpdateWfSuspectedCLAddAnotherHeuristic(self): |
| 68 approach = analysis_approach_type.HEURISTIC |
| 69 master_name = 'm' |
| 70 builder_name = 'b' |
| 71 build_number = 122 |
| 72 test_failure_type = failure_type.TEST |
| 73 repo_name = 'chromium' |
| 74 revision = 'r2' |
| 75 commit_position = 2 |
| 76 |
| 77 suspected_cl = WfSuspectedCL.Create(repo_name, revision, commit_position) |
| 78 suspected_cl.approach = analysis_approach_type.HEURISTIC |
| 79 suspected_cl.put() |
| 80 |
| 81 suspected_cl_util.UpdateSuspectedCL( |
| 82 approach, master_name, builder_name, build_number, test_failure_type, |
| 83 repo_name, revision, commit_position) |
| 84 |
| 85 suspected_cl = WfSuspectedCL.Get(repo_name, revision) |
| 86 |
| 87 self.assertEqual(analysis_approach_type.HEURISTIC, suspected_cl.approach) |
| 88 |
| 89 def testUpdateWfSuspectedCLRerun(self): |
| 90 approach = analysis_approach_type.HEURISTIC |
| 91 master_name = 'm' |
| 92 builder_name = 'b' |
| 93 build_number = 122 |
| 94 test_failure_type = failure_type.TEST |
| 95 repo_name = 'chromium' |
| 96 revision = 'r2' |
| 97 commit_position = 2 |
| 98 |
| 99 suspected_cl = WfSuspectedCL.Create(repo_name, revision, commit_position) |
| 100 suspected_cl.builds = [[master_name, builder_name, build_number]] |
| 101 suspected_cl.put() |
| 102 |
| 103 suspected_cl_util.UpdateSuspectedCL( |
| 104 approach, master_name, builder_name, build_number, test_failure_type, |
| 105 repo_name, revision, commit_position) |
| 106 |
| 107 suspected_cl = WfSuspectedCL.Get(repo_name, revision) |
| 108 |
| 109 self.assertEqual([[master_name, builder_name, build_number]], |
| 110 suspected_cl.builds) |
| OLD | NEW |