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 testToHtml(self):
        html_table_header = "<html><body><table border=\"1\">"
        html_table_footer = "</table></body></html>"
        init_data_html = html_table_header + (
            "<thead><tr>"
            "<th>A&lt;</th><th>b&gt;</th><th>c</th>"
            "</tr></thead>"
            "<tbody>"
            "<tr><td>$1</td><td></td><td></td></tr>"
            "<tr><td></td><td>&lt;z&gt;</td><td>true</td></tr>"
            "</tbody>") + html_table_footer
        table = DataTable([("a", "number", "A<"), "b>", ("c", "boolean")],
                          [[(1, "$1")], [None, "<z>", True]])
        self.assertEqual(init_data_html.replace("\n", ""), table.ToHtml())

        init_data_html = html_table_header + (
            "<thead><tr>"
            "<th>T</th><th>d</th><th>dt</th>"
            "</tr></thead>"
            "<tbody>"
            "<tr><td>01:02:03</td><td>0001-02-03</td><td></td></tr>"
            "<tr><td>time 2 3 4</td><td>0002-03-04</td>"
            "<td>0001-02-03 04:05:06</td></tr>"
            "<tr><td></td><td>0003-04-05</td><td></td></tr>"
            "</tbody>") + html_table_footer
        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_html.replace("\n", ""),
                         table.ToHtml(columns_order=["t", "d", "dt"]))
예제 #3
0
    def testToHtml(self):
        html_table_header = "<html><body><table border='1'>"
        html_table_footer = "</table></body></html>"
        init_data_html = html_table_header + (
            "<thead><tr>"
            "<th>A</th><th>b</th><th>c</th>"
            "</tr></thead>"
            "<tbody>"
            "<tr><td>'$1'</td><td></td><td></td></tr>"
            "<tr><td></td><td>'&lt;z&gt;'</td><td>true</td></tr>"
            "</tbody>") + html_table_footer
        table = DataTable([("a", "number", "A"), "b", ("c", "boolean")],
                          [[(1, "$1")], [None, "<z>", True]])
        self.assertEqual(init_data_html.replace("\n", ""), table.ToHtml())

        init_data_html = html_table_header + (
            "<thead><tr>"
            "<th>T</th><th>d</th><th>dt</th>"
            "</tr></thead>"
            "<tbody>"
            "<tr><td>[1,2,3]</td><td>new Date(1,1,3)</td><td></td></tr>"
            "<tr><td>'time 2 3 4'</td><td>new Date(2,2,4)</td>"
            "<td>new Date(1,1,3,4,5,6)</td></tr>"
            "<tr><td></td><td>new Date(3,3,5)</td><td></td></tr>"
            "</tbody>") + html_table_footer
        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_html.replace("\n", ""),
                         table.ToHtml(columns_order=["t", "d", "dt"]))