From e4c90b9afe630d3b48e40ec51e7ead5b5dfd1be0 Mon Sep 17 00:00:00 2001 From: Erik van Blokland Date: Wed, 30 May 2018 22:26:59 +0200 Subject: [PATCH] WIP uncomment test for conditions without min or max. Add _axesAsDict to the test because there it is needed. --- Lib/fontTools/designspaceLib/__init__.py | 12 ++++++------ Tests/designspaceLib/designspace_test.py | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Lib/fontTools/designspaceLib/__init__.py b/Lib/fontTools/designspaceLib/__init__.py index a68ba86d0..bbfaef015 100644 --- a/Lib/fontTools/designspaceLib/__init__.py +++ b/Lib/fontTools/designspaceLib/__init__.py @@ -704,12 +704,12 @@ class BaseDocReader(object): cd['maximum'] = None cd['name'] = conditionElement.attrib.get("name") # # test for things - # if cd.get('minimum') is None and cd.get('maximum') is None: - # if ruleObject.name is not None: - # n = ruleObject.name - # else: - # n = "%d" % len(rules) - # raise DesignSpaceDocumentError("No minimum or maximum defined in rule \"%s\"." % n) + if cd.get('minimum') is None and cd.get('maximum') is None: + if ruleObject.name is not None: + n = ruleObject.name + else: + n = "%d" % len(rules) + raise DesignSpaceDocumentError("No minimum or maximum defined in rule \"%s\"." % n) cds.append(cd) return cds diff --git a/Tests/designspaceLib/designspace_test.py b/Tests/designspaceLib/designspace_test.py index 5e345301b..1d9b841a7 100644 --- a/Tests/designspaceLib/designspace_test.py +++ b/Tests/designspaceLib/designspace_test.py @@ -12,6 +12,23 @@ from fontTools.designspaceLib import ( DesignSpaceDocument, SourceDescriptor, AxisDescriptor, RuleDescriptor, InstanceDescriptor, evaluateRule, processRules, posix, DesignSpaceDocumentError) +def _axesAsDict(axes): + """ + Make the axis data we have available in + """ + axesDict = {} + for axisDescriptor in axes: + d = { + 'name': axisDescriptor.name, + 'tag': axisDescriptor.tag, + 'minimum': axisDescriptor.minimum, + 'maximum': axisDescriptor.maximum, + 'default': axisDescriptor.default, + 'map': axisDescriptor.map, + } + axesDict[axisDescriptor.name] = d + return axesDict + def assert_equals_test_file(path, test_filename): with open(path) as fp: @@ -710,7 +727,7 @@ def test_rulesDocument(tmpdir): assert len(doc.rules) == 1 assert len(doc.rules[0].conditionSets) == 1 assert len(doc.rules[0].conditionSets[0]) == 2 - assert doc._axesAsDict() == {'axisName_a': {'map': [], 'name': 'axisName_a', 'default': 0, 'minimum': 0, 'maximum': 1000, 'tag': 'TAGA'}, 'axisName_b': {'map': [], 'name': 'axisName_b', 'default': 2000, 'minimum': 2000, 'maximum': 3000, 'tag': 'TAGB'}} + assert _axesAsDict(doc.axes) == {'axisName_a': {'map': [], 'name': 'axisName_a', 'default': 0, 'minimum': 0, 'maximum': 1000, 'tag': 'TAGA'}, 'axisName_b': {'map': [], 'name': 'axisName_b', 'default': 2000, 'minimum': 2000, 'maximum': 3000, 'tag': 'TAGB'}} assert doc.rules[0].conditionSets == [[ {'minimum': 0, 'maximum': 1000, 'name': 'axisName_a'}, {'minimum': 0, 'maximum': 3000, 'name': 'axisName_b'}]]