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")