def testRoundTripVersion1(self): infoObject = RInfo() for attr, value in fontInfoVersion1.items(): if attr not in ufoLib.deprecatedFontInfoAttributesVersion2: setattr(infoObject, attr, value) for attr, expectedValue in fontInfoVersion1.items(): if attr not in ufoLib.deprecatedFontInfoAttributesVersion2: value = getattr(infoObject, attr) self.assertEqual((attr, expectedValue), (attr, value))
def testVersion1DeprecationRoundTrip(self): """ unittest doesn't catch warnings in self.assertRaises, so some hackery is required to catch the warnings that are raised when setting deprecated attributes. """ saveStderr = sys.stderr tempStderr = StringIO() sys.stderr = tempStderr infoObject = RInfo() requiredWarnings = [] try: for attr, value in fontInfoVersion1.items(): if attr in ufoLib.deprecatedFontInfoAttributesVersion2: setattr(infoObject, attr, value) v = getattr(infoObject, attr) self.assertEquals((attr, value), (attr, v)) s = "DeprecationWarning: The %s attribute has been deprecated." % attr requiredWarnings.append((attr, s)) finally: sys.stderr = saveStderr tempStderr = tempStderr.getvalue() for attr, line in requiredWarnings: self.assertEquals((attr, line in tempStderr), (attr, True))
def testVersion1DeprecationRoundTrip(self): saveStderr = sys.stderr saveStdout = sys.stdout tempStderr = StringIO() sys.stderr = tempStderr sys.stdout = tempStderr font = NewFont() infoObject = font.info requiredWarnings = [] try: for attr, value in fontInfoVersion1.items(): if attr in ufoLib.deprecatedFontInfoAttributesVersion2: setattr(infoObject, attr, value) v = getattr(infoObject, attr) self.assertEquals((attr, value), (attr, v)) s = "DeprecationWarning: The %s attribute has been deprecated." % attr requiredWarnings.append((attr, s)) finally: sys.stderr = saveStderr sys.stdout = saveStdout tempStderr = tempStderr.getvalue() for attr, line in requiredWarnings: self.assertEquals((attr, line in tempStderr), (attr, True)) font.close()