def test_basic_table_no_content(self): t = Table(('Key', 'Value')) self.assertEqual(t.nrows, 0) self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "</table>")
def test_basic_table(self): t = Table(('Key', 'Value')) idx = t.add_row(Key="Employee name", Value="John Doe") self.assertEqual(idx, 0) self.assertEqual(t.nrows, 1) self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>")
def test_table_with_column_aliases(self): t = Table(('name', 'date', 'result'), name="Experiment", date="Date run", result="Final result") idx = t.add_row(name="Test setup", date="10/10/2017", result="Ok") self.assertEqual(idx, 0) self.assertEqual(t.nrows, 1) self.assertEqual( t.html(), "<table>\n" "<tr><th>Experiment</th><th>Date run</th><th>Final result</th></tr>\n" "<tr><td>Test setup</td><td>10/10/2017</td><td>Ok</td></tr>\n" "</table>")
def test_table_append_columns(self): t = Table(('Key', 'Person1')) t.add_row(Key="Name", Person1="John Doe") t.add_row(Key="D.O.B", Person1="12/06/1982") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Person1</th></tr>\n" "<tr><td>Name</td><td>John Doe</td></tr>\n" "<tr><td>D.O.B</td><td>12/06/1982</td></tr>\n" "</table>") t.append_columns("Person2", "Person3") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Person1</th><th>Person2</th><th>Person3</th></tr>\n" "<tr><td>Name</td><td>John Doe</td><td> </td><td> </td></tr>\n" "<tr><td>D.O.B</td><td>12/06/1982</td><td> </td><td> </td></tr>\n" "</table>")
def test_table_no_header(self): t = Table(('Key', 'Value')) t.add_row(Key="Employee name", Value="John Doe") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>") t.no_header() self.assertEqual( t.html(), "<table>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>")
def test_table_append_columns_fails_with_multiple_names(self): t = Table(('Key','Person1')) t.add_row(Key="Name",Person1="John Doe") t.add_row(Key="D.O.B",Person1="12/06/1982") self.assertRaises(KeyError, t.append_columns, "Person1")
def test_table_render_with_css_id(self): t = Table(('Key', 'Value')) t.add_row(Key="Employee name", Value="John Doe") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>") self.assertEqual( t.html(css_id="employee-tbl"), "<table id='employee-tbl'>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>")
def test_table_multiple_rows(self): t = Table(('Key', 'Value')) idx = t.add_row(Key="Name", Value="John Doe") self.assertEqual(idx, 0) self.assertEqual(t.nrows, 1) idx = t.add_row(Key="D.O.B", Value="12/06/1982") self.assertEqual(idx, 1) self.assertEqual(t.nrows, 2) idx = t.add_row(Key="Mobile", Value="+44 1726254") self.assertEqual(idx, 2) self.assertEqual(t.nrows, 3) self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Name</td><td>John Doe</td></tr>\n" "<tr><td>D.O.B</td><td>12/06/1982</td></tr>\n" "<tr><td>Mobile</td><td>+44 1726254</td></tr>\n" "</table>")
def test_table_add_css_classes_to_column(self): t = Table(('Key', 'Value')) t.add_row(Key="Employee name", Value="John Doe") t.add_row(Key="D.O.B", Value="12/06/1982") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "<tr><td>D.O.B</td><td>12/06/1982</td></tr>\n" "</table>") t.add_css_classes("key-column", column="Key") self.assertEqual( t.html(), "<table>\n" "<tr><th class='key-column'>Key</th><th>Value</th></tr>\n" "<tr><td class='key-column'>Employee name</td><td>John Doe</td></tr>\n" "<tr><td class='key-column'>D.O.B</td><td>12/06/1982</td></tr>\n" "</table>") t.add_css_classes("summary", "sunny", column="Key") self.assertEqual( t.html(), "<table>\n" "<tr><th class='key-column summary sunny'>Key</th><th>Value</th></tr>\n" "<tr><td class='key-column summary sunny'>Employee name</td><td>John Doe</td></tr>\n" "<tr><td class='key-column summary sunny'>D.O.B</td><td>12/06/1982</td></tr>\n" "</table>") self.assertRaises(KeyError, t.add_css_classes, "blah", column="doesntexist")
def test_table_add_css_classes(self): t = Table(('Key', 'Value')) t.add_row(Key="Employee name", Value="John Doe") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>") t.add_css_classes("employee-data") self.assertEqual( t.html(), "<table class='employee-data'>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>") t.add_css_classes("summary", "sunny") self.assertEqual( t.html(), "<table class='employee-data summary sunny'>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Employee name</td><td>John Doe</td></tr>\n" "</table>")
def test_table_set_value(self): t = Table(('Key', 'Value')) t.add_row(Key="Name", Value="John Doe") t.add_row(Key="D.O.B", Value="12/06/1982") t.add_row(Key="Mobile", Value="+44 1726254") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th></tr>\n" "<tr><td>Name</td><td>John Doe</td></tr>\n" "<tr><td>D.O.B</td><td>12/06/1982</td></tr>\n" "<tr><td>Mobile</td><td>+44 1726254</td></tr>\n" "</table>") t.append_columns("Value2") t.set_value(0, "Value2", "Jane Doe") t.set_value(1, "Value2", "19/04/1979") t.set_value(2, "Value2", "+44 1745262") self.assertEqual( t.html(), "<table>\n" "<tr><th>Key</th><th>Value</th><th>Value2</th></tr>\n" "<tr><td>Name</td><td>John Doe</td><td>Jane Doe</td></tr>\n" "<tr><td>D.O.B</td><td>12/06/1982</td><td>19/04/1979</td></tr>\n" "<tr><td>Mobile</td><td>+44 1726254</td><td>+44 1745262</td></tr>\n" "</table>")
toc_list = List() toc.add(toc_list) # Files files_info = report.add_section("Stats files") stats_files = "Statistics: %s" % Link( "[TSV]", os.path.relpath(stats_file, os.path.dirname(out_file))) if xlsx_file is not None: stats_files += " | %s" % Link( "[XLSX]", os.path.relpath(xlsx_file, os.path.dirname(out_file))) files_info.add(stats_files) toc_list.add_item(Link(files_info.title, files_info)) # General info general_info = report.add_section("General info", name="general_info") tbl = Table(columns=('name', 'value')) tbl.no_header() data_items = (('Total #reads', 'total_reads'), ('Total assigned #reads', 'total_assigned_reads'), ('Total #barcodes', 'total_barcodes'), ('Assigned #barcodes', 'assigned_barcodes')) for item in data_items: name, key = item tbl.add_row(name=name, value=data[key]) general_info.add(tbl) # Reads at each stage cols = ['Nreads', 'Nreads_filtered', 'Nreads_trimmed'] if contaminant_filtered: cols.append('Nreads_contaminant_filtered') plot_filen = os.path.join(out_dir, "reads_per_stage.png")