varLib_test: test loading master with layerName but without required font object

This commit is contained in:
Cosimo Lupo 2019-01-02 13:39:39 +00:00
parent ba197cb84c
commit 5b250db6cb
No known key found for this signature in database
GPG Key ID: 59D54DB0C9976482

View File

@ -2,14 +2,17 @@ from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import * from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont from fontTools.ttLib import TTFont
from fontTools.varLib import build from fontTools.varLib import build
from fontTools.varLib import main as varLib_main from fontTools.varLib import main as varLib_main, load_masters
from fontTools.designspaceLib import DesignSpaceDocumentError, DesignSpaceDocument from fontTools.designspaceLib import (
DesignSpaceDocumentError, DesignSpaceDocument, SourceDescriptor,
)
import difflib import difflib
import os import os
import shutil import shutil
import sys import sys
import tempfile import tempfile
import unittest import unittest
import pytest
def reload_font(font): def reload_font(font):
@ -308,5 +311,19 @@ class BuildTest(unittest.TestCase):
self.expect_ttx(varfont, expected_ttx_path, tables) self.expect_ttx(varfont, expected_ttx_path, tables)
def test_load_masters_layerName_without_required_font():
ds = DesignSpaceDocument()
s = SourceDescriptor()
s.font = None
s.layerName = "Medium"
ds.addSource(s)
with pytest.raises(
AttributeError,
match="specified a layer name but lacks the required TTFont object",
):
load_masters(ds)
if __name__ == "__main__": if __name__ == "__main__":
sys.exit(unittest.main()) sys.exit(unittest.main())