| Index: Tools/TestResultServer/handlers/buildershandler_unittest.py
|
| diff --git a/Tools/TestResultServer/handlers/buildershandler_unittest.py b/Tools/TestResultServer/handlers/buildershandler_unittest.py
|
| index 1ea9a14ebd41eab28ca55ce0cccad78b5d1fe96a..d759180fd72a909b28f47c971aa01d4c901733b1 100644
|
| --- a/Tools/TestResultServer/handlers/buildershandler_unittest.py
|
| +++ b/Tools/TestResultServer/handlers/buildershandler_unittest.py
|
| @@ -33,73 +33,43 @@ import pprint
|
| import unittest
|
|
|
| class BuildersHandlerTest(unittest.TestCase):
|
| - def test_master_json_url(self):
|
| - self.assertEqual(buildershandler.master_json_url('http://base'), 'http://base/json/builders')
|
| -
|
| - def test_builder_json_url(self):
|
| - self.assertEqual(buildershandler.builder_json_url('http://base', 'dummybuilder'), 'http://base/json/builders/dummybuilder')
|
| -
|
| - def test_cached_build_json_url(self):
|
| - self.assertEqual(buildershandler.cached_build_json_url('http://base', 'dummybuilder', 12345), 'http://base/json/builders/dummybuilder/builds/12345')
|
| - self.assertEqual(buildershandler.cached_build_json_url('http://base', 'dummybuilder', '12345'), 'http://base/json/builders/dummybuilder/builds/12345')
|
| -
|
| - def test_get_latest_build(self):
|
| - build_data = {'cachedBuilds': ['1', '2', '3'],
|
| - 'currentBuilds': ['3'],
|
| - 'basedir': 'fake'}
|
| - latest_build = buildershandler.get_latest_build(build_data)
|
| - self.assertEqual(latest_build, '2')
|
| -
|
| - build_data = {'cachedBuilds': [],
|
| - 'currentBuilds': ['1', '2', '3'],
|
| - 'basedir': 'fake'}
|
| - latest_build = buildershandler.get_latest_build(build_data)
|
| - self.assertEqual(latest_build, '1')
|
| -
|
| - build_data = {'cachedBuilds': ['1', '2', '3'],
|
| - 'currentBuilds': ['1', '2', '3'],
|
| - 'basedir': 'fake'}
|
| - latest_build = buildershandler.get_latest_build(build_data)
|
| - self.assertEqual(latest_build, '1')
|
| -
|
| - build_data = {'cachedBuilds': [],
|
| - 'currentBuilds': [],
|
| - 'basedir': 'fake'}
|
| - latest_build = buildershandler.get_latest_build(build_data)
|
| - self.assertEqual(latest_build, None)
|
| -
|
| - long_list = map(lambda x: str(x), xrange(1000, 1200))
|
| - current_build = long_list[-1]
|
| - build_data = {'cachedBuilds': long_list[:],
|
| - 'currentBuilds': [current_build],
|
| - 'basedir': 'fake'}
|
| - latest_build = buildershandler.get_latest_build(build_data)
|
| - self.assertEqual(latest_build, long_list[-2])
|
| -
|
| def test_fetch_buildbot_data(self):
|
| try:
|
| fetched_urls = []
|
|
|
| def fake_fetch_json(url):
|
| fetched_urls.append(url)
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders':
|
| - return {'WebKit Win': None, 'WebKit Linux': None, 'WebKit Mac': None, 'WebKit Empty': None}
|
| -
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux':
|
| - return {'cachedBuilds': [1, 2], 'currentBuilds': []}
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Win':
|
| - return {'cachedBuilds': [1, 2], 'currentBuilds': []}
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Mac':
|
| - return {'cachedBuilds': [1, 2], 'currentBuilds': []}
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Empty':
|
| - return {'cachedBuilds': [], 'currentBuilds': []}
|
| -
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux/builds/2':
|
| - return {'steps': [{'name': 'foo_tests_only'}, {'name': 'webkit_tests'}, {'name': 'browser_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]}
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Win/builds/2':
|
| - return {'steps': [{'name': 'foo_tests_ignore'}, {'name': 'webkit_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]}
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Mac/builds/2':
|
| - return {'steps': [{'name': 'foo_tests_perf'}, {'name': 'browser_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]}
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit':
|
| + return {
|
| + 'builders': {
|
| + 'WebKit Win': None, 'WebKit Linux': None, 'WebKit Mac': None, 'WebKit Empty': None,
|
| + }
|
| + }
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Linux&master=chromium.webkit&num_builds=1':
|
| + return {
|
| + 'builds': [
|
| + {'steps': [{'name': 'foo_tests_only'}, {'name': 'webkit_tests'}, {'name': 'browser_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]},
|
| + ],
|
| + }
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Win&master=chromium.webkit&num_builds=1':
|
| + return {
|
| + 'builds': [
|
| + {'steps': [{'name': 'foo_tests_ignore'}, {'name': 'webkit_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]},
|
| + ],
|
| + }
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Mac&master=chromium.webkit&num_builds=1':
|
| + return {
|
| + 'builds': [
|
| + {'steps': [{'name': 'foo_tests_perf'}, {'name': 'browser_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]},
|
| + ],
|
| + }
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Empty&master=chromium.webkit&num_builds=1':
|
| + return {'builds': []}
|
|
|
| logging.error('Cannot fetch fake url: %s' % url)
|
|
|
| @@ -107,31 +77,29 @@ class BuildersHandlerTest(unittest.TestCase):
|
| buildershandler.fetch_json = fake_fetch_json
|
|
|
| masters = [
|
| - {'name': 'ChromiumWebkit', 'url': 'http://build.chromium.org/p/chromium.webkit'},
|
| + {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'},
|
| ]
|
|
|
| - buildbot_data = buildershandler.fetch_buildbot_data(masters, True)
|
| + buildbot_data = buildershandler.fetch_buildbot_data(masters)
|
|
|
| expected_fetched_urls = [
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux/builds/2',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Mac',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Mac/builds/2',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Win',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Win/builds/2',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Empty',
|
| + 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit',
|
| + 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Win&master=chromium.webkit&num_builds=1',
|
| + 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Mac&master=chromium.webkit&num_builds=1',
|
| + 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Empty&master=chromium.webkit&num_builds=1',
|
| + 'http://chrome-build-extract.appspot.com/get_builds?builder=WebKit%20Linux&master=chromium.webkit&num_builds=1',
|
| ]
|
| self.assertEqual(set(fetched_urls), set(expected_fetched_urls))
|
|
|
| expected_masters = {
|
| 'masters': [{
|
| - 'url': 'http://build.chromium.org/p/chromium.webkit',
|
| 'tests': {
|
| 'browser_tests': {'builders': ['WebKit Linux', 'WebKit Mac']},
|
| 'mini_installer_test': {'builders': ['WebKit Linux', 'WebKit Mac', 'WebKit Win']},
|
| 'layout-tests': {'builders': ['WebKit Linux', 'WebKit Win']}},
|
| - 'name': 'ChromiumWebkit'}],
|
| + 'name': 'ChromiumWebkit',
|
| + 'url_name': 'chromium.webkit',
|
| + }],
|
| "no_upload_test_types": buildershandler.TEST_STEPS_THAT_DO_NOT_UPLOAD_YET,
|
| }
|
| expected_json = buildershandler.dump_json(expected_masters)
|
| @@ -146,61 +114,52 @@ class BuildersHandlerTest(unittest.TestCase):
|
|
|
| def fake_fetch_json(url):
|
| fetched_urls.append(url)
|
| - if url == 'http://build.chromium.org/p/chromium.webkit/json/builders':
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit':
|
| return None
|
|
|
| - if url.endswith('chromium.gpu/json/builders'):
|
| - return {'Win GPU': None, 'Win Empty': None}
|
| - if url.endswith('Win%20GPU'):
|
| - return {'cachedBuilds': [1, 2], 'currentBuilds': []}
|
| - if url.endswith('Win%20Empty'):
|
| - return {'cachedBuilds': [], 'currentBuilds': []}
|
| - if url.endswith('Win%20GPU/builds/2'):
|
| - return {'steps': [{'name': 'gpu_unittests'}, {'name': 'archive_test_results'}, {'name': 'compile'}]}
|
| -
|
| - if url.endswith('chromium.fyi/json/builders'):
|
| - return {'Mac FYI': None}
|
| - if url.endswith('Mac%20FYI'):
|
| - return {'cachedBuilds': [1, 2], 'currentBuilds': []}
|
| - if url.endswith('Mac%20FYI/builds/2'):
|
| - return {'steps': [{'name': 'fyi_tests'}, {'name': 'archive_test_results'}, {'name': 'compile'}]}
|
| + if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.gpu':
|
| + return {
|
| + 'builders': {
|
| + 'Win GPU': None, 'Win Empty': None,
|
| + }
|
| + }
|
| +
|
| + if url == 'http://chrome-build-extract.appspot.com/get_master/chromium.fyi':
|
| + return {
|
| + 'builders': {
|
| + 'Mac FYI': None,
|
| + }
|
| + }
|
| +
|
| + if (url == 'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20Empty&master=chromium.gpu&num_builds=1'
|
| + or url == 'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20GPU&master=chromium.gpu&num_builds=1'):
|
| + return {
|
| + 'builds': [
|
| + {'steps': []},
|
| + ],
|
| + }
|
| +
|
| + logging.error('Cannot fetch fake url: %s' % url)
|
|
|
| old_fetch_json = buildershandler.fetch_json
|
| buildershandler.fetch_json = fake_fetch_json
|
|
|
| masters = [
|
| - {'name': 'ChromiumGPU', 'url': 'http://build.chromium.org/p/chromium.gpu'},
|
| - {'name': 'ChromiumWebkit', 'url': 'http://build.chromium.org/p/chromium.webkit'},
|
| - {'name': 'ChromiumFYI', 'url': 'http://build.chromium.org/p/chromium.fyi'},
|
| + {'name': 'ChromiumGPU', 'url_name': 'chromium.gpu'},
|
| + {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'},
|
| + {'name': 'ChromiumFYI', 'url_name': 'chromium.fyi'},
|
| ]
|
|
|
| expected_fetched_urls = [
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders',
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders/Win%20Empty',
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders/Win%20GPU',
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders/Win%20GPU/builds/2',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders',
|
| - 'http://build.chromium.org/p/chromium.fyi/json/builders',
|
| - 'http://build.chromium.org/p/chromium.fyi/json/builders/Mac%20FYI',
|
| - 'http://build.chromium.org/p/chromium.fyi/json/builders/Mac%20FYI/builds/2',
|
| - ]
|
| - # Should not throw any exception.
|
| - buildbot_data = buildershandler.fetch_buildbot_data(masters, True)
|
| - self.assertEqual(set(expected_fetched_urls), set(fetched_urls))
|
| -
|
| - fetched_urls_all = fetched_urls[:]
|
| - fetched_urls = []
|
| - expected_fetched_urls = [
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders',
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders/Win%20Empty',
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders/Win%20GPU',
|
| - 'http://build.chromium.org/p/chromium.gpu/json/builders/Win%20GPU/builds/2',
|
| - 'http://build.chromium.org/p/chromium.webkit/json/builders',
|
| + 'http://chrome-build-extract.appspot.com/get_master/chromium.webkit',
|
| + 'http://chrome-build-extract.appspot.com/get_master/chromium.gpu',
|
| + 'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20GPU&master=chromium.gpu&num_builds=1',
|
| + 'http://chrome-build-extract.appspot.com/get_builds?builder=Win%20Empty&master=chromium.gpu&num_builds=1',
|
| ]
|
| with self.assertRaises(buildershandler.FetchBuildersException):
|
| buildbot_data = buildershandler.fetch_buildbot_data(masters)
|
| self.assertEqual(set(expected_fetched_urls), set(fetched_urls))
|
| - self.assertNotEqual(set(fetched_urls), set(fetched_urls_all))
|
|
|
| finally:
|
| buildershandler.fetch_json = old_fetch_json
|
|
|