@@ -223,6 +223,44 @@ def test_ods_writer_use_sheet_discards_unused_sheets(ods_writer):
assert len(sheets) == 1
assert sheets[0].getAttribute('name') == 'One'
@pytest.mark.parametrize('width,expect_name', [
('.750', 'col_0_75in'),
(2, 'col_2in'),
('2.2in', 'col_2_2in'),
(3.5, 'col_3_5in'),
('4cm', 'col_4cm'),
])
def test_ods_column_style(ods_writer, width, expect_name):
style = ods_writer.column_style(width)
assert style.getAttribute('name') == expect_name
assert style.getAttribute('family') == 'table-column'
curr_style = get_child(
ods_writer.document.automaticstyles,
odf.style.Style,
name=expect_name,
)
assert get_child(
curr_style,
odf.style.TableColumnProperties,
columnwidth=expect_name[4:].replace('_', '.'),
def test_ods_column_style_caches(ods_writer):
int_width = ods_writer.column_style('1in')
float_width = ods_writer.column_style('1.00in')
assert int_width is float_width
@pytest.mark.parametrize('width', [
'1mi',
'0in',
'-1cm',
'in',
'.cm',
def test_ods_column_style_invalid_width(ods_writer, width):
with pytest.raises(ValueError):
ods_writer.column_style(width)
@pytest.mark.parametrize('currency_code', [
'USD',
'EUR',
@@ -261,11 +299,6 @@ def test_ods_currency_style_cache_considers_properties(ods_writer):
assert plain.getAttribute('datastylename') != bold.getAttribute('datastylename')
@pytest.mark.parametrize('attr_name,child_type,checked_attr', [
('style_col1', odf.style.TableColumnProperties, 'columnwidth'),
('style_col1_25', odf.style.TableColumnProperties, 'columnwidth'),
('style_col1_5', odf.style.TableColumnProperties, 'columnwidth'),
('style_col1_75', odf.style.TableColumnProperties, 'columnwidth'),
('style_col2', odf.style.TableColumnProperties, 'columnwidth'),
('style_bold', odf.style.TextProperties, 'fontweight'),
('style_centertext', odf.style.ParagraphProperties, 'textalign'),
('style_dividerline', odf.style.TableCellProperties, 'borderbottom'),
@@ -273,10 +306,7 @@ def test_ods_currency_style_cache_considers_properties(ods_writer):
('style_starttext', odf.style.ParagraphProperties, 'textalign'),
def test_ods_writer_style(ods_writer, attr_name, child_type, checked_attr):
if child_type is odf.style.TableColumnProperties:
root = ods_writer.document.automaticstyles
else:
root = ods_writer.document.styles
style = getattr(ods_writer, attr_name)
actual = get_child(root, odf.style.Style, name=style.getAttribute('name'))
assert actual is style