Пример #1
0
class TestTableContentAccess(unittest.TestCase):
    def setUp(self):
        self.table = Table(xmlnode=etree.XML(SQUAREMATRIX))

    def test_metrics(self):
        self.assertEqual(self.table.name, 'RowColAccess')
        self.assertEqual(self.table.ncols(), 4)
        self.assertEqual(self.table.nrows(), 4)

    def test_row_neg_index(self):
        cell = self.table[-1, 0]
        self.assertEqual(cell.value, 13.)

    def test_col_index_error(self):
        with self.assertRaises(IndexError):
            self.table[0, 4]

    def test_access_cell_by_index(self):
        cell = self.table[0, 0]
        self.assertEqual(cell.value, 1.)

    def test_access_cell_by_reference(self):
        cell = self.table['B1']
        self.assertEqual(cell.value, 2.)

    def test_setting_cell_by_index(self):
        self.table[0, 0] = Cell('Textcell')
        cell = self.table['A1']
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_setting_cell_by_address(self):
        self.table['A1'] = Cell('Textcell')
        cell = self.table[0, 0]
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_set_cell_row_index_error(self):
        with self.assertRaises(IndexError):
            self.table[10, 0] = Cell()

    def test_set_cell_column_index_error(self):
        with self.assertRaises(IndexError):
            self.table[0, 10] = Cell()

    def test_set_cell_neg_row_index(self):
        self.table[-1, 0] = Cell('Textcell')
        cell = self.table[3, 0]
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_set_cell_neg_column_index(self):
        self.table[0, -1] = Cell('Textcell')
        cell = self.table[0, 3]
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_if_rows_generates_lists(self):
        nrows = self.table.nrows()
        ncols = self.table.ncols()
        for row in self.table.rows():
            cells = row
            self.assertEqual(len(cells), ncols)
Пример #2
0
class TestTableContentAccess(unittest.TestCase):
    def setUp(self):
        self.table = Table(xmlnode=etree.XML(SQUAREMATRIX))

    def test_metrics(self):
        self.assertEqual(self.table.name, 'RowColAccess')
        self.assertEqual(self.table.ncols(), 4)
        self.assertEqual(self.table.nrows(), 4)

    def test_row_neg_index(self):
        cell = self.table[-1, 0]
        self.assertEqual(cell.value, 13.)

    def test_col_index_error(self):
        with self.assertRaises(IndexError):
            self.table[0, 4]

    def test_access_cell_by_index(self):
        cell = self.table[0, 0]
        self.assertEqual(cell.value, 1.)

    def test_access_cell_by_reference(self):
        cell = self.table['B1']
        self.assertEqual(cell.value, 2.)

    def test_setting_cell_by_index(self):
        self.table[0, 0] = Cell('Textcell')
        cell = self.table['A1']
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_setting_cell_by_address(self):
        self.table['A1'] = Cell('Textcell')
        cell = self.table[0, 0]
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_set_cell_row_index_error(self):
        with self.assertRaises(IndexError):
            self.table[10, 0] = Cell()

    def test_set_cell_column_index_error(self):
        with self.assertRaises(IndexError):
            self.table[0, 10] = Cell()

    def test_set_cell_neg_row_index(self):
        self.table[-1, 0] = Cell('Textcell')
        cell = self.table[3, 0]
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_set_cell_neg_column_index(self):
        self.table[0, -1] = Cell('Textcell')
        cell = self.table[0, 3]
        self.assertEqual(cell.plaintext(), "Textcell")

    def test_if_rows_generates_lists(self):
        nrows = self.table.nrows()
        ncols = self.table.ncols()
        for row in self.table.rows():
            cells = row
            self.assertEqual(len(cells), ncols)
Пример #3
0
class TestTableContent(unittest.TestCase):
    def setUp(self):
        self.table = Table(xmlnode=etree.XML(TABLE_COMP))

    def test_metrics(self):
        self.assertEqual(self.table.ncols(), 7)
        self.assertEqual(self.table.nrows(), 7)

    def test_set_get_different_values(self):
        ncols = self.table.ncols()
        for row in range(self.table.nrows()):
            for col in range(ncols):
                cell = self.table[row, col]
                cell.set_value(row * ncols + col, 'float')

        for row in range(self.table.nrows()):
            for col in range(ncols):
                cell = self.table[row, col]
                self.assertEqual(row * ncols + col, int(cell.value))
