def test_print_html(self): table = Table(self.rows, self.column_names, self.column_types) table_html = six.StringIO() table.print_html(output=table_html) table_html = table_html.getvalue() parser = TableHTMLParser() parser.feed(table_html) self.assertIs(parser.has_table, True) self.assertIs(parser.has_tbody, True) self.assertIs(parser.has_thead, True) self.assertEqual(len(parser.header_rows), 1) self.assertEqual(len(parser.body_rows), len(table.rows)) header_cols = parser.header_rows[0] self.assertEqual(len(header_cols), len(table.column_names)) for i, column_name in enumerate(table.column_names): self.assertEqual(header_cols[i], column_name) for row_num, row in enumerate(table.rows): html_row = parser.body_rows[row_num] self.assertEqual(len(html_row), len(row)) for i, col in enumerate(row): self.assertEqual(six.text_type(col), html_row[i])
def test_print_html(self): table = Table(self.rows, self.column_names, self.column_types) table_html = six.StringIO() table.print_html(output=table_html) table_html = table_html.getvalue() parser = TableHTMLParser() parser.feed(table_html) self.assertIs(parser.has_table, True) self.assertIs(parser.has_tbody, True) self.assertIs(parser.has_thead, True) self.assertEqual(len(parser.header_rows), 1) self.assertEqual(len(parser.body_rows), len(table.rows)) header_cols = parser.header_rows[0] self.assertEqual(len(header_cols), len(table.column_names)) for i, column_name in enumerate(table.column_names): self.assertEqual(header_cols[i], column_name) for row_num, row in enumerate(table.rows): html_row = parser.body_rows[row_num] self.assertEqual(len(html_row), len(row))
def test_print_html_max_columns(self): table = Table(self.rows, self.column_names, self.column_types) output = six.StringIO() table.print_html(max_columns=2, output=output) html = output.getvalue() self.assertEqual(html.count('<tr>'), 4) self.assertEqual(html.count('<th>'), 2) self.assertEqual(html.count('<td>'), 6)
def test_print_html_tags(self): table = Table(self.rows, self.column_names, self.column_types) output = six.StringIO() table.print_html(output=output) html = output.getvalue() self.assertEqual(html.count('<tr>'), 4) self.assertEqual(html.count('<th>'), 3) self.assertEqual(html.count('<td '), 9)
def test_print_html_max_columns(self): table = Table(self.rows, self.column_names, self.column_types) output = six.StringIO() table.print_html(max_columns=2, output=output) html = output.getvalue() self.assertEqual(html.count('<tr>'), 4) self.assertEqual(html.count('<th>'), 3) self.assertEqual(html.count('<td '), 9)