Example #1
0
    def testCqStats(self):
        project = 'chromium'
        cron_app = webtest.TestApp(
            webapp2.WSGIApplication([
                ('/check-cq', cron.CheckCQHandler),
            ]))
        cron_app.get('/check-cq')
        cq_data = self._make_api_call(
            'cq_stats_get',
            params={
                'project': project
            },
        ).json

        generated = {}
        for name, klass in (('single_run_data', models.CqStat),
                            ('queue_time_data',
                             models.CqTimeInQueueForPatchStat),
                            ('total_time_data',
                             models.CqTotalTimeForPatchStat)):
            generated[name] = [
                protojson.decode_message(klass.ProtoModel(), json.dumps(x))
                for x in cq_data[name]
            ]

        expected = controller.get_cq_stats(project)
        for key in expected:
            expected[key] = [x.ToMessage() for x in expected[key]]

        self.assertEqual(generated, expected)
Example #2
0
  def testCqStats(self):
    project = 'chromium'
    cron_app = webtest.TestApp(
        webapp2.WSGIApplication([
          ('/check-cq', cron.CheckCQHandler),
        ])
    )
    cron_app.get('/check-cq')
    cq_data = self._make_api_call(
        'cq_stats_get',
        params={'project': project},
    ).json

    generated = {}
    for name, klass in (('single_run_data', models.CqStat),
                        ('queue_time_data', models.CqTimeInQueueForPatchStat),
                        ('total_time_data', models.CqTotalTimeForPatchStat)):
      generated[name] = [
        protojson.decode_message(klass.ProtoModel(), json.dumps(x))
        for x in cq_data[name]]

    expected = controller.get_cq_stats(project)
    for key in expected:
      expected[key] = [x.ToMessage() for x in expected[key]]

    self.assertEqual(generated, expected)
Example #3
0
 def cq_stats_get(self, request):
     cq_stats = controller.get_cq_stats(request.project)
     single_run_data = [x.ToMessage() for x in cq_stats['single_run_data']]
     queue_time_data = [x.ToMessage() for x in cq_stats['queue_time_data']]
     total_time_data = [x.ToMessage() for x in cq_stats['total_time_data']]
     return CqProjectStats(
         single_run_data=single_run_data,
         queue_time_data=queue_time_data,
         total_time_data=total_time_data,
     )
Example #4
0
 def cq_stats_get(self, request):
   cq_stats = controller.get_cq_stats(request.project)
   single_run_data = [x.ToMessage() for x in cq_stats['single_run_data']]
   queue_time_data = [x.ToMessage() for x in cq_stats['queue_time_data']]
   total_time_data = [x.ToMessage() for x in cq_stats['total_time_data']]
   return CqProjectStats(
       single_run_data=single_run_data,
       queue_time_data=queue_time_data,
       total_time_data=total_time_data,
   )
Example #5
0
  def get(self, project):
    cq_data = controller.get_cq_stats(project)
    length_cols = ['timestamp', 'length']
    length_rows = [
        [calendar.timegm(stat.timestamp.timetuple()), stat.length]
        for stat in cq_data['single_run_data']]
    length_data = {
        'cols': length_cols,
        'rows': length_rows,
        'unit': 'count',
    }

    self.response.headers['Content-Type'] = 'application/json'
    self.response.headers['Access-Control-Allow-Origin'] = '*'
    self.response.write(json.dumps(length_data))