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<</th><th>b></th><th>c</th>" "</tr></thead>" "<tbody>" "<tr><td>$1</td><td></td><td></td></tr>" "<tr><td></td><td><z></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"]))
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>'<z>'</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"]))