Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 from datetime import datetime | 5 from datetime import datetime |
| 6 import os | 6 import os |
| 7 import unittest | 7 import unittest |
|
stgao
2015/05/22 01:30:37
Unused now?
| |
| 8 from testing_utils import testing | |
|
stgao
2015/05/22 01:30:37
Why APIs from unittest are not enough?
chanli
2015/05/22 18:43:27
I don't quite remember, but I think back then I ne
| |
| 9 | |
| 10 import cloudstorage as gcs | |
| 11 import gzip | |
|
stgao
2015/05/22 01:30:37
style: order and category still not fixed.
| |
| 8 | 12 |
| 9 from common.retry_http_client import RetryHttpClient | 13 from common.retry_http_client import RetryHttpClient |
| 10 from waterfall import buildbot | 14 from waterfall import buildbot |
| 11 | 15 |
| 12 | 16 |
| 13 class DummyHttpClient(RetryHttpClient): | 17 class DummyHttpClient(RetryHttpClient): |
| 14 | 18 |
| 15 def __init__(self, status_code, response_content): | 19 def __init__(self, status_code, response_content): |
| 16 self.status_code = status_code | 20 self.status_code = status_code |
| 17 self.response_content = response_content | 21 self.response_content = response_content |
| 18 self.requests = [] | 22 self.requests = [] |
| 19 | 23 |
| 20 def WaitForNextRetry(self, *_): # pragma: no cover | 24 def WaitForNextRetry(self, *_): # pragma: no cover |
| 21 """Override to avoid sleep.""" | 25 """Override to avoid sleep.""" |
| 22 pass | 26 pass |
| 23 | 27 |
| 24 def _Get(self, url, _): | 28 def _Get(self, url, _): |
| 25 self.requests.append(url) | 29 self.requests.append(url) |
| 26 return self.status_code, self.response_content | 30 return self.status_code, self.response_content |
| 27 | 31 |
| 28 | 32 |
| 29 class BuildBotTest(unittest.TestCase): | 33 class BuildBotTest(testing.AppengineTestCase): |
| 30 def testGetMasternameFromUrl(self): | 34 def testGetMasternameFromUrl(self): |
| 31 cases = { | 35 cases = { |
| 32 None: None, | 36 None: None, |
| 33 '': None, | 37 '': None, |
| 34 'https://unknown.host/p/chromium': None, | 38 'https://unknown.host/p/chromium': None, |
| 35 'http://build.chromium.org/p/chromium': 'chromium', | 39 'http://build.chromium.org/p/chromium': 'chromium', |
| 36 'http://build.chromium.org/p/chromium/builders/Linux': 'chromium', | 40 'http://build.chromium.org/p/chromium/builders/Linux': 'chromium', |
| 37 } | 41 } |
| 38 | 42 |
| 39 for url, expected_result in cases.iteritems(): | 43 for url, expected_result in cases.iteritems(): |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 113 step_name = '[trigger] abc_tests' | 117 step_name = '[trigger] abc_tests' |
| 114 expected_stdio_log_url = ('https://build.chromium.org/p/a/builders/' | 118 expected_stdio_log_url = ('https://build.chromium.org/p/a/builders/' |
| 115 'Win7%20Tests%20%281%29/builds/123/steps/' | 119 'Win7%20Tests%20%281%29/builds/123/steps/' |
| 116 '%5Btrigger%5D%20abc_tests/logs/stdio/text') | 120 '%5Btrigger%5D%20abc_tests/logs/stdio/text') |
| 117 | 121 |
| 118 self.assertEqual( | 122 self.assertEqual( |
| 119 expected_stdio_log_url, | 123 expected_stdio_log_url, |
| 120 buildbot.CreateStdioLogUrl( | 124 buildbot.CreateStdioLogUrl( |
| 121 master_name, builder_name, build_number, step_name)) | 125 master_name, builder_name, build_number, step_name)) |
| 122 | 126 |
| 127 def testCreateGtestResultPath(self): | |
| 128 master_name = 'a' | |
| 129 builder_name = 'Win7 Tests (1)' | |
| 130 build_number = 123 | |
| 131 step_name = '[trigger] abc_tests' | |
| 132 expected_stdio_log_url = ('/chrome-gtest-results/buildbot/a/Win7 Tests ' | |
| 133 '(1)/123/[trigger] abc_tests.json.gz') | |
| 134 | |
| 135 self.assertEqual( | |
| 136 expected_stdio_log_url, | |
| 137 buildbot.CreateGtestResultPath( | |
| 138 master_name, builder_name, build_number, step_name)) | |
| 139 | |
| 123 def testGetBuildDataFromArchiveSuccess(self): | 140 def testGetBuildDataFromArchiveSuccess(self): |
| 124 master_name = 'a' | 141 master_name = 'a' |
| 125 builder_name = 'b c' | 142 builder_name = 'b c' |
| 126 build_number = 1 | 143 build_number = 1 |
| 127 expected_url = ('https://chrome-build-extract.appspot.com/p/a/builders/' | 144 expected_url = ('https://chrome-build-extract.appspot.com/p/a/builders/' |
| 128 'b%20c/builds/1?json=1') | 145 'b%20c/builds/1?json=1') |
| 129 http_client = DummyHttpClient(200, 'abc') | 146 http_client = DummyHttpClient(200, 'abc') |
| 130 data = buildbot.GetBuildDataFromArchive( | 147 data = buildbot.GetBuildDataFromArchive( |
| 131 master_name, builder_name, build_number, http_client) | 148 master_name, builder_name, build_number, http_client) |
| 132 self.assertEqual(http_client.response_content, data) | 149 self.assertEqual(http_client.response_content, data) |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 329 self.assertEqual(master_name, build_info.master_name) | 346 self.assertEqual(master_name, build_info.master_name) |
| 330 self.assertEqual(builder_name, build_info.builder_name) | 347 self.assertEqual(builder_name, build_info.builder_name) |
| 331 self.assertEqual(build_number, build_info.build_number) | 348 self.assertEqual(build_number, build_info.build_number) |
| 332 self.assertEqual(expected_build_start_time, build_info.build_start_time) | 349 self.assertEqual(expected_build_start_time, build_info.build_start_time) |
| 333 self.assertEqual(expected_chromium_revision, build_info.chromium_revision) | 350 self.assertEqual(expected_chromium_revision, build_info.chromium_revision) |
| 334 self.assertEqual(expected_completed, build_info.completed) | 351 self.assertEqual(expected_completed, build_info.completed) |
| 335 self.assertEqual(expected_result, build_info.result) | 352 self.assertEqual(expected_result, build_info.result) |
| 336 self.assertEqual(expected_blame_list, build_info.blame_list) | 353 self.assertEqual(expected_blame_list, build_info.blame_list) |
| 337 self.assertEqual(expected_failed_steps, build_info.failed_steps) | 354 self.assertEqual(expected_failed_steps, build_info.failed_steps) |
| 338 self.assertEqual(expected_passed_steps, build_info.passed_steps) | 355 self.assertEqual(expected_passed_steps, build_info.passed_steps) |
| OLD | NEW |