Source code for openpyxl.workbook.external_link.tests.test_external

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

from zipfile import ZipFile

import pytest
from openpyxl.tests.helper import compare_xml

from openpyxl.xml.constants import (
    ARC_WORKBOOK_RELS,
)
from openpyxl.packaging.relationship import Relationship
from openpyxl.xml.functions import tostring, fromstring


@pytest.fixture
[docs]def ExternalCell(): from ..external import ExternalCell return ExternalCell
[docs]class TestExternalCell:
[docs] def test_read(self, ExternalCell): src = """ <cell r="B1" t="str"> <v>D&#0252;sseldorf</v> </cell> """ node = fromstring(src) cell = ExternalCell.from_tree(node) assert cell.v == u'D\xfcsseldorf'
@pytest.fixture @pytest.fixture
[docs]def ExternalBook(): from .. external import ExternalBook return ExternalBook
[docs]class TestExternalBook:
[docs] def test_ctor(self, ExternalBook): from ..external import ExternalDefinedName, ExternalSheetNames book = ExternalBook() book.sheetNames = ExternalSheetNames(sheetName=["Sheet1", "Sheet2", "Sheet3"]) df = ExternalDefinedName(name="B2range", refersTo="='Sheet1'!$A$1:$A$10") book.definedNames = [df] xml = tostring(book.to_tree()) expected = """ <externalBook> <sheetNames> <sheetName val="Sheet1"/> <sheetName val="Sheet2"/> <sheetName val="Sheet3"/> </sheetNames> <definedNames> <definedName name="B2range" refersTo="='Sheet1'!$A$1:$A$10"/> </definedNames> </externalBook> """ diff = compare_xml(xml, expected) assert diff is None, diff
[docs] def test_read(self, ExternalBook): src = """ <externalBook> <sheetNames> <sheetName val="Sheet1"/> <sheetName val="Sheet2"/> <sheetName val="Sheet3"/> </sheetNames> <definedNames> <definedName name="B2range" refersTo="='Sheet1'!$A$1:$A$10"/> </definedNames> </externalBook> """ node = fromstring(src) book = ExternalBook.from_tree(node) assert book.definedNames[0].name == 'B2range' assert book.definedNames[0].refersTo == "='Sheet1'!$A$1:$A$10"
[docs]def test_write_workbook(datadir, tmpdir): datadir.chdir() src = ZipFile("book1.xlsx") orig_files = set(src.namelist()) src.close() from openpyxl import load_workbook wb = load_workbook("book1.xlsx") tmpdir.chdir() wb.save("book1.xlsx") src = ZipFile("book1.xlsx") out_files = set(src.namelist()) src.close() # remove files from archive that the other can't have out_files.discard("xl/sharedStrings.xml") orig_files.discard("xl/calcChain.xml") assert orig_files == out_files