def test_local_stack(): ident = local.get_ident() ls = local.LocalStack() assert ident not in ls._local.__storage__ assert ls.top is None ls.push(42) assert ident in ls._local.__storage__ assert ls.top == 42 ls.push(23) assert ls.top == 23 ls.pop() assert ls.top == 42 ls.pop() assert ls.top is None assert ls.pop() is None assert ls.pop() is None proxy = ls() ls.push([1, 2]) assert proxy == [1, 2] ls.push((1, 2)) assert proxy == (1, 2) ls.pop() ls.pop() assert repr(proxy) == '<LocalProxy unbound>' assert ident not in ls._local.__storage__
def test_local_release(): ns = local.Local() ns.foo = 42 local.release_local(ns) assert not hasattr(ns, "foo") ls = local.LocalStack() ls.push(42) local.release_local(ls) assert ls.top is None
def test_local_release(): l = local.Local() l.foo = 42 local.release_local(l) assert not hasattr(l, 'foo') ls = local.LocalStack() ls.push(42) local.release_local(ls) assert ls.top is None
def test_local_release(self): loc = local.Local() loc.foo = 42 local.release_local(loc) assert not hasattr(loc, 'foo') ls = local.LocalStack() ls.push(42) local.release_local(ls) assert ls.top is None
def test_local_stack_asyncio(): ls = local.LocalStack() ls.push(1) async def task(): ls.push(1) assert len(ls._local.stack) == 2 loop = asyncio.get_event_loop() futures = [asyncio.ensure_future(task()) for _ in range(3)] loop.run_until_complete(asyncio.gather(*futures))
def test_local_stack_asyncio(): ls = local.LocalStack() ls.push(1) async def task(): ls.push(1) assert len(ls._local.stack) == 2 async def main(): futures = [asyncio.ensure_future(task()) for _ in range(3)] await asyncio.gather(*futures) asyncio.run(main())
def test_proxy_fallback(): local_stack = local.LocalStack() local_proxy = local_stack() assert repr(local_proxy) == "<LocalProxy unbound>" assert isinstance(local_proxy, local.LocalProxy) assert local_proxy.__class__ is local.LocalProxy assert "LocalProxy" in local_proxy.__doc__ local_stack.push(42) assert repr(local_proxy) == "42" assert isinstance(local_proxy, int) assert local_proxy.__class__ is int assert "int(" in local_proxy.__doc__
def test_custom_idents(): ident = 0 l = local.Local() stack = local.LocalStack() local.LocalManager([l, stack], ident_func=lambda: ident) l.foo = 42 stack.push({'foo': 42}) ident = 1 l.foo = 23 stack.push({'foo': 23}) ident = 0 assert l.foo == 42 assert stack.top['foo'] == 42 stack.pop() assert stack.top is None ident = 1 assert l.foo == 23 assert stack.top['foo'] == 23 stack.pop() assert stack.top is None
def test_custom_idents(): ident = 0 ns = local.Local() stack = local.LocalStack() local.LocalManager([ns, stack], ident_func=lambda: ident) ns.foo = 42 stack.push({"foo": 42}) ident = 1 ns.foo = 23 stack.push({"foo": 23}) ident = 0 assert ns.foo == 42 assert stack.top["foo"] == 42 stack.pop() assert stack.top is None ident = 1 assert ns.foo == 23 assert stack.top["foo"] == 23 stack.pop() assert stack.top is None
def test_local_stack(): ls = local.LocalStack() assert ls.top is None ls.push(42) assert ls.top == 42 ls.push(23) assert ls.top == 23 ls.pop() assert ls.top == 42 ls.pop() assert ls.top is None assert ls.pop() is None assert ls.pop() is None proxy = ls() ls.push([1, 2]) assert proxy == [1, 2] ls.push((1, 2)) assert proxy == (1, 2) ls.pop() ls.pop() assert repr(proxy) == "<LocalProxy unbound>"