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")
Ejemplo n.º 2
0
 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