Skip to content

Commit 513e04f

Browse files
authored
Improve full_name renaming using records IDs 16 and 17. #62 (#66)
1 parent 0b34bb9 commit 513e04f

File tree

2 files changed

+40
-14
lines changed

2 files changed

+40
-14
lines changed

fontbro/font.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,7 @@ def rename(self, family_name="", style_name="", style_flags=True):
958958
subfamily_name = subfamily_name.title()
959959

960960
# full name
961-
full_name = concat_names(family_name, subfamily_name)
961+
full_name = concat_names(typographic_family_name, typographic_subfamily_name)
962962

963963
# postscript name
964964
postscript_name = concat_names(

tests/test_rename.py

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,44 @@ def test_rename_update_unique_identifier(self):
3737
font_uid = font.get_name(Font.NAME_UNIQUE_IDENTIFIER)
3838
self.assertEqual(font_uid, "3.000;GOOG;RobotoMulti-Regular")
3939

40-
# def test_rename_with_family_name_only_issue_0062(self):
41-
# # https://github.com/fabiocaccamo/python-fontbro/issues/62
42-
# font = self._get_font("/issues/issue-0062/ABCTest-Thin.otf")
43-
# self._print(font.get_names())
44-
# family_name = font.get_name(key=Font.NAME_FAMILY_NAME)
45-
# family_name = family_name.replace("ABC", "Hugo")
46-
# family_name = family_name.rstrip("Thin").strip()
47-
# font.set_name(Font.NAME_FAMILY_NAME, family_name)
48-
# font.rename(family_name=family_name, style_name="Thin")
49-
# self._print(font.get_names())
40+
def test_rename_with_family_name_only_issue_0062(self):
41+
# https://github.com/fabiocaccamo/python-fontbro/issues/62
42+
font = self._get_font("/issues/issue-0062/ABCTest-Thin.otf")
43+
# self._print(font.get_names())
44+
self.assertEqual(
45+
font.get_names(),
46+
{
47+
"family_name": "ABC Test Thin",
48+
"full_name": "ABC Test Thin",
49+
"postscript_name": "ABCTest-Thin",
50+
"subfamily_name": "Regular",
51+
"typographic_family_name": "ABC Test",
52+
"typographic_subfamily_name": "Thin",
53+
"unique_identifier": "1.000;UKWN;ABCTest-Thin",
54+
"version": "Version 1.000;Glyphs 3.1.2 (3151)",
55+
},
56+
)
57+
family_name = font.get_name(key=Font.NAME_TYPOGRAPHIC_FAMILY_NAME)
58+
family_name = family_name.replace("ABC", "Hugo")
59+
font.rename(family_name=family_name)
60+
# self._print(font.get_names())
61+
self.assertEqual(
62+
font.get_names(),
63+
{
64+
"family_name": "Hugo Test Thin",
65+
"full_name": "Hugo Test Thin",
66+
"postscript_name": "HugoTest-Thin",
67+
"subfamily_name": "Regular",
68+
"typographic_family_name": "Hugo Test",
69+
"typographic_subfamily_name": "Thin",
70+
"unique_identifier": "1.000;UKWN;HugoTest-Thin",
71+
"version": "Version 1.000;Glyphs 3.1.2 (3151)",
72+
"wws_family_name": "Hugo Test",
73+
"wws_subfamily_name": "Thin",
74+
},
75+
)
76+
full_name = font.get_name(key=Font.NAME_FULL_NAME)
77+
self.assertEqual(full_name, "Hugo Test Thin")
5078

5179
def test_rename_with_style_name_only(self):
5280
font = self._get_font("/Roboto_Mono/static/RobotoMono-Regular.ttf")
@@ -86,9 +114,7 @@ def test_rename_with_style_name_containing_characters_not_allowed_in_postscript_
86114
names = font.get_names()
87115
self.assertEqual(names[Font.NAME_FAMILY_NAME], "Tourney Custom [wdth-wght]")
88116
self.assertEqual(names[Font.NAME_SUBFAMILY_NAME], "Regular")
89-
self.assertEqual(
90-
names[Font.NAME_FULL_NAME], "Tourney Custom [wdth-wght] Regular"
91-
)
117+
self.assertEqual(names[Font.NAME_FULL_NAME], "Tourney Custom [wdth-wght]")
92118
self.assertEqual(names[Font.NAME_POSTSCRIPT_NAME], "TourneyCustom-wdth-wght")
93119
self.assertEqual(names[Font.NAME_TYPOGRAPHIC_FAMILY_NAME], "Tourney Custom")
94120
self.assertEqual(names[Font.NAME_TYPOGRAPHIC_SUBFAMILY_NAME], "[wdth-wght]")

0 commit comments

Comments
 (0)