def test_returns_correct_lkgr_with_most_recent_revision_failed(self): BuildStatusData(bot_name="Bot1", revision=17, build_number=499, status="OK").put() BuildStatusData(bot_name="Bot2", revision=17, build_number=505, status="OK").put() BuildStatusData(bot_name="Bot3", revision=17, build_number=344, status="OK").put() BuildStatusData(bot_name="Bot1", revision=18, build_number=499, status="OK").put() BuildStatusData(bot_name="Bot2", revision=18, build_number=505, status="failed").put() BuildStatusData(bot_name="Bot3", revision=18, build_number=344, status="OK").put() loader = load_build_status.BuildStatusLoader() self.assertEqual(17, loader.compute_lkgr())
def get(self): build_status_loader = load_build_status.BuildStatusLoader() # Split the build status data in two rows to fit them on the page. build_status_data = build_status_loader.load_build_status_data() split_point = int(math.ceil(len(build_status_data) / 2.0)) build_status_data_row_1 = build_status_data[:split_point] build_status_data_row_2 = build_status_data[split_point:] last_updated_at = build_status_loader.load_last_modified_at() if last_updated_at is None: self._show_error_page("No data has yet been uploaded to the dashboard.") return last_updated_at = last_updated_at.strftime("%Y-%m-%d %H:%M") lkgr = build_status_loader.compute_lkgr() coverage_loader = load_coverage.CoverageDataLoader() small_medium_coverage_json_data = ( coverage_loader.load_coverage_json_data('small_medium_tests')) large_coverage_json_data = ( coverage_loader.load_coverage_json_data('large_tests')) page_template_filename = 'templates/dashboard_template.html' self.response.write(template.render(page_template_filename, vars()))
def test_returns_none_if_no_green_revisions(self): BuildStatusData(bot_name="Bot2", revision=18, build_number=505, status="failed").put() loader = load_build_status.BuildStatusLoader() self.assertEqual(None, loader.compute_lkgr())
def get(self): build_status_loader = load_build_status.BuildStatusLoader() lkgr = build_status_loader.compute_lkgr() if lkgr is None: self.response.out.write( 'No data has been uploaded to the dashboard.') else: self.response.out.write(lkgr)
def test_returns_lkgr_for_single_green_revision(self): BuildStatusData(bot_name="Bot1", revision=17, build_number=499, status="OK").put() BuildStatusData(bot_name="Bot2", revision=17, build_number=505, status="OK").put() BuildStatusData(bot_name="Bot3", revision=17, build_number=344, status="OK").put() loader = load_build_status.BuildStatusLoader() self.assertEqual(17, loader.compute_lkgr())
def test_skips_partially_building_revisions(self): BuildStatusData(bot_name="Bot1", revision=18, build_number=499, status="building").put() BuildStatusData(bot_name="Bot2", revision=18, build_number=505, status="OK").put() BuildStatusData(bot_name="Bot1", revision=17, build_number=344, status="OK").put() loader = load_build_status.BuildStatusLoader() self.assertEqual(17, loader.compute_lkgr())
def test_returns_latest_nonbuilding_entries_when_loading_build_status( self): BuildStatusData(bot_name="Bot1", revision=17, build_number=499, status="OK").put() BuildStatusData(bot_name="Bot2", revision=17, build_number=505, status="OK").put() BuildStatusData(bot_name="Bot3", revision=17, build_number=344, status="failed").put() BuildStatusData(bot_name="Bot1", revision=18, build_number=499, status="building").put() BuildStatusData(bot_name="Bot2", revision=18, build_number=505, status="failed").put() BuildStatusData(bot_name="Bot3", revision=18, build_number=344, status="OK").put() loader = load_build_status.BuildStatusLoader() result = loader.load_build_status_data() self.assertEqual(3, len(result)) # We make no guarantees on order, but we can use the fact that the testbed # is deterministic to evaluate that the corrects bots were selected like so: self.assertEqual("Bot1", result[0].bot_name) self.assertEqual(17, result[0].revision) self.assertEqual("OK", result[0].status) self.assertEqual("Bot3", result[1].bot_name) self.assertEqual(18, result[1].revision) self.assertEqual("OK", result[1].status) self.assertEqual("Bot2", result[2].bot_name) self.assertEqual(18, result[2].revision) self.assertEqual("failed", result[2].status)
def get(self): build_status_loader = load_build_status.BuildStatusLoader() build_status_data = build_status_loader.load_build_status_data() last_updated_at = build_status_loader.load_last_modified_at() if last_updated_at is None: self._show_error_page( "No data has yet been uploaded to the dashboard.") return last_updated_at = last_updated_at.strftime("%Y-%m-%d %H:%M") lkgr = build_status_loader.compute_lkgr() coverage_loader = load_coverage.CoverageDataLoader() small_medium_coverage_json_data = ( coverage_loader.load_coverage_json_data('small_medium_tests')) large_coverage_json_data = ( coverage_loader.load_coverage_json_data('large_tests')) page_template_filename = 'templates/dashboard_template.html' self.response.write(template.render(page_template_filename, vars()))
def test_returns_none_if_no_revisions(self): loader = load_build_status.BuildStatusLoader() self.assertEqual(None, loader.compute_lkgr())