summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/async_with.py
blob: 5af0c5d955ccb597d8da0a9d6b7c5c794405b68e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# test simple async with execution

class AContext:
    async def __aenter__(self):
        print('enter')
        return 1
    async def __aexit__(self, exc_type, exc, tb):
        print('exit', exc_type, exc)

async def f():
    async with AContext():
        print('body')

o = f()
try:
    o.send(None)
except StopIteration:
    print('finished')

async def g():
    async with AContext() as ac:
        print(ac)
        raise ValueError('error')

o = g()
try:
    o.send(None)
except ValueError:
    print('ValueError')