from __future__ import absolute_import
# Copyright (c) 2010-2017 openpyxl
import pytest
from openpyxl.xml.functions import tostring, fromstring
from openpyxl.tests.helper import compare_xml
from ..colors import Color
from .. import colors
@pytest.fixture
[docs]def Font():
from ..fonts import Font
return Font
[docs]class TestFont:
[docs] def test_ctor(self, Font):
f = Font()
assert f.name is None
assert f.size is None
assert not f.bold
assert not f.italic
assert not f.underline
assert f.strikethrough is None
assert f.color is None
assert f.vertAlign is None
assert f.charset is None
[docs] def test_serialise(self):
from ..fonts import DEFAULT_FONT
ft = DEFAULT_FONT
xml = tostring(ft.to_tree())
expected = """
<font>
<name val="Calibri" />
<family val="2" />
<color theme="1" />
<sz val="11" />
<scheme val="minor" />
</font>
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs] def test_create(self, Font):
src = """
<font >
<charset val="204"></charset>
<family val="2"></family>
<name val="Calibri"></name>
<sz val="11"></sz>
<u val="single"/>
<vertAlign val="superscript"></vertAlign>
<color rgb="FF3300FF"></color>
</font>
"""
xml = fromstring(src)
ft = Font.from_tree(xml)
assert ft == Font(name='Calibri', charset=204, family=2, sz=11,
vertAlign='superscript', underline='single', color="FF3300FF")
[docs] def test_nested_empty(self, Font):
src = """
<font xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<b />
<u />
<vertAlign />
</font>
"""
xml = fromstring(src)
ft = Font.from_tree(xml)
assert ft == Font(bold=True, underline="single")