| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import unittest | 5 import unittest |
| 6 | 6 |
| 7 from webkitpy.common.host_mock import MockHost |
| 8 from webkitpy.common.net.buildbot import Build |
| 7 from webkitpy.common.net.git_cl import GitCL | 9 from webkitpy.common.net.git_cl import GitCL |
| 8 from webkitpy.common.system.executive_mock import MockExecutive | 10 from webkitpy.common.system.executive_mock import MockExecutive |
| 9 from webkitpy.common.host_mock import MockHost | |
| 10 | 11 |
| 11 | 12 |
| 12 class GitCLTest(unittest.TestCase): | 13 class GitCLTest(unittest.TestCase): |
| 13 | 14 |
| 14 def test_run(self): | 15 def test_run(self): |
| 15 host = MockHost() | 16 host = MockHost() |
| 16 host.executive = MockExecutive(output='mock-output') | 17 host.executive = MockExecutive(output='mock-output') |
| 17 git_cl = GitCL(host) | 18 git_cl = GitCL(host) |
| 18 output = git_cl.run(['command']) | 19 output = git_cl.run(['command']) |
| 19 self.assertEqual(output, 'mock-output') | 20 self.assertEqual(output, 'mock-output') |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 host.stdout.getvalue(), | 100 host.stdout.getvalue(), |
| 100 'Waiting for try jobs (timeout: 7200 seconds).\n' | 101 'Waiting for try jobs (timeout: 7200 seconds).\n' |
| 101 'All jobs finished.\n') | 102 'All jobs finished.\n') |
| 102 | 103 |
| 103 def test_all_jobs_finished_with_started_jobs(self): | 104 def test_all_jobs_finished_with_started_jobs(self): |
| 104 self.assertFalse(GitCL.all_jobs_finished([ | 105 self.assertFalse(GitCL.all_jobs_finished([ |
| 105 { | 106 { |
| 106 'builder_name': 'some-builder', | 107 'builder_name': 'some-builder', |
| 107 'status': 'COMPLETED', | 108 'status': 'COMPLETED', |
| 108 'result': 'FAILURE', | 109 'result': 'FAILURE', |
| 110 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/90', |
| 109 }, | 111 }, |
| 110 { | 112 { |
| 111 'builder_name': 'some-builder', | 113 'builder_name': 'some-builder', |
| 112 'status': 'STARTED', | 114 'status': 'STARTED', |
| 113 'result': None, | 115 'result': None, |
| 116 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/100', |
| 114 }, | 117 }, |
| 115 ])) | 118 ])) |
| 116 | 119 |
| 117 def test_all_jobs_finished_only_completed_jobs(self): | 120 def test_all_jobs_finished_only_completed_jobs(self): |
| 118 self.assertTrue(GitCL.all_jobs_finished([ | 121 self.assertTrue(GitCL.all_jobs_finished([ |
| 119 { | 122 { |
| 120 'builder_name': 'some-builder', | 123 'builder_name': 'some-builder', |
| 121 'status': 'COMPLETED', | 124 'status': 'COMPLETED', |
| 122 'result': 'FAILURE', | 125 'result': 'FAILURE', |
| 126 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/90', |
| 123 }, | 127 }, |
| 124 { | 128 { |
| 125 'builder_name': 'some-builder', | 129 'builder_name': 'some-builder', |
| 126 'status': 'COMPLETED', | 130 'status': 'COMPLETED', |
| 127 'result': 'SUCCESS', | 131 'result': 'SUCCESS', |
| 132 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/100', |
| 128 }, | 133 }, |
| 129 ])) | 134 ])) |
| 130 | 135 |
| 131 def test_has_failing_try_results_empty(self): | 136 def test_has_failing_try_results_empty(self): |
| 132 self.assertFalse(GitCL.has_failing_try_results([])) | 137 self.assertFalse(GitCL.has_failing_try_results([])) |
| 133 | 138 |
| 134 def test_has_failing_try_results_only_success_and_started(self): | 139 def test_has_failing_try_results_only_success_and_started(self): |
| 135 self.assertFalse(GitCL.has_failing_try_results([ | 140 self.assertFalse(GitCL.has_failing_try_results([ |
| 136 { | 141 { |
| 137 'builder_name': 'some-builder', | 142 'builder_name': 'some-builder', |
| 138 'status': 'COMPLETED', | 143 'status': 'COMPLETED', |
| 139 'result': 'SUCCESS', | 144 'result': 'SUCCESS', |
| 145 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/90', |
| 140 }, | 146 }, |
| 141 { | 147 { |
| 142 'builder_name': 'some-builder', | 148 'builder_name': 'some-builder', |
| 143 'status': 'STARTED', | 149 'status': 'STARTED', |
| 144 'result': None, | 150 'result': None, |
| 151 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/100', |
| 145 }, | 152 }, |
| 146 ])) | 153 ])) |
| 147 | 154 |
| 148 def test_has_failing_try_results_with_failing_results(self): | 155 def test_has_failing_try_results_with_failing_results(self): |
| 149 self.assertTrue(GitCL.has_failing_try_results([ | 156 self.assertTrue(GitCL.has_failing_try_results([ |
| 150 { | 157 { |
| 151 'builder_name': 'some-builder', | 158 'builder_name': 'some-builder', |
| 152 'status': 'COMPLETED', | 159 'status': 'COMPLETED', |
| 153 'result': 'FAILURE', | 160 'result': 'FAILURE', |
| 154 }, | 161 }, |
| 155 ])) | 162 ])) |
| 163 |
| 164 def test_latest_try_builds(self): |
| 165 git_cl = GitCL(MockHost()) |
| 166 git_cl.fetch_try_results = lambda: [ |
| 167 { |
| 168 'builder_name': 'builder-b', |
| 169 'status': 'COMPLETED', |
| 170 'result': 'SUCCESS', |
| 171 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/100', |
| 172 }, |
| 173 { |
| 174 'builder_name': 'builder-b', |
| 175 'status': 'COMPLETED', |
| 176 'result': 'SUCCESS', |
| 177 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/90', |
| 178 }, |
| 179 { |
| 180 'builder_name': 'builder-a', |
| 181 'status': 'SCHEDULED', |
| 182 'result': None, |
| 183 'url': None, |
| 184 }, |
| 185 { |
| 186 'builder_name': 'builder-c', |
| 187 'status': 'COMPLETED', |
| 188 'result': 'SUCCESS', |
| 189 'url': 'http://build.chromium.org/p/master/builders/some-builder
/builds/123', |
| 190 }, |
| 191 ] |
| 192 self.assertEqual( |
| 193 git_cl.latest_try_jobs(['builder-a', 'builder-b']), |
| 194 [Build('builder-a'), Build('builder-b', 100)]) |
| OLD | NEW |