Пример #1
0
    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())
Пример #2
0
  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()))
Пример #3
0
    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())
Пример #4
0
    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)
Пример #5
0
    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())
Пример #6
0
    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())
Пример #7
0
    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()))
Пример #9
0
 def test_returns_none_if_no_revisions(self):
     loader = load_build_status.BuildStatusLoader()
     self.assertEqual(None, loader.compute_lkgr())