diff --git a/Lib/fontParts/base/base.py b/Lib/fontParts/base/base.py index dbcadb50..39bc35b4 100644 --- a/Lib/fontParts/base/base.py +++ b/Lib/fontParts/base/base.py @@ -335,7 +335,7 @@ def copyData(self: BaseObjectType, source: BaseObjectType) -> None: if isinstance(selfValue, BaseObject): selfValue.copyData(sourceValue) else: - setattr(self, attr, sourceValue) + setattr(self, attr, deepcopy(sourceValue)) # ---------- # Exceptions diff --git a/Lib/fontParts/test/test_info.py b/Lib/fontParts/test/test_info.py index 3e10eca7..928ed147 100644 --- a/Lib/fontParts/test/test_info.py +++ b/Lib/fontParts/test/test_info.py @@ -95,6 +95,18 @@ def test_update(self): self.assertEqual(info1.familyName, "test2") self.assertEqual(info1.unitsPerEm, 2000) + # ---- + # Copy + # ---- + def test_copy(self): + info1 = self.getInfo_generic() + info1.postscriptBlueValues = [-10, 0, 50, 60] + + info2 = info1.copy() + info2.postscriptBlueValues[0] = -2 + + self.assertNotEqual(info1.postscriptBlueValues, info2.postscriptBlueValues) + # ------------- # Interpolation # -------------