예제 #1
0
    def test_assignment(self):
        my_local = corolocal.local()
        my_local.a = 1

        def do_something():
            my_local.b = 2
            self.assertEqual(my_local.b, 2)
            try:
                my_local.a
                self.fail()
            except AttributeError:
                pass

        spawn(do_something).wait()
        self.assertEqual(my_local.a, 1)
예제 #2
0
파일: test_thread.py 프로젝트: inercia/evy
    def test_assignment (self):
        my_local = corolocal.local()
        my_local.a = 1

        def do_something ():
            my_local.b = 2
            self.assertEqual(my_local.b, 2)
            try:
                my_local.a
                self.fail()
            except AttributeError:
                pass

        spawn(do_something).wait()
        self.assertEqual(my_local.a, 1)
예제 #3
0
    def test_no_leaking(self):
        refs = weakref.WeakKeyDictionary()
        my_local = corolocal.local()

        class X(object):
            pass

        def do_something(i):
            o = X()
            refs[o] = True
            my_local.foo = o

        p = GreenPool()
        for i in xrange(100):
            p.spawn(do_something, i)
        p.waitall()
        del p
        # at this point all our coros have terminated
        self.assertEqual(len(refs), 1)
예제 #4
0
파일: test_thread.py 프로젝트: inercia/evy
    def test_no_leaking (self):
        refs = weakref.WeakKeyDictionary()
        my_local = corolocal.local()

        class X(object):
            pass

        def do_something (i):
            o = X()
            refs[o] = True
            my_local.foo = o

        p = GreenPool()
        for i in xrange(100):
            p.spawn(do_something, i)
        p.waitall()
        del p
        # at this point all our coros have terminated
        self.assertEqual(len(refs), 1)