def test_fetch_buildbot_data_failure(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 None 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 { # pragma: no cover 'builders': { 'Mac FYI': None, } } # Somehow only hitting one side of this if? 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'): # pragma: no cover return { 'builds': [ {'steps': []}, ], } logging.error('Cannot fetch fake url: %s' % url) # pragma: no cover old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [ {'name': 'ChromiumGPU', 'url_name': 'chromium.gpu'}, {'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit'}, {'name': 'ChromiumFYI', 'url_name': 'chromium.fyi'}, # Check that masters are de-duped. {'name': 'ChromiumFYI', 'url_name': 'chromium.fyi'}, ] expected_fetched_urls = [ '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): # Somehow not hitting all branches here? buildershandler.fetch_buildbot_data([m['url_name'] for m in masters]) # pragma: no cover self.assertEqual(set(expected_fetched_urls), set(fetched_urls)) 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': 'duplicate_builders_test'}, {'name': 'duplicate_builders_test'}, {'name': 'compile'}, {'name': 'Upload to test-results [swarming_gtest_tests]'} ] }, ], } 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) # pragma: no cover 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']}, 'webkit_tests': {'builders': ['WebKit Linux', 'WebKit Win']}, 'swarming_gtest_tests': {'builders': ['WebKit Linux']}, 'duplicate_builders_test': {'builders': ['WebKit Linux']}}, '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://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) # pragma: no cover 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_failure(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 None 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 { # pragma: no cover 'builders': { 'Mac FYI': None, } } # Somehow only hitting one side of this if? 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' ): # pragma: no cover return { 'builds': [ { 'steps': [] }, ], } logging.error('Cannot fetch fake url: %s' % url) # pragma: no cover old_fetch_json = buildershandler.fetch_json buildershandler.fetch_json = fake_fetch_json masters = [ { 'name': 'ChromiumGPU', 'url_name': 'chromium.gpu' }, { 'name': 'ChromiumWebkit', 'url_name': 'chromium.webkit' }, { 'name': 'ChromiumFYI', 'url_name': 'chromium.fyi' }, ] expected_fetched_urls = [ '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): # Somehow not hitting all branches here? buildershandler.fetch_buildbot_data( [m['url_name'] for m in masters]) # pragma: no cover self.assertEqual(set(expected_fetched_urls), set(fetched_urls)) finally: buildershandler.fetch_json = old_fetch_json