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))
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))
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")) )