def test_generate_columns(self): """Test the method generating columns of a given dataset""" def generate_columns_longer(ds): """ a much longer implemntation of the column generation""" from invenio.bibrecord import record_add_field rec = {} columns = [[num, "", ""] for num in xrange(ds.num_columns)] # (number, header, title) cur_col = 0 for hd in ds.column_headers: for i in xrange(hd["colspan"]): columns[cur_col][1] = hd["content"].strip() cur_col += 1 cur_col = 0 for ct in ds.column_titles: for i in xrange(ct["colspan"]): columns[cur_col][2] = ct["content"].strip() cur_col += 1 for col in columns: subfields = [("n", str(col[0]))] if col[2] != "": subfields.append(("t", col[2])) if col[1] != "": subfields.append(("d", col[1])) record_add_field(rec, "910", subfields = subfields) return rec ds = Dataset() ds.column_headers = [{"content": "header1", "colspan" : 1}, {"content": "header2", "colspan" : 3}] ds.column_titles = [{"content": "title1", "colspan" : 2}, {"content": "title2", "colspan" : 1}] ds.num_columns = 6 self.assertEqual(ds.generate_columns(), generate_columns_longer(ds), \ "Incorrectly generated columns")