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), [])
示例#2
0
        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__)
示例#3
0
            "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__)