Пример #4
0
class TestTableContent(unittest.TestCase):
    def setUp(self):
        self.table = Table(xmlnode=etree.XML(TABLE_COMP))

    def test_metrics(self):
        self.assertEqual(self.table.ncols(), 7)
        self.assertEqual(self.table.nrows(), 7)

    def test_set_get_different_values(self):
        ncols = self.table.ncols()
        for row in range(self.table.nrows()):
            for col in range(ncols):
                cell = self.table[row, col]
                cell.set_value(row*ncols + col, 'float')

        for row in range(self.table.nrows()):
            for col in range(ncols):
                cell = self.table[row, col]
                self.assertEqual(row*ncols + col, int(cell.value))
Пример #5
0
 def test_reset(self):
     table = Table(name="TEST", size=(7, 5))
     table.reset(size=(8, 10))
     self.assertEqual("TEST", table.name, "name attribute is deleted")
     self.assertEqual(table.ncols(), 10)
     self.assertEqual(table.nrows(), 8)
Пример #6
0
 def test_init_row_cols(self):
     table = Table(name="TEST", size=(7, 5))
     self.assertEqual(table.nrows(), 7)
     self.assertEqual(table.ncols(), 5)
Пример #7
0
class TestTableRowManagement(unittest.TestCase):
    def cellvalue(self, row, col):
        return self.table[row, col].value

    def setUp(self):
        self.table = Table('TEST', size=(10, 10))
        add_table_prelude_content(self.table)
        for row in range(10):
            self.table[row,0].set_value('checkmark%d' % row )
            invoke_cache = self.cellvalue(row, 0)

    def test_metrics(self):
        self.assertEqual(10, self.table.nrows(), "expected 10 rows")
        self.assertEqual(10, self.table.ncols(), "expected 10 columns")

    def test_append_one_row(self):
        self.table.append_rows(1)
        self.assertEqual(11, self.table.nrows(), "expected 11 rows")

    def test_append_two_rows(self):
        self.table.append_rows(2)
        self.assertEqual(12, self.table.nrows(), "expected 12 rows")

    def test_append_zero_rows_value_error(self):
        with self.assertRaises(ValueError):
            self.table.append_rows(0)

    def test_append_negative_rows_value_error(self):
        with self.assertRaises(ValueError):
            self.table.append_rows(-1)

    def test_insert_one_row(self):
        self.table.insert_rows(index=5, count=1)
        self.chk_insert_one_row()

    def test_insert_one_row_neg_index(self):
        self.table.insert_rows(index=-5, count=1)
        self.chk_insert_one_row()

    def chk_insert_one_row(self):
        self.assertEqual(11, self.table.nrows(), "expected 11 rows")
        self.assertEqual('checkmark4', self.cellvalue(4, 0), "expected checkmark4 in row 4")
        self.assertIsNone(self.cellvalue(5, 0), "expected None in row 5")
        self.assertEqual('checkmark5', self.cellvalue(6, 0), "expected checkmark5 in row 6")

    def test_insert_two_rows(self):
        self.table.insert_rows(index=5, count=2)
        self.chk_insert_two_rows()

    def test_insert_two_rows_neg_index(self):
        self.table.insert_rows(index=-5, count=2)
        self.chk_insert_two_rows()

    def chk_insert_two_rows(self):
        self.assertEqual(12, self.table.nrows(), "expected 12 rows")
        self.assertEqual('checkmark4', self.cellvalue(4, 0), "expected checkmark4 in row 4")
        self.assertIsNone(self.cellvalue(5, 0))
        self.assertIsNone(self.cellvalue(6, 0))
        self.assertEqual('checkmark5', self.cellvalue(7, 0), "expected checkmark5 in row 7")

    def test_insert_zero_rows_value_error(self):
        with self.assertRaises(ValueError):
            self.table.insert_rows(0, count=0)

    def test_insert_negative_rows_value_error(self):
        with self.assertRaises(ValueError):
            self.table.insert_rows(0, count=-1)

    def test_insert_rows_out_of_range_index_error(self):
        with self.assertRaises(IndexError):
            self.table.insert_rows(10, count=1)

    def test_delete_one_row(self):
        self.table.delete_rows(index=5, count=1)
        self.chk_delete_one_row()

    def test_delete_one_row_neg_index(self):
        self.table.delete_rows(index=-5, count=1)
        self.chk_delete_one_row()

    def chk_delete_one_row(self):
        self.assertEqual(9, self.table.nrows(), "expected 9 rows")
        self.assertEqual('checkmark4', self.cellvalue(4, 0), "expected checkmark4 in row 4")
        self.assertEqual('checkmark6', self.cellvalue(5, 0), "expected checkmark6 in row 5")

    def test_delete_two_rows(self):
        self.table.delete_rows(index=5, count=2)
        self.chk_delete_two_rows()

    def test_delete_two_rows_neg_index(self):
        self.table.delete_rows(index=-5, count=2)
        self.chk_delete_two_rows()

    def chk_delete_two_rows(self):
        self.assertEqual(8, self.table.nrows(), "expected 8 rows")
        self.assertEqual('checkmark4', self.cellvalue(4, 0), "expected checkmark4 in row 4")
        self.assertEqual('checkmark7', self.cellvalue(5, 0), "expected checkmark7 in row 5")

    def test_delete_last_row(self):
        self.table.delete_rows(index=9)
        self.assertEqual(9, self.table.nrows(), "expected 9 rows")

    def test_delete_zero_rows_value_error(self):
        with self.assertRaises(ValueError):
            self.table.delete_rows(0, count=0)

    def test_delete_negative_rows_value_error(self):
        with self.assertRaises(ValueError):
            self.table.delete_rows(0, count=-1)

    def test_delete_rows_index_out_of_range_error(self):
        with self.assertRaises(IndexError):
            self.table.delete_rows(10, count=1)

    def test_delete_rows_index_and_count_out_of_range_error(self):
        self.table.xmlnode.append(etree.Element('FakeNode'))
        with self.assertRaises(IndexError):
            self.table.delete_rows(9, count=2)
