diff options
Diffstat (limited to 'tests/thread_test.py')
| -rw-r--r-- | tests/thread_test.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/tests/thread_test.py b/tests/thread_test.py index e54f022..15fab2e 100644 --- a/tests/thread_test.py +++ b/tests/thread_test.py @@ -1,13 +1,12 @@ import gc import weakref -from eventlet.green import thread -from eventlet import greenthread -from eventlet import event import eventlet from eventlet import corolocal +from eventlet import event +from eventlet import greenthread +from eventlet.green import thread from eventlet.support import six - from tests import LimitedTestCase, skipped @@ -29,11 +28,13 @@ class Locals(LimitedTestCase): tls = thread._local() g_ids = [] evt = event.Event() + def setter(tls, v): g_id = id(greenthread.getcurrent()) g_ids.append(g_id) tls.value = v evt.wait() + thread.start_new_thread(setter, args=(tls, 1)) thread.start_new_thread(setter, args=(tls, 2)) eventlet.sleep() @@ -48,6 +49,7 @@ class Locals(LimitedTestCase): 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) @@ -56,23 +58,25 @@ class Locals(LimitedTestCase): self.fail() except AttributeError: pass + eventlet.spawn(do_something).wait() self.assertEqual(my_local.a, 1) def test_calls_init(self): init_args = [] + class Init(corolocal.local): def __init__(self, *args): init_args.append((args, eventlet.getcurrent())) - my_local = Init(1,2,3) - self.assertEqual(init_args[0][0], (1,2,3)) + my_local = Init(1, 2, 3) + self.assertEqual(init_args[0][0], (1, 2, 3)) self.assertEqual(init_args[0][1], eventlet.getcurrent()) def do_something(): my_local.foo = 'bar' self.assertEqual(len(init_args), 2, init_args) - self.assertEqual(init_args[1][0], (1,2,3)) + self.assertEqual(init_args[1][0], (1, 2, 3)) self.assertEqual(init_args[1][1], eventlet.getcurrent()) eventlet.spawn(do_something).wait() @@ -98,8 +102,10 @@ class Locals(LimitedTestCase): 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 |
