Source code for openpyxl.develop.tests.test_classify

import pytest
import py

from lxml.etree import parse
import os.path

from openpyxl.tests.schema import parse
from openpyxl.tests.schema import drawing_main_src
from ..classify import XSD


@pytest.fixture
[docs]def datadir(): here = os.path.split(__file__)[0] return py.path.local(here).join("data")
@pytest.fixture
[docs]def schema(): return parse(drawing_main_src)
[docs]def test_attribute_group(schema): from ..classify import get_attribute_group attrs = get_attribute_group(schema, "AG_Locking") assert [a.get('name') for a in attrs] == ['noGrp', 'noSelect', 'noRot', 'noChangeAspect', 'noMove', 'noResize', 'noEditPoints', 'noAdjustHandles', 'noChangeArrowheads', 'noChangeShapeType']
[docs]def test_element_group(schema): from ..classify import get_element_group els = get_element_group(schema, "EG_FillProperties") assert [el.get('name') for el in els] == ['noFill', 'solidFill', 'gradFill', 'blipFill', 'pattFill', 'grpFill']
[docs]def test_class_no_deps(schema): from ..classify import classify cls = classify("CT_FileRecoveryPr") assert cls[0] == """ class FileRecoveryPr(Serialisable): autoRecover = Bool(allow_none=True) crashSave = Bool(allow_none=True) dataExtractLoad = Bool(allow_none=True) repairLoad = Bool(allow_none=True) def __init__(self, autoRecover=None, crashSave=None, dataExtractLoad=None, repairLoad=None, ): self.autoRecover = autoRecover self.crashSave = crashSave self.dataExtractLoad = dataExtractLoad self.repairLoad = repairLoad """
[docs]def test_derived(datadir): from ..classify import derived datadir.chdir() node = parse("defined_name.xsd").find("{%s}complexType" % XSD) assert derived(node).tag == "{%s}simpleContent" % XSD
[docs]def test_extends(datadir): from ..classify import derived, extends datadir.chdir() node = parse("defined_name.xsd").find("{%s}complexType" % XSD) node = extends(node) assert derived(node).tag == "{%s}simpleContent" % XSD
[docs]def test_simple_content(schema): from ..classify import classify cls = classify("CT_DefinedName")[0] assert cls == """ class DefinedName(Serialisable): name = String() comment = String(allow_none=True) customMenu = String(allow_none=True) description = String(allow_none=True) help = String(allow_none=True) statusBar = String(allow_none=True) localSheetId = Integer(allow_none=True) hidden = Bool(allow_none=True) function = Bool(allow_none=True) vbProcedure = Bool(allow_none=True) xlm = Bool(allow_none=True) functionGroupId = Integer(allow_none=True) shortcutKey = String(allow_none=True) publishToServer = Bool(allow_none=True) workbookParameter = Bool(allow_none=True) def __init__(self, name=None, comment=None, customMenu=None, description=None, help=None, statusBar=None, localSheetId=None, hidden=None, function=None, vbProcedure=None, xlm=None, functionGroupId=None, shortcutKey=None, publishToServer=None, workbookParameter=None, ): self.name = name self.comment = comment self.customMenu = customMenu self.description = description self.help = help self.statusBar = statusBar self.localSheetId = localSheetId self.hidden = hidden self.function = function self.vbProcedure = vbProcedure self.xlm = xlm self.functionGroupId = functionGroupId self.shortcutKey = shortcutKey self.publishToServer = publishToServer self.workbookParameter = workbookParameter """
[docs]def test_simpleType(schema): from ..classify import simple typ = simple("ST_FontCollectionIndex", schema) assert typ == "NoneSet(values=(['major', 'minor']))"