Пример #8
0
class TestTableColumnManagement(unittest.TestCase):
    def colinfo(self, index):
        return self.table.column_info(index).style_name

    def cellvalue(self, row, col):
        return self.table[row, col].value

    def setUp(self):
        self.table = Table('TEST', size=(10, 10))
        add_table_prelude_content(self.table)

        for col in range(self.table.nrows()):
            self.table[0, col].set_value('checkmark%d' % col )
            invoke_cache = self.cellvalue(0, col)

        for col in range(self.table.ncols()):
            column_info = self.table.column_info(col)
            column_info.style_name = 'c%d' % col

    def test_append_one_column(self):
        self.table.append_columns(1)
        self.assertEqual(11, self.table.ncols(), "expected 11 columns")
        column_info = self.table.column_info(10)
        self.assertEqual(column_info.kind, "TableColumn")

    def test_append_two_columns(self):
        self.table.append_columns(2)
        self.assertEqual(12, self.table.ncols(), "expected 12 columns")
        column_info = self.table.column_info(11)
        self.assertEqual(column_info.kind, "TableColumn")

    def test_append_count_zero_error(self):
        with self.assertRaises(ValueError):
            self.table.append_columns(0)

    def test_append_negative_count_error(self):
        with self.assertRaises(ValueError):
            self.table.append_columns(-1)

    def test_insert_one_column(self):
        self.table.insert_columns(5, count=1)
        self.chk_insert_one_column()

    def test_insert_one_column_neg_index(self):
        self.table.insert_columns(-5, count=1)
        self.chk_insert_one_column()

    def chk_insert_one_column(self):
        self.assertEqual(11, self.table.ncols(), "expected 11 columns")
        self.assertEqual('checkmark4', self.cellvalue(0, 4), "expected checkmark4 in col 4")
        self.assertIsNone(self.cellvalue(0, 5), "expected None in col 5")
        self.assertEqual('checkmark5', self.cellvalue(0, 6), "expected checkmark5 in col 6")
        self.assertEqual('c4', self.colinfo(4), "expected 'c4' as colinfo 4")
        self.assertEqual('c5', self.colinfo(6), "expected 'c5' as colinfo 6")

    def test_insert_two_columns(self):
        self.table.insert_columns(5, count=2)

        self.assertEqual(12, self.table.ncols(), "expected 12 columns")
        self.assertEqual('checkmark4', self.cellvalue(0, 4), "expected checkmark4 in col 4")
        self.assertIsNone(self.cellvalue(0, 5), "expected None in col 5")
        self.assertIsNone(self.cellvalue(0, 6), "expected None in col 6")
        self.assertEqual('checkmark5', self.cellvalue(0, 7), "expected checkmark5 in col 7")
        self.assertEqual(self.colinfo(4), 'c4', "expected 'c4' as colinfo 4")
        self.assertEqual(self.colinfo(7), 'c5', "expected 'c5' as colinfo 7")

    def test_insert_zero_cols_value_error(self):
        with self.assertRaises(ValueError):
            self.table.insert_columns(0, count=0)

    def test_insert_negative_cols_value_error(self):
        with self.assertRaises(ValueError):
            self.table.insert_columns(0, count=-1)

    def test_delete_one_column(self):
        self.table.delete_columns(5, count=1)
        self.chk_delete_one_column()

    def test_delete_one_column_neg_index(self):
        self.table.delete_columns(-5, count=1)
        self.chk_delete_one_column()

    def chk_delete_one_column(self):
        self.assertEqual(9, self.table.ncols(), "expected 9 columns")
        self.assertEqual('checkmark4', self.cellvalue(0, 4), "expected checkmark4 in col 4")
        self.assertEqual('checkmark6', self.cellvalue(0, 5), "expected checkmark6 in col 5")
        self.assertEqual(self.colinfo(4), 'c4', "expected 'c4' as colinfo 4")
        self.assertEqual(self.colinfo(5), 'c6', "expected 'c6' as colinfo 5")

    def test_delete_two_columns(self):
        self.table.delete_columns(5, count=2)
        self.chk_delete_two_columns()

    def test_delete_two_columns_neg_index(self):
        self.table.delete_columns(-5, count=2)
        self.chk_delete_two_columns()

    def chk_delete_two_columns(self):
        self.assertEqual(8, self.table.ncols(), "expected 8 columns")
        self.assertEqual('checkmark4', self.cellvalue(0, 4), "expected checkmark4 in col 4")
        self.assertEqual('checkmark7', self.cellvalue(0, 5), "expected checkmark7 in col 5")
        self.assertEqual('c4', self.colinfo(4), "expected 'c4' as colinfo 4")
        self.assertEqual('c7', self.colinfo(5), "expected 'c7' as colinfo 5")

    def test_delete_last_column(self):
        self.table.delete_columns(index=9)
        self.assertEqual(9, self.table.ncols(), "expected 9 columns")

    def test_delete_zero_cols_value_error(self):
        with self.assertRaises(ValueError):
            self.table.delete_columns(0, count=0)

    def test_delete_negative_cols_value_error(self):
        with self.assertRaises(ValueError):
            self.table.delete_columns(0, count=-1)

    def test_delete_cols_index_out_of_range_error(self):
        with self.assertRaises(IndexError):
            self.table.delete_columns(10, count=1)

    def test_delete_cols_index_and_count_out_of_range_error(self):
        with self.assertRaises(IndexError):
            self.table.delete_columns(9, count=2)
Пример #9
0
 def test_reset(self):
     table = Table(name="TEST", size=(7, 5))
     table.reset(size=(8, 10))
     self.assertEqual("TEST", table.name, "name attribute is deleted")
     self.assertEqual(table.ncols(), 10)
     self.assertEqual(table.nrows(), 8)
Пример #10
0
 def test_init_row_cols(self):
     table = Table(name="TEST", size=(7, 5))
     self.assertEqual(table.nrows(), 7)
     self.assertEqual(table.ncols(), 5)