from __future__ import absolute_import
# Copyright (c) 2010-2017 openpyxl
import pytest
from openpyxl.xml.functions import fromstring, tostring
from openpyxl.tests.helper import compare_xml
@pytest.fixture
[docs]def Hyperlink():
from ..hyperlink import Hyperlink
return Hyperlink
[docs]class TestHyperlink:
[docs] def test_ctor(self, Hyperlink):
hyperlink = Hyperlink(target="http://test.com", ref="A1", id="rId1", display="Link elsewhere")
xml = tostring(hyperlink.to_tree())
expected = """
<hyperlink xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
display="Link elsewhere" r:id="rId1" ref="A1"/>
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs] def test_from_xml(self, Hyperlink):
src = """
<hyperlink xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
display="http://test.com" r:id="rId1" ref="A1"/>
"""
node = fromstring(src)
hyperlink = Hyperlink.from_tree(node)
assert hyperlink == Hyperlink(display="http://test.com", ref="A1", id="rId1")
@pytest.fixture
[docs]def HyperlinkList():
from ..hyperlink import HyperlinkList
return HyperlinkList
[docs]class TestHyperlinkList:
[docs] def test_ctor(self, HyperlinkList):
fut = HyperlinkList()
xml = tostring(fut.to_tree())
expected = """
<hyperlinks />
"""
diff = compare_xml(xml, expected)
assert diff is None, diff
[docs] def test_from_xml(self, HyperlinkList):
src = """
<hyperlinks />
"""
node = fromstring(src)
fut = HyperlinkList.from_tree(node)
assert fut == HyperlinkList()
[docs] def test_append(self, HyperlinkList, Hyperlink):
link = Hyperlink(ref="I'm a link")
links = HyperlinkList()
links.append(link)
assert link.id == "rId1"