def testEdgeCases(self): from objc._pythonify import numberWrapper n = objc.lookUpClass('NSObject').alloc().init() with filterWarnings("error", RuntimeWarning): self.assertRaises(RuntimeWarning, numberWrapper, n) with filterWarnings("ignore", RuntimeWarning): self.assertIs(numberWrapper(n), n) # Fake number class, to ensure that all of # numberWrapper can be tested with a 64-bit runtime class Number (objc.lookUpClass("NSObject")): def objCType(self): return objc._C_INT def longValue(self): return 42 n = Number.alloc().init() v = numberWrapper(n) self.assertEqual(v, 42) self.assertIs(v.__pyobjc_object__, n)
def testEdgeCases(self): from objc._pythonify import numberWrapper n = objc.lookUpClass('NSObject').alloc().init() with warnings.catch_warnings(record=True) as w: numberWrapper(n) self.assertEqual(len(w), 1) self.assertEqual(w[0].category, RuntimeWarning) with warnings.catch_warnings(): self.assertIs(numberWrapper(n), n) # Fake number class, to ensure that all of # numberWrapper can be tested with a 64-bit runtime class Number(objc.lookUpClass("NSObject")): def objCType(self): return objc._C_INT def longValue(self): return 42 n = Number.alloc().init() v = numberWrapper(n) self.assertEqual(v, 42) self.assertIs(v.__pyobjc_object__, n)
def testDecimal(self): NSDecimalNumber = objc.lookUpClass("NSDecimalNumber") v = NSDecimalNumber.numberWithInt_(10) self.assertIsInstance(v, NSDecimalNumber) from objc._pythonify import numberWrapper o = numberWrapper(v) self.assertIs(o, v)