def testToResponse(self): description = ["col1", "col2", "col3"] data = [("1", "2", "3"), ("a", "b", "c"), ("One", "Two", "Three")] table = DataTable(description, data) self.assertEqual(table.ToResponse(), table.ToJSonResponse()) self.assertEqual(table.ToResponse(tqx="out:csv"), table.ToCsv()) self.assertEqual(table.ToResponse(tqx="out:html"), table.ToHtml()) self.assertRaises(DataTableException, table.ToResponse, tqx="version:0.1") self.assertEqual( table.ToResponse(tqx="reqId:4;responseHandler:handle"), table.ToJSonResponse(req_id=4, response_handler="handle")) self.assertEqual(table.ToResponse(tqx="out:csv;reqId:4"), table.ToCsv()) self.assertEqual(table.ToResponse(order_by="col2"), table.ToJSonResponse(order_by="col2")) self.assertEqual( table.ToResponse(tqx="out:html", columns_order=("col3", "col2", "col1")), table.ToHtml(columns_order=("col3", "col2", "col1"))) self.assertRaises(ValueError, table.ToResponse, tqx="SomeWrongTqxFormat") self.assertRaises(DataTableException, table.ToResponse, tqx="out:bad")
def returnData(self,tqx): alldata = [] descr = [] for yr in self.yrs: (descr, data) = self.merge(csvlist[yr]) for row in data: row[0] = datetime.strptime(row[0],"%Y-%m-%d %H:%M:%S+00:00") alldata.append(row) pass pass descr[0] = ("Date","datetime") for i in range(1,1+len(descr[1:])): descr[i]=(descr[i],"number") pass table = DataTable(descr, alldata) expires = datetime.now() + timedelta(days=1) self.response.headers['Content-type'] = 'text/plain' self.response.headers['Expires'] = expires.strftime( '%a, %d %b %Y %H:%M:%S %Z') self.response.headers['Cache-control'] = 'public' self.response.out.write(table.ToResponse(tqx=tqx)) return