def test_invalid_pagination(self): index = pd.Index(['sample1', 'sample2', 'sample3'], name='id') values = ['1.0', '2.0', '3.0'] md = qiime2.Metadata(pd.DataFrame({'value': values}, index=index)) with tempfile.TemporaryDirectory() as output_dir: with self.assertRaisesRegex(ValueError, 'less than one'): tabulate(output_dir, md, -1)
def test_pagination(self): index = pd.Index(['sample1', 'sample2', 'sample3'], name='id') values = ['1.0', '2.0', '3.0'] md = qiime2.Metadata(pd.DataFrame({'value': values}, index=index)) with tempfile.TemporaryDirectory() as output_dir: tabulate(output_dir, md, page_size=2) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) viz = open(index_fp).read() self.assertTrue('pageLength: 2' in viz)
def test_multiple_dtypes(self): index = pd.Index(['sample1', 'sample2', 'sample3'], name='id') data = [[1.0, 'lorem'], [2.0, 'ipsum'], [3.0, 'emrakul']] md = qiime2.Metadata( pd.DataFrame(data, index=index, columns=['foo', 'bar'])) with tempfile.TemporaryDirectory() as output_dir: tabulate(output_dir, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) viz = open(index_fp).read() self.assertTrue('pageLength: 100' in viz) self.assertTrue('"columns":["id","foo","bar"]' in viz) self.assertTrue(all(i in viz for i in index)) self.assertTrue(all(str(v) in viz for row in data for v in row))
def test_valid_metadata(self): index = pd.Index(['sample1', 'sample2', 'sample3'], name='id') data = ['1.0', '2.0', '3.0'] md = qiime2.Metadata( pd.DataFrame({'foo': data}, index=index, dtype=object)) with tempfile.TemporaryDirectory() as output_dir: tabulate(output_dir, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) viz = open(index_fp).read() self.assertTrue('pageLength: 100' in viz) self.assertTrue('"columns":["id","foo"]' in viz) self.assertTrue(all(i in viz for i in index)) self.assertTrue(all(val in viz for val in data))
def test_single_quotes(self): index = pd.Index(['sample1', 'sample2', 'sample3'], name='id') data = ['\'1.0\'', '\'2.0\'', '\'3.0\''] md = qiime2.Metadata( pd.DataFrame({'foo': data}, index=index, dtype=object)) with tempfile.TemporaryDirectory() as output_dir: tabulate(output_dir, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) viz = open(index_fp).read() self.assertTrue('pageLength: 100' in viz) self.assertTrue('"columns":["id","foo"]' in viz) self.assertTrue(all(i in viz for i in index)) unicodified = [ r'\u00271.0\u0027', r'\u00272.0\u0027', r'\u00273.0\u0027' ] self.assertTrue(all(val in viz for val in unicodified))
def test_valid_metadata_many_columns(self): index = pd.Index(['sample1', 'sample2', 'sample3'], name='id') data = [['1.0', 'lorem', 'peanut'], ['2.0', 'ipsum', 'the'], ['3.0', 'emrakul', 'dog']] md = qiime2.Metadata( pd.DataFrame(data, index=index, dtype=object, columns=['foo', 'bar', 'baz'])) with tempfile.TemporaryDirectory() as output_dir: tabulate(output_dir, md) index_fp = os.path.join(output_dir, 'index.html') self.assertTrue(os.path.exists(index_fp)) viz = open(index_fp).read() self.assertTrue('pageLength: 100' in viz) self.assertTrue('"columns":["id","foo","bar","baz"]' in viz) self.assertTrue(all(i in viz for i in index)) self.assertTrue(all(v in viz for row in data for v in row))