diff --git a/kiva/fonttools/font.py b/kiva/fonttools/font.py index 2db2221ee..abaf2efba 100644 --- a/kiva/fonttools/font.py +++ b/kiva/fonttools/font.py @@ -186,7 +186,7 @@ class Font(object): ROMAN: "serif", MODERN: "sans-serif", DECORATIVE: "fantasy", - SCRIPT: "script", + SCRIPT: "cursive", TELETYPE: "monospace", } diff --git a/kiva/fonttools/tests/test_font.py b/kiva/fonttools/tests/test_font.py index d28d00d3f..21d424b6c 100644 --- a/kiva/fonttools/tests/test_font.py +++ b/kiva/fonttools/tests/test_font.py @@ -14,9 +14,10 @@ import unittest from kiva.constants import ( - BOLD, BOLD_ITALIC, DEFAULT, ITALIC, MODERN, NORMAL, ROMAN, WEIGHT_BOLD, - WEIGHT_LIGHT, WEIGHT_NORMAL, SWISS, + BOLD, BOLD_ITALIC, DECORATIVE, DEFAULT, ITALIC, MODERN, NORMAL, ROMAN, + SCRIPT, TELETYPE, WEIGHT_BOLD, WEIGHT_LIGHT, WEIGHT_NORMAL, SWISS, ) +from kiva.fonttools._constants import font_family_aliases, preferred_fonts from kiva.fonttools.tests._testing import patch_global_font_manager from kiva.fonttools.font import ( DECORATIONS, FAMILIES, NOISE, STYLES, WEIGHTS, Font, str_to_font, @@ -193,6 +194,23 @@ def test_font_query_warnings(self): self.assertEqual(query.get_weight(), WEIGHT_LIGHT) self.assertEqual(query.get_style(), "italic") + def test_family_queries(self): + # regression test for Enable #971 + # this ensures every font family creates a valid query populated + # with query families that work + families = [ + DECORATIVE, DEFAULT, MODERN, ROMAN, SCRIPT, SWISS, TELETYPE + ] + for family in families: + with self.subTest(family=family): + font = Font(family=family) + query = font._make_font_query() + query_family = query.get_family()[0] + + self.assertEqual(query_family, Font.familymap.get(family)) + self.assertIn(query_family, font_family_aliases) + self.assertIn(query_family, preferred_fonts) + class TestSimpleParser(unittest.TestCase):