webrtc/tools/quality_tracking/dashboard/load_coverage.py
2012-03-12 09:12:32 +00:00

48 lines
1.8 KiB
Python

#!/usr/bin/env python
#-*- coding: utf-8 -*-
# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
"""Loads coverage data from the database."""
__author__ = 'phoglund@webrtc.org (Patrik Höglund)'
import logging
from google.appengine.ext import db
import gviz_api
class CoverageDataLoader:
""" Loads coverage data from the database."""
def load_coverage_json_data(self, report_category):
coverage_entries = db.GqlQuery('SELECT * '
'FROM CoverageData '
'WHERE report_category = :1 '
'ORDER BY date ASC', report_category)
data = []
for coverage_entry in coverage_entries:
# Note: The date column must be first in alphabetical order since it is
# the primary column. This is a bug in the gviz api (or at least it
# doesn't make much sense).
data.append({'aa_date': coverage_entry.date,
'line_coverage': coverage_entry.line_coverage,
'function_coverage': coverage_entry.function_coverage,
'branch_coverage': coverage_entry.branch_coverage,
})
description = {
'aa_date': ('datetime', 'Date'),
'line_coverage': ('number', 'Line Coverage'),
'function_coverage': ('number', 'Function Coverage'),
'branch_coverage': ('number', 'Branch Coverage'),
}
coverage_data = gviz_api.DataTable(description, data)
return coverage_data.ToJSon(order_by='date')