def test_proxy_dir(self): # dir on a deletex proxy should return an empty list, # not throw. for cls in [NonCallableClass, CallableClass]: def run_test(): a = cls() b = _weakref.proxy(a) self.assertEqual(dir(a), dir(b)) del(a) return b prxy = run_test() gc.collect() # gc collection seems to take longer on OSX if is_osx: time.sleep(2) #This will fail if original object has not been garbage collected. self.assertEqual(dir(prxy), [])
from IronPythonTest import CSharpEnumerable a = CSharpEnumerable() for method in ('GetEnumerableOfInt', 'GetEnumerableOfObject', 'GetEnumerable', 'GetEnumeratorOfInt', 'GetEnumeratorOfObject', 'GetEnumerator'): sum = 0 for i in getattr(a, method)(): sum = sum + i self.assertEqual(sum, 6) def test_error(self): l = [] self.assertRaisesPartialMessage(TypeError, "'builtin_function_or_method' object is not subscriptable", lambda: l.append[float](1.0)) self.assertRaisesPartialMessage(TypeError, "'int' object is not subscriptable", lambda: 1[2]) def test_cp19350_index_restrictions(self): global keyValue class X(object): def __setitem__(self, key, value): global keyValue keyValue = key def f(a, b): X()[a, b] = object() f(1, 2) self.assertEqual(keyValue, (1, 2)) f('one', 'two') self.assertEqual(keyValue, ('one', 'two')) run_test(__name__)
"c") def test_enumerate(self): class MyIndex(object): def __init__(self, value): self.value = value def __index__(self): return self.value for value_maker in MyIndex, lambda x: x: self.assertEqual([(10, 2), (11, 3), (12, 4)], list(enumerate([2, 3, 4], value_maker(10)))) self.assertEqual([(10, 2), (11, 3), (12, 4)], list(enumerate([2, 3, 4], start=value_maker(10)))) self.assertEqual([(2147483647, 2), (2147483648, 3), (2147483649, 4)], list( enumerate([2, 3, 4], value_maker(int((1 << 31) - 1))))) self.assertEqual([(2147483648, 2), (2147483649, 3), (2147483650, 4)], list(enumerate([2, 3, 4], value_maker(1 << 31)))) # temp_func = in_main() # locals_globals = 7 # temp_func() run_test(__name__)