diff options
| author | Damien George | 2016-10-11 12:30:32 +1100 |
|---|---|---|
| committer | Damien George | 2016-10-11 12:30:32 +1100 |
| commit | 5e22afce41de8c87071d8fc149a6ba3cd8762819 (patch) | |
| tree | cc8960bfe8bb7949ad5dd6a099ae3e390cb58359 /tests/basics | |
| parent | e49153fb98ade48395b80271093bd763e771b3da (diff) | |
tests: Improve test coverage of py/compile.c.
Diffstat (limited to 'tests/basics')
| -rw-r--r-- | tests/basics/async_def.py | 16 | ||||
| -rw-r--r-- | tests/basics/async_def.py.exp | 3 | ||||
| -rw-r--r-- | tests/basics/async_with.py | 4 | ||||
| -rw-r--r-- | tests/basics/async_with.py.exp | 1 | ||||
| -rw-r--r-- | tests/basics/del_global.py | 5 | ||||
| -rw-r--r-- | tests/basics/for_range.py | 5 | ||||
| -rw-r--r-- | tests/basics/syntaxerror.py | 4 | ||||
| -rw-r--r-- | tests/basics/unpack1.py | 1 |
8 files changed, 38 insertions, 1 deletions
diff --git a/tests/basics/async_def.py b/tests/basics/async_def.py new file mode 100644 index 000000000..e345703d7 --- /dev/null +++ b/tests/basics/async_def.py @@ -0,0 +1,16 @@ +# test async def + +def dec(f): + print('decorator') + return f + +# test definition with a decorator +@dec +async def foo(): + print('foo') + +coro = foo() +try: + coro.send(None) +except StopIteration: + print('StopIteration') diff --git a/tests/basics/async_def.py.exp b/tests/basics/async_def.py.exp new file mode 100644 index 000000000..f555ace99 --- /dev/null +++ b/tests/basics/async_def.py.exp @@ -0,0 +1,3 @@ +decorator +foo +StopIteration diff --git a/tests/basics/async_with.py b/tests/basics/async_with.py index 9eccfd816..5af0c5d95 100644 --- a/tests/basics/async_with.py +++ b/tests/basics/async_with.py @@ -3,6 +3,7 @@ class AContext: async def __aenter__(self): print('enter') + return 1 async def __aexit__(self, exc_type, exc, tb): print('exit', exc_type, exc) @@ -17,7 +18,8 @@ except StopIteration: print('finished') async def g(): - async with AContext(): + async with AContext() as ac: + print(ac) raise ValueError('error') o = g() diff --git a/tests/basics/async_with.py.exp b/tests/basics/async_with.py.exp index 6072a3e0b..d00b18c96 100644 --- a/tests/basics/async_with.py.exp +++ b/tests/basics/async_with.py.exp @@ -3,5 +3,6 @@ body exit None None finished enter +1 exit <class 'ValueError'> error ValueError diff --git a/tests/basics/del_global.py b/tests/basics/del_global.py index 77d11cb3c..d740357b0 100644 --- a/tests/basics/del_global.py +++ b/tests/basics/del_global.py @@ -54,3 +54,8 @@ try: print(c) except NameError: print("NameError") + +a = 1 +b = 2 +c = 3 +del (a, (b, c)) diff --git a/tests/basics/for_range.py b/tests/basics/for_range.py index ddff5ebd4..58a8f7caa 100644 --- a/tests/basics/for_range.py +++ b/tests/basics/for_range.py @@ -35,6 +35,11 @@ try: except TypeError: print('TypeError') try: + for x in range(start=0, end=1): + print(x) +except TypeError: + print('TypeError') +try: for x in range(0, 1, step=1): print(x) except TypeError: diff --git a/tests/basics/syntaxerror.py b/tests/basics/syntaxerror.py index 2ae0183f8..e5cbbac06 100644 --- a/tests/basics/syntaxerror.py +++ b/tests/basics/syntaxerror.py @@ -49,6 +49,9 @@ test_syntax("f[0]**2 = 1") # can't assign to empty tuple test_syntax("() = 1") +# can't have *x on RHS +test_syntax("x = *x") + # can't have multiple *x on LHS test_syntax("*a, *b = c") @@ -76,6 +79,7 @@ test_syntax("continue") test_syntax("return") test_syntax("yield") test_syntax("nonlocal a") +test_syntax("await 1") # error on uPy, warning on CPy #test_syntax("def f():\n a = 1\n global a") diff --git a/tests/basics/unpack1.py b/tests/basics/unpack1.py index 10e01dea0..0e8ec592c 100644 --- a/tests/basics/unpack1.py +++ b/tests/basics/unpack1.py @@ -12,6 +12,7 @@ a, b, c = range(3); print(a, b, c) (a,) = range(1); print(a) (a, b) = range(2); print(a, b) (a, b, c) = range(3); print(a, b, c) +(a, (b, c)) = [-1, range(2)]; print(a, b, c) # lists |
