aboutsummaryrefslogtreecommitdiff
path: root/tests/basics
diff options
context:
space:
mode:
authorDamien George2016-10-11 12:30:32 +1100
committerDamien George2016-10-11 12:30:32 +1100
commit5e22afce41de8c87071d8fc149a6ba3cd8762819 (patch)
treecc8960bfe8bb7949ad5dd6a099ae3e390cb58359 /tests/basics
parente49153fb98ade48395b80271093bd763e771b3da (diff)
tests: Improve test coverage of py/compile.c.
Diffstat (limited to 'tests/basics')
-rw-r--r--tests/basics/async_def.py16
-rw-r--r--tests/basics/async_def.py.exp3
-rw-r--r--tests/basics/async_with.py4
-rw-r--r--tests/basics/async_with.py.exp1
-rw-r--r--tests/basics/del_global.py5
-rw-r--r--tests/basics/for_range.py5
-rw-r--r--tests/basics/syntaxerror.py4
-rw-r--r--tests/basics/unpack1.py1
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