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 testToCsv(self):
        init_data_csv = "\n".join(
            ['"A", "b", "c"', '1, "", ""', '"", "zz\'top", true'])
        table = DataTable([("a", "number", "A"), "b", ("c", "boolean")],
                          [[(1, "$1")], [None, "zz'top", True]])
        self.assertEqual(init_data_csv, table.ToCsv())
        table.AppendData([[-1, "w", False]])
        init_data_csv = "%s\n%s" % (init_data_csv, '-1, "w", false')
        self.assertEquals(init_data_csv, table.ToCsv())

        init_data_csv = "\n".join([
            '"T", "d", "dt"', '"[1,2,3]", "new Date(1,1,3)", ""',
            '"time ""2 3 4""", "new Date(2,2,4)", "new Date(1,1,3,4,5,6)"',
            '"", "new Date(3,3,5)", ""'
        ])
        table = DataTable({
            ("d", "date"): [("t", "timeofday", "T"), ("dt", "datetime")]
        })
        table.LoadData({
            date(1, 2, 3): [time(1, 2, 3)],
            date(2, 3, 4): [(time(2, 3, 4), 'time "2 3 4"'),
                            datetime(1, 2, 3, 4, 5, 6)],
            date(3, 4, 5): []
        })
        self.assertEqual(init_data_csv,
                         table.ToCsv(columns_order=["t", "d", "dt"]))
    def testToCsv(self):
        init_data_csv = "\r\n".join(
            ["A,\"b\"\"\",c", "1,,", ",zz'top,true", ""])
        table = DataTable([("a", "number", "A"), "b\"", ("c", "boolean")],
                          [[(1, "$1")], [None, "zz'top", True]])
        self.assertEqual(init_data_csv, table.ToCsv())
        table.AppendData([[-1, "w", False]])
        init_data_csv = "%s%s\r\n" % (init_data_csv, "-1,w,false")
        self.assertEqual(init_data_csv, table.ToCsv())

        init_data_csv = "\r\n".join([
            "T,d,dt", "01:02:03,1901-02-03,",
            "\"time \"\"2 3 4\"\"\",1902-03-04,1901-02-03 04:05:06",
            ",1903-04-05,", ""
        ])
        table = DataTable({
            ("d", "date"): [("t", "timeofday", "T"), ("dt", "datetime")]
        })
        table.LoadData({
            date(1901, 2, 3): [time(1, 2, 3)],
            date(1902, 3, 4): [(time(2, 3, 4), 'time "2 3 4"'),
                               datetime(1901, 2, 3, 4, 5, 6)],
            date(1903, 4, 5): []
        })
        self.assertEqual(init_data_csv,
                         table.ToCsv(columns_order=["t", "d", "dt"]))
 def testToTsvExcel(self):
     table = DataTable({
         ("d", "date"): [("t", "timeofday", "T"), ("dt", "datetime")]
     })
     table.LoadData({
         date(1901, 2, 3): [time(1, 2, 3)],
         date(1902, 3, 4): [(time(2, 3, 4), 'time "2 3 4"'),
                            datetime(1901, 2, 3, 4, 5, 6)],
         date(1903, 4, 5): []
     })
     self.assertEqual(table.ToCsv().replace(",", "\t").encode("UTF-16LE"),
                      table.ToTsvExcel())
 def testToTsvExcel(self):
     table = DataTable({
         ("d", "date"): [("t", "timeofday", "T"), ("dt", "datetime")]
     })
     table.LoadData({
         date(1901, 2, 3): [time(1, 2, 3)],
         date(1902, 3, 4): [(time(2, 3, 4), 'time "2 3 4"'),
                            datetime(1901, 2, 3, 4, 5, 6)],
         date(1903, 4, 5): []
     })
     csv_string = table.ToCsv()
     if not isinstance(csv_string, six.text_type):
         csv_string = csv_string.decode("utf-8")
     self.assertEqual(
         csv_string.replace(",", "\t").encode("UTF-16LE"),
         table.ToTsvExcel())