def test_row_cell_value(): # *_cell_value() correctly mangles attrnames that are Python reserved words. row = Row(Table()) row.from_ = 'foo' eq_(row.get_cell_value('from'), 'foo') row.set_cell_value('from', 'bar') eq_(row.get_cell_value('from'), 'bar')
def test_header_replaces_old_header(): table, header = table_with_header() other = Row(table) table.header = other assert table.header is other eq_(len(table), 2) assert table[0] is other
def test_footer_replaces_old_footer(): table, footer = table_with_footer() other = Row(table) table.footer = other assert table.footer is other eq_(len(table), 2) assert table[1] is other
def test_sort_table_also_tries_attributes_without_underscores(): # When determining a sort key, after having unsuccessfully tried the attribute with the, # underscore, try the one without one. table = Table() row1 = Row(table) row1._foo = 'a' # underscored attr must be checked first row1.foo = 'b' row1.bar = 'c' row2 = Row(table) row2._foo = 'b' row2.foo = 'a' row2.bar = 'b' table.append(row1) table.append(row2) table.sort_by('foo') assert table[0] is row1 assert table[1] is row2 table.sort_by('bar') assert table[0] is row2 assert table[1] is row1
def test_header_stays_there_on_insert(): # Inserting another row at the top puts it below the header table, header = table_with_header() table.insert(0, Row(table)) eq_(len(table), 3) assert table[0] is header
def test_footer_stays_there_on_insert(): # Inserting another row puts it above the footer table, footer = table_with_footer() table.insert(3, Row(table)) eq_(len(table), 3) assert table[2] is footer
def test_footer_stays_there_on_append(): # Appending another row puts it above the footer table, footer = table_with_footer() table.append(Row(table)) eq_(len(table), 3) assert table[2] is footer