From 864b4e0ded4977a7ac8972545fd9f14d639d6ffe Mon Sep 17 00:00:00 2001 From: Corran Webster Date: Thu, 4 Aug 2022 17:53:58 +0100 Subject: [PATCH 1/2] Add a test for #971 This should fail CI. --- kiva/fonttools/tests/test_font.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/kiva/fonttools/tests/test_font.py b/kiva/fonttools/tests/test_font.py index d28d00d3f..c046f01f9 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, + 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): From 4b85db668f7867954aa41282d02a9dc7e27c07b6 Mon Sep 17 00:00:00 2001 From: Corran Webster Date: Thu, 4 Aug 2022 18:00:08 +0100 Subject: [PATCH 2/2] Fix bug and clean-up style. --- kiva/fonttools/font.py | 2 +- kiva/fonttools/tests/test_font.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 c046f01f9..21d424b6c 100644 --- a/kiva/fonttools/tests/test_font.py +++ b/kiva/fonttools/tests/test_font.py @@ -14,8 +14,8 @@ import unittest from kiva.constants import ( - BOLD, BOLD_ITALIC, DECORATIVE, DEFAULT, ITALIC, MODERN, NORMAL, ROMAN, SCRIPT, TELETYPE, 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