Chromium Code Reviews| Index: infra/tools/builder_alerts/test/buildbot_test.py |
| diff --git a/infra/tools/builder_alerts/test/buildbot_test.py b/infra/tools/builder_alerts/test/buildbot_test.py |
| index ee561a0fd5ee71ffe0c195e83cd6abd77cf93e7b..6631ca00f92be8642605c3d3851598b51abe2885 100644 |
| --- a/infra/tools/builder_alerts/test/buildbot_test.py |
| +++ b/infra/tools/builder_alerts/test/buildbot_test.py |
| @@ -5,6 +5,7 @@ |
| import shutil |
| import tempfile |
| import unittest |
| +import pdb |
|
eseidel
2014/08/18 16:35:43
?
leviw_travelin_and_unemployed
2014/08/18 18:39:02
Whoops!
|
| from infra.tools.builder_alerts import buildbot |
| @@ -33,6 +34,263 @@ class BuildCacheTest(unittest.TestCase): |
| self.assertIsNone(cache.get('does_not_exist')) |
| self.assertIsNotNone(cache.key_age(test_key)) |
| + def test_latest_builder_info_for_master(self): |
| + k_example_master_json = { |
| + "builders": { |
| + "Win Builder": { |
| + "basedir": "Win_Builder", |
| + "cachedBuilds": [ |
| + 0, |
| + 1770, |
| + 1771 |
| + ], |
| + "category": "2windows", |
| + "currentBuilds": [ |
| + 1772 |
| + ], |
| + "pendingBuilds": 7, |
| + "slaves": [ |
| + "build2-m1" |
| + ], |
| + "state": "building" |
| + } |
| + } |
| + } |
| + |
| + def mock_fetch_build_json(cache, master_url, builder_name, build_number): |
| + k_example_build_json = { |
| + "blame": [ |
| + "alexhenrie24@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98", |
| + "yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98" |
| + ], |
| + "builderName": "Win Builder", |
| + "currentStep": None, |
| + "eta": None, |
| + "number": 1771, |
| + "properties": [ |
| + [ |
| + "build_archive_url", |
| + "gs://chromium-win-archive/chromium.win/Win Builder/full-build-win32_289623.zip", |
| + "Annotation(package build)" |
| + ], |
| + [ |
| + "buildbotURL", |
| + "http://build.chromium.org/p/chromium.win/", |
| + "master.cfg" |
| + ], |
| + [ |
| + "buildername", |
| + "Win Builder", |
| + "Builder" |
| + ], |
| + [ |
| + "buildnumber", |
| + 1771, |
| + "Build" |
| + ], |
| + [ |
| + "git_revision", |
| + "7ddb6d39574175cdd237eca54537e84fb960d3b8", |
| + "Change" |
| + ], |
| + [ |
| + "got_nacl_revision", |
| + 13611, |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_nacl_revision_git", |
| + "570e50beb76a2bdf6be4b345cbd47f225caf90af", |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_revision", |
| + 289623, |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_revision_git", |
| + "7ddb6d39574175cdd237eca54537e84fb960d3b8", |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_swarming_client_revision", |
| + "bbf1fcca7932d92cca9d7dab46ea271a7f6d61fb", |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_v8_revision", |
| + 23117, |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_v8_revision_git", |
| + "f284b29e37d97d7ee9128055862179dcbda7e398", |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_webkit_revision", |
| + 180191, |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_webkit_revision_git", |
| + "9df9a9e66fed3921ec1f620f92ea7333a9c18122", |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_webrtc_revision", |
| + 6886, |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "got_webrtc_revision_git", |
| + "c2ef523233552340785557abce1129a0f61537eb", |
| + "Annotation(bot_update)" |
| + ], |
| + [ |
| + "mastername", |
| + "chromium.win", |
| + "master.cfg" |
| + ] |
| + ], |
| + "steps": [ |
| + { |
| + "eta": None, |
| + "expectations": [ |
| + [ |
| + "output", |
| + 863225, |
| + 748982.2582168579 |
| + ] |
| + ], |
| + "hidden": False, |
| + "isFinished": True, |
| + "isStarted": True, |
| + "logs": [ |
| + [ |
| + "preamble", |
| + "http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/1771/steps/steps/logs/preamble" |
| + ], |
| + [ |
| + "stdio", |
| + "http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/1771/steps/steps/logs/stdio" |
| + ] |
| + ], |
| + "name": "steps", |
| + "results": [ |
| + 0, |
| + [] |
| + ], |
| + "step_number": 0, |
| + "text": [ |
| + "running steps via annotated script" |
| + ], |
| + "times": [ |
| + 3.3, |
| + 4.4 |
| + ], |
| + "urls": {} |
| + }, |
| + { |
| + "eta": None, |
| + "expectations": [], |
| + "hidden": False, |
| + "isFinished": True, |
| + "isStarted": True, |
| + "logs": [ |
| + [ |
| + "stdio", |
| + "http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/1771/steps/setup_build/logs/stdio" |
| + ], |
| + [ |
| + "run_recipe", |
| + "http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/1771/steps/setup_build/logs/run_recipe" |
| + ] |
| + ], |
| + "name": "setup_build", |
| + "results": [ |
| + 0, |
| + [] |
| + ], |
| + "step_number": 3, |
| + "text": [ |
| + "setup_build", |
| + "<br/>running recipe: \"chromium\"" |
| + ], |
| + "times": [ |
| + 5.5, |
| + 6.6 |
| + ], |
| + "urls": {} |
| + } |
| + ], |
| + "text": [ |
| + "build", |
| + "successful" |
| + ], |
| + "times": [ |
| + 1.1, |
| + 2.2 |
| + ], |
| + } |
| + return k_example_build_json |
| + |
| + cache = buildbot.BuildCache(self.cache_path) |
| + old_fetch_build_json = buildbot.fetch_build_json |
| + try: |
| + buildbot.fetch_build_json = mock_fetch_build_json |
| + |
| + builder_info = buildbot.latest_builder_info_for_master(cache, |
| + 'http://build.chromium.org/p/chromium.webkit', k_example_master_json) |
| + expected_builder_info = { |
| + 'chromium.webkit': { |
| + 'Win Builder': { |
| + 'state': 'building', |
| + 'lastUpdateTime': 2.2, |
| + 'revisions': { |
| + 'v8': 23117, |
| + 'chromium': 289623, |
| + 'nacl': 13611, |
| + 'blink': 180191 |
| + } |
| + } |
| + } |
| + } |
| + self.assertEqual(builder_info, expected_builder_info) |
| + finally: |
| + buildbot.fetch_build_json = old_fetch_build_json |
| + |
| + def test_latest_update_time_for_builder(self): |
| + k_example_last_build_times = { |
| + "times": [ |
| + 10, |
| + 11 |
| + ], |
| + "steps": [ |
| + { |
| + "times": [ |
| + 20, |
| + 21 |
| + ] |
| + }, |
| + { |
| + "times": [ |
| + 22 |
| + ] |
| + } |
| + ] |
| + } |
| + |
| + # Test that we use end time when it's present, |
| + time = buildbot.latest_update_time_for_builder(k_example_last_build_times) |
| + self.assertEqual(time, 11) |
| + |
| + # And test that we iterate across step start times when it isn't. |
| + k_example_last_build_times["times"][1] = None |
| + time = buildbot.latest_update_time_for_builder(k_example_last_build_times) |
| + self.assertEqual(time, 22) |
| + |
| class BuildbotTest(unittest.TestCase): |
| def test_master_name_from_url(self): |