# Copyright (c) 2010-2023 openpyxl
import pytest
from openpyxl.xml.functions import fromstring, tostring
from openpyxl.tests.helper import compare_xml
[docs]
@pytest.fixture
def NonVisualDrawingProps():
from ..properties import NonVisualDrawingProps
return NonVisualDrawingProps
[docs]
class TestNonVisualDrawingProps:
[docs]
def test_ctor(self, NonVisualDrawingProps):
graphic = NonVisualDrawingProps(id=2, name="Chart 1")
xml = tostring(graphic.to_tree())
expected = """
<cNvPr id="2" name="Chart 1"></cNvPr>
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs]
def test_from_xml(self, NonVisualDrawingProps):
src = """
<cNvPr id="3" name="Chart 2"></cNvPr>
"""
node = fromstring(src)
graphic = NonVisualDrawingProps.from_tree(node)
assert graphic == NonVisualDrawingProps(id=3, name="Chart 2")
[docs]
@pytest.fixture
def NonVisualGroupDrawingShapeProps():
from ..properties import NonVisualGroupDrawingShapeProps
return NonVisualGroupDrawingShapeProps
[docs]
class TestNonVisualGroupDrawingShapeProps:
[docs]
def test_ctor(self, NonVisualGroupDrawingShapeProps):
props = NonVisualGroupDrawingShapeProps()
xml = tostring(props.to_tree())
expected = """
<cNvGrpSpPr />
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs]
def test_from_xml(self, NonVisualGroupDrawingShapeProps):
src = """
<cNvGrpSpPr />
"""
node = fromstring(src)
props = NonVisualGroupDrawingShapeProps.from_tree(node)
assert props == NonVisualGroupDrawingShapeProps()
[docs]
@pytest.fixture
def NonVisualGroupShape():
from ..properties import NonVisualGroupShape
return NonVisualGroupShape
[docs]
class TestNonVisualGroupShape:
[docs]
def test_ctor(self, NonVisualGroupShape, NonVisualDrawingProps, NonVisualGroupDrawingShapeProps):
props = NonVisualGroupShape(
cNvPr=NonVisualDrawingProps(id=2208, name="Group 1"),
cNvGrpSpPr=NonVisualGroupDrawingShapeProps()
)
xml = tostring(props.to_tree())
expected = """
<nvGrpSpPr>
<cNvPr id="2208" name="Group 1" />
<cNvGrpSpPr />
</nvGrpSpPr>
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs]
def test_from_xml(self, NonVisualGroupShape, NonVisualDrawingProps, NonVisualGroupDrawingShapeProps):
src = """
<nvGrpSpPr>
<cNvPr id="2208" name="Group 1" />
<cNvGrpSpPr />
</nvGrpSpPr>
"""
node = fromstring(src)
props = NonVisualGroupShape.from_tree(node)
assert props == NonVisualGroupShape(
cNvPr=NonVisualDrawingProps(id=2208, name="Group 1"),
cNvGrpSpPr=NonVisualGroupDrawingShapeProps()
)
[docs]
@pytest.fixture
def GroupLocking():
from ..properties import GroupLocking
return GroupLocking
[docs]
class TestGroupLocking:
[docs]
def test_ctor(self, GroupLocking):
lock = GroupLocking()
xml = tostring(lock.to_tree())
expected = """
<grpSpLocks xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs]
def test_from_xml(self, GroupLocking):
src = """
<grpSpLocks />
"""
node = fromstring(src)
lock = GroupLocking.from_tree(node)
assert lock == GroupLocking()
[docs]
@pytest.fixture
def GroupShapeProperties():
from ..properties import GroupShapeProperties
return GroupShapeProperties
from ..geometry import Point2D, PositiveSize2D, GroupTransform2D
[docs]
class TestGroupShapeProperties:
[docs]
def test_ctor(self, GroupShapeProperties):
xfrm = GroupTransform2D(
off=Point2D(x=2222500, y=0),
ext=PositiveSize2D(cx=2806700, cy=825500),
chOff=Point2D(x=303, y=0),
chExt=PositiveSize2D(cx=321, cy=111),
)
props = GroupShapeProperties(bwMode="auto", xfrm=xfrm)
xml = tostring(props.to_tree())
expected = """
<grpSpPr bwMode="auto" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:xfrm rot="0">
<a:off x="2222500" y="0"/>
<a:ext cx="2806700" cy="825500"/>
<a:chOff x="303" y="0"/>
<a:chExt cx="321" cy="111"/>
</a:xfrm>
</grpSpPr>
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs]
def test_from_xml(self, GroupShapeProperties):
src = """
<grpSpPr />
"""
node = fromstring(src)
fut = GroupShapeProperties.from_tree(node)
assert fut == GroupShapeProperties()