Example #1
0
 def test_unknown_taskname(self):
     bins = calculate_runtimes(taskname='unknown_task', runtime_range=(0.5,5.5), bin_count=5)
     self.assertEquals(len(bins), 5)
     self.assertEquals(bins[0], ((0.5,1.5),0))
     self.assertEquals(bins[1], ((1.5,2.5),0))
     self.assertEquals(bins[2], ((2.5,3.5),0))
     self.assertEquals(bins[3], ((3.5,4.5),0))
     self.assertEquals(bins[4], ((4.5,5.5),0))
Example #2
0
 def test_max_searchrange(self):
     t1 = datetime.datetime(2010, 1, 1, hour=14, minute=0, second=0)
     bins = calculate_runtimes(None, search_range=(None,t1), runtime_range=(0.5,5.5), bin_count=5)
     self.assertEquals(len(bins), 5)
     self.assertEquals(bins[0], ((0.5,1.5),2))
     self.assertEquals(bins[1], ((1.5,2.5),2))
     self.assertEquals(bins[2], ((2.5,3.5),2))
     self.assertEquals(bins[3], ((3.5,4.5),0))
     self.assertEquals(bins[4], ((4.5,5.5),0))
Example #3
0
def get_runtime_data(request, taskname=None):
    search_range =          searchrange_from_post(request.GET)
    runtime_range_min =     get_postval(request.GET, 'runtime_min', float, 0.)
    runtime_range_max =     get_postval(request.GET, 'runtime_max', float, None)
    runtime_range =         (runtime_range_min, runtime_range_max)
    bin_size =              get_postval(request.GET, 'bin_size', float, None)
    bin_count =             get_postval(request.GET, 'bin_count', int, None)
    auto_runtime_range =    get_postval(request.GET, 'auto_runtime_range', 
                                        string_to_bool, False)
    runtimes = calculate_runtimes(
                    taskname, 
                    search_range=search_range, 
                    runtime_range=runtime_range, 
                    bin_size=float(bin_size) if bin_size is not None else None, 
                    bin_count=int(bin_count) if bin_count is not None else None,
                    auto_runtime_range=auto_runtime_range
                    )
    all_data = []
    description = {
        'bin_name': ("string", "bin_name"),
        'count':    ("number", "count"),
        }
    for (runtime_min, runtime_max), count  in  runtimes:
        data = {
            'bin_name': '{0:g}-{1:g}'.format(runtime_min, runtime_max),
            'count':    count,
            }
        all_data.append(data)
    
    data_table = gviz_api.DataTable(description)
    data_table.LoadData(all_data)
    
    if "tqx" in request.GET:
        tqx = request.GET['tqx']
        params = dict([p.split(':') for p in tqx.split(';')])
        reqId = params['reqId']
        return HttpResponse(
                    data_table.ToJSonResponse(
                        columns_order=("bin_name", "count"), 
                        req_id=reqId)
                    )
    return HttpResponse(
                data_table.ToJSonResponse(
                    columns_order=("bin_name", "count"))
                )