Source code for openpyxl.styles.tests.test_cell_style

from __future__ import absolute_import
# Copyright (c) 2010-2015 openpyxl
import pytest

from copy import copy

from openpyxl.xml.functions import fromstring, tostring
from openpyxl.tests.helper import compare_xml


@pytest.fixture
[docs]def StyleArray(): from ..cell_style import StyleArray return StyleArray
[docs]class TestStyleArray:
[docs] def test_ctor(self, StyleArray): style = StyleArray(range(9)) assert style.fontId == 0 assert style.numFmtId == 3 assert style.xfId == 8
[docs] def test_hash(self, StyleArray): s1 = StyleArray((range(9))) s2 = StyleArray((range(9))) assert hash(s1) == hash(s2)
[docs] def test_copy(self, StyleArray): s1 = StyleArray((range(9))) s2 = copy(s1) assert type(s1) == type(s2) assert s1 == s2
@pytest.fixture
[docs]def CellStyle(): from ..cell_style import CellStyle return CellStyle
[docs]class TestCellStyle:
[docs] def test_ctor(self, CellStyle): cell_style = CellStyle(xfId=0) xml = tostring(cell_style.to_tree()) expected = """ <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" /> """ diff = compare_xml(xml, expected) assert diff is None, diff
[docs] def test_from_xml(self, CellStyle): from ..alignment import Alignment src = """ <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment horizontal="center"/> </xf> """ node = fromstring(src) cell_style = CellStyle.from_tree(node) assert cell_style == CellStyle( alignment=Alignment(horizontal="center"), applyAlignment=True, xfId=0, )
[docs] def test_to_array(self, CellStyle): from ..cell_style import StyleArray xf = CellStyle( numFmtId=43, fontId=1, fillId=2, borderId=4, xfId=None, quotePrefix=True, pivotButton=True, applyNumberFormat=None, applyFont=None, applyFill=None, applyBorder=None, applyAlignment=None, applyProtection=None, alignment=None, protection=None, ) style = xf.to_array() assert style == StyleArray([1, 2, 4, 43, 0, 0, 1, 1, 0])
[docs] def test_from_array(self, CellStyle): from ..cell_style import StyleArray style = StyleArray([5, 10, 15, 0, 0, 0, 1, 1, 15]) xf = CellStyle.from_array(style) assert dict(xf) == {'borderId': '15', 'fillId': '10', 'fontId': '5', 'numFmtId': '0', 'pivotButton': '1', 'quotePrefix': '1', 'xfId': '15'}
@pytest.fixture
[docs]def CellStyleList(): from ..cell_style import CellStyleList return CellStyleList
[docs]class TestCellStyleList:
[docs] def test_ctor(self, CellStyleList): cell_style = CellStyleList() xml = tostring(cell_style.to_tree()) expected = """ <cellXfs count="0"/> """ diff = compare_xml(xml, expected) assert diff is None, diff
[docs] def test_from_xml(self, CellStyleList): src = """ <cellXfs count="0" /> """ node = fromstring(src) cell_style = CellStyleList.from_tree(node) assert cell_style == CellStyleList()
[docs] def test_to_array(self, CellStyleList): src = """ <cellXfs count="29"> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/> <xf numFmtId="0" fontId="3" fillId="0" borderId="0" xfId="0" applyFont="1"/> <xf numFmtId="0" fontId="4" fillId="0" borderId="0" xfId="0" applyFont="1"/> <xf numFmtId="0" fontId="5" fillId="0" borderId="0" xfId="0" applyFont="1"/> <xf numFmtId="0" fontId="6" fillId="0" borderId="0" xfId="0" applyFont="1"/> <xf numFmtId="0" fontId="7" fillId="0" borderId="0" xfId="0" applyFont="1"/> <xf numFmtId="0" fontId="0" fillId="2" borderId="0" xfId="0" applyFill="1"/> <xf numFmtId="0" fontId="0" fillId="3" borderId="0" xfId="0" applyFill="1"/> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment horizontal="left"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment horizontal="right"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment horizontal="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment vertical="top"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment vertical="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"/> <xf numFmtId="2" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/> <xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/> <xf numFmtId="10" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment horizontal="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="1" xfId="0" applyBorder="1"/> <xf numFmtId="0" fontId="0" fillId="0" borderId="2" xfId="0" applyBorder="1"/> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment wrapText="1"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment shrinkToFit="1"/> </xf> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyFill="1" applyBorder="1"/> <xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"> <alignment horizontal="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="4" borderId="3" xfId="0" applyFill="1" applyBorder="1" applyAlignment="1"> <alignment horizontal="center" vertical="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="4" borderId="4" xfId="0" applyFill="1" applyBorder="1" applyAlignment="1"> <alignment horizontal="center" vertical="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="4" borderId="5" xfId="0" applyFill="1" applyBorder="1" applyAlignment="1"> <alignment horizontal="center" vertical="center"/> </xf> <xf numFmtId="0" fontId="0" fillId="4" borderId="6" xfId="0" applyFill="1" applyBorder="1" applyAlignment="1"> <alignment horizontal="center" vertical="center"/> </xf> <xf numFmtId="0" fontId="6" fillId="5" borderId="0" xfId="0" applyFont="1" applyFill="1"/> </cellXfs> """ node = fromstring(src) xfs = CellStyleList.from_tree(node) styles = xfs._to_array() assert len(styles) == 29 assert len(xfs.alignments) == 9 assert len(xfs.prots) == 1