def test_fetch_buildbot_data(self): try: fetched_urls = [] def fake_fetch_json(url): fetched_urls.append(url) 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) old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [ {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'}, ] buildbot_data = buildershandler.fetch_buildbot_data([m['url_name'] for m in masters]) expected_fetched_urls = [ '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': [{ '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', 'url_name': 'chromium.webkit', 'groups': ['@ToT Chromium', '@ToT Blink'], }], "no_upload_test_types": buildershandler.TEST_STEPS_THAT_DO_NOT_UPLOAD_YET, } expected_json = buildershandler.dump_json(expected_masters) self.assertEqual(buildbot_data, expected_json) finally: buildershandler.fetch_json = old_fetch_json
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': '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': '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': 'browser_tests' }, { 'name': 'mini_installer_test' }, { 'name': 'archive_test_results' }, { 'name': 'compile' }] } logging.error('Cannot fetch fake url: %s' % url) old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [ { 'name': 'ChromiumWebkit', 'url': 'http://build.chromium.org/p/chromium.webkit' }, ] buildbot_data = buildershandler.fetch_buildbot_data(masters, True) 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', ] 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' }] } expected_json = buildershandler.dump_json(expected_masters) self.assertEqual(buildbot_data, expected_json) finally: buildershandler.fetch_json = old_fetch_json
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': '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': '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': 'browser_tests'}, {'name': 'mini_installer_test'}, {'name': 'archive_test_results'}, {'name': 'compile'}]} logging.error('Cannot fetch fake url: %s' % url) old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [ {'name': 'ChromiumWebkit', 'url': 'http://build.chromium.org/p/chromium.webkit'}, ] 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', ] self.assertEqual(fetched_urls, 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'}]} expected_json = buildershandler.dump_json(expected_masters) self.assertEqual(buildbot_data, expected_json) finally: buildershandler.fetch_json = old_fetch_json
def test_fetch_buildbot_data(self): try: fetched_urls = [] def fake_fetch_json(url): fetched_urls.append(url) 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) old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [ {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'}, ] buildbot_data = buildershandler.fetch_buildbot_data(masters) expected_fetched_urls = [ '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': [{ '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', 'url_name': 'chromium.webkit', }], "no_upload_test_types": buildershandler.TEST_STEPS_THAT_DO_NOT_UPLOAD_YET, } expected_json = buildershandler.dump_json(expected_masters) self.assertEqual(buildbot_data, expected_json) finally: buildershandler.fetch_json = old_fetch_json
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": "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": "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": "browser_tests"}, {"name": "mini_installer_test"}, {"name": "archive_test_results"}, {"name": "compile"}, ] } logging.error("Cannot fetch fake url: %s" % url) old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [{"name": "ChromiumWebkit", "url": "http://build.chromium.org/p/chromium.webkit"}] 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", ] self.assertEqual(fetched_urls, 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", } ] } expected_json = buildershandler.dump_json(expected_masters) self.assertEqual(buildbot_data, expected_json) finally: buildershandler.fetch_json = old_fetch_json