diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.weight=1/R_.alt.glif b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.weight=1/R_.alt.glif
new file mode 100644
index 000000000..c79129550
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.weight=1/R_.alt.glif
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.weight=1/contents.plist b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.weight=1/contents.plist
new file mode 100644
index 000000000..b07300116
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.weight=1/contents.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ R.alt
+ R_.alt.glif
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1,weight=1/R_.alt.glif b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1,weight=1/R_.alt.glif
new file mode 100644
index 000000000..f9728ed21
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1,weight=1/R_.alt.glif
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1,weight=1/contents.plist b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1,weight=1/contents.plist
new file mode 100644
index 000000000..b07300116
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1,weight=1/contents.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ R.alt
+ R_.alt.glif
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1/R_.alt.glif b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1/R_.alt.glif
new file mode 100644
index 000000000..7f015db57
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1/R_.alt.glif
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1/contents.plist b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1/contents.plist
new file mode 100644
index 000000000..b07300116
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs.width=1/contents.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ R.alt
+ R_.alt.glif
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/R_.alt.glif b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/R_.alt.glif
new file mode 100644
index 000000000..8b69e2967
--- /dev/null
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/R_.alt.glif
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.black-foundry.glyph-designspace
+
+ axes
+
+
+ default
+ 0
+ maximum
+ 1
+ minimum
+ 0
+ name
+ width
+
+
+ default
+ 0
+ maximum
+ 1
+ minimum
+ 0
+ name
+ weight
+
+
+ sources
+
+
+ layername
+ weight=1
+ location
+
+ weight
+ 1
+
+
+
+ layername
+ width=1
+ location
+
+ width
+ 1
+
+
+
+ layername
+ width=1,weight=1
+ location
+
+ weight
+ 1
+ width
+ 1
+
+
+
+
+ xyz.fontra.layer-names
+
+ MutatorSansLightCondensed/foreground
+ <default>
+ MutatorSansLightCondensed/weight=1
+ weight=1
+ MutatorSansLightCondensed/width=1
+ width=1
+ MutatorSansLightCondensed/width=1,weight=1
+ width=1,weight=1
+
+ xyz.fontra.source-names
+
+ LightCondensed
+ <default>
+
+
+
+
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/contents.plist b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/contents.plist
index 0cd6bdf19..cd85400b8 100644
--- a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/contents.plist
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/glyphs/contents.plist
@@ -48,6 +48,8 @@
Q_.glif
R
R_.glif
+ R.alt
+ R_.alt.glif
S
S_.glif
S.closed
diff --git a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/layercontents.plist b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/layercontents.plist
index 03bc248b4..363065214 100644
--- a/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/layercontents.plist
+++ b/test-py/data/mutatorsans/MutatorSansLightCondensed.ufo/layercontents.plist
@@ -34,5 +34,17 @@
varco_flop
glyphs.varco_flop
+
+ weight=1
+ glyphs.weight=1
+
+
+ width=1
+ glyphs.width=1
+
+
+ width=1,weight=1
+ glyphs.width=1,weight=1
+
diff --git a/test-py/test_backend_designspace.py b/test-py/test_backend_designspace.py
index ff43712ca..05ee0539d 100644
--- a/test-py/test_backend_designspace.py
+++ b/test-py/test_backend_designspace.py
@@ -50,7 +50,9 @@ def readGLIFData(glyphName, ufoLayers):
}
-@pytest.mark.parametrize("glyphName", ["A", "B", "Q", "varcotest1", "varcotest2"])
+@pytest.mark.parametrize(
+ "glyphName", ["A", "B", "Q", "R.alt", "varcotest1", "varcotest2"]
+)
async def test_roundTripGlyph(writableTestFont, glyphName):
existingData = readGLIFData(glyphName, writableTestFont.ufoLayers)
glyphMap = await writableTestFont.getGlyphMap()
diff --git a/test-py/test_font.py b/test-py/test_font.py
index dff767aeb..1a67aa4df 100644
--- a/test-py/test_font.py
+++ b/test-py/test_font.py
@@ -849,8 +849,8 @@ def getTestFont(testFontName):
getGlyphNamesTestData = [
- ("designspace", 51, ["A", "Aacute", "Adieresis", "B"]),
- ("ufo", 51, ["A", "Aacute", "Adieresis", "B"]),
+ ("designspace", 52, ["A", "Aacute", "Adieresis", "B"]),
+ ("ufo", 52, ["A", "Aacute", "Adieresis", "B"]),
]
@@ -869,10 +869,10 @@ async def test_getGlyphNames(testFontName, numGlyphs, firstFourGlyphNames):
getGlyphMapTestData = [
(
"designspace",
- 51,
+ 52,
{"A": [ord("A"), ord("a")], "B": [ord("B"), ord("b")], "I.narrow": []},
),
- ("ufo", 51, {"A": [ord("A"), ord("a")], "B": [ord("B"), ord("b")], "I.narrow": []}),
+ ("ufo", 52, {"A": [ord("A"), ord("a")], "B": [ord("B"), ord("b")], "I.narrow": []}),
]