Skip to content

Commit af43565

Browse files
committed
tests: Add tests for things that are not already tested.
The aim here is to improve coverage of the code.
1 parent 848dd0e commit af43565

14 files changed

Lines changed: 185 additions & 0 deletions

tests/basics/assign1.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# test assignments
2+
3+
a = 1
4+
print(a)
5+
6+
a = b = 2
7+
print(a, b)
8+
9+
a = b = c = 3
10+
print(a, b, c)
11+

tests/basics/decorator.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# test decorators
2+
3+
def dec(f):
4+
print('dec')
5+
return f
6+
7+
def dec_arg(x):
8+
print(x)
9+
return lambda f:f
10+
11+
# plain decorator
12+
@dec
13+
def f():
14+
pass
15+
16+
# decorator with arg
17+
@dec_arg('dec_arg')
18+
def g():
19+
pass
20+
21+
# decorator of class
22+
@dec
23+
class A:
24+
pass

tests/basics/del_global.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,41 @@ def do_del():
1616
except: # NameError:
1717
# FIXME uPy returns KeyError for this
1818
print("NameError")
19+
20+
# delete globals using a list
21+
22+
a = 1
23+
del (a,)
24+
try:
25+
print(a)
26+
except NameError:
27+
print("NameError")
28+
29+
a = 2
30+
b = 3
31+
del (a, b)
32+
try:
33+
print(a)
34+
except NameError:
35+
print("NameError")
36+
try:
37+
print(b)
38+
except NameError:
39+
print("NameError")
40+
41+
a = 1
42+
b = 2
43+
c = 3
44+
del (a, b, c)
45+
try:
46+
print(a)
47+
except NameError:
48+
print("NameError")
49+
try:
50+
print(b)
51+
except NameError:
52+
print("NameError")
53+
try:
54+
print(c)
55+
except NameError:
56+
print("NameError")

tests/basics/del_subscr.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@
1111
print(d)
1212
del d[5]
1313
print(d)
14+
15+
# delete nested subscr
16+
d = {0:{0:0}}
17+
del d[0][0]
18+
print(d)

tests/basics/ifcond.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,30 @@
3333
else:
3434
print(17)
3535

36+
if not False:
37+
print('a')
38+
39+
if not True:
40+
print('a')
41+
else:
42+
print('b')
43+
44+
if False:
45+
print('a')
46+
else:
47+
print('b')
48+
49+
if True:
50+
print('a')
51+
52+
if (1,):
53+
print('a')
54+
55+
if not (1,):
56+
print('a')
57+
else:
58+
print('b')
59+
3660
f2 = 0
3761

3862
def f(t1, t2, f1):

tests/basics/int_small.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@
2424

2525
# Operations tests
2626

27+
# compile-time constexprs
28+
print(1 + 3)
29+
print(3 - 2)
30+
print(2 * 3)
31+
print(1 & 3)
32+
print(1 | 2)
33+
print(1 ^ 3)
34+
print(+3)
35+
print(-3)
36+
print(~3)
37+
2738
a = 0x3fffff
2839
print(a)
2940
a *= 0x10

tests/basics/return1.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# test return statement
2+
3+
def f():
4+
return
5+
print(f())
6+
7+
def g():
8+
return 1
9+
print(g())
10+
11+
def f(x):
12+
return 1 if x else 2
13+
print(f(0), f(1))

tests/basics/seq_unpack.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@
1414
[a, b] = 100, 200
1515
print(a, b)
1616

17+
# optimised 3-way swap
18+
a = 1
19+
b = 2
20+
c = 3
21+
a, b, c = b, c, a
22+
print(a, b, c)
23+
1724
try:
1825
a, b, c = (1, 2)
1926
except ValueError:

tests/basics/string_join.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@
2222
print(','.join([b'abc', b'123']))
2323
except TypeError:
2424
print("TypeError")
25+
26+
# joined by the compiler
27+
print("a" "b")

tests/basics/unpack1.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,23 @@
22

33
a, = 1, ; print(a)
44
a, b = 2, 3 ; print(a, b)
5+
a, b, c = 1, 2, 3; print(a, b, c)
56

7+
a, = range(1); print(a)
68
a, b = range(2); print(a, b)
9+
a, b, c = range(3); print(a, b, c)
10+
11+
(a) = range(1); print(a)
12+
(a,) = range(1); print(a)
13+
(a, b) = range(2); print(a, b)
14+
(a, b, c) = range(3); print(a, b, c)
15+
16+
# lists
17+
18+
[] = []
19+
[a] = range(1); print(a)
20+
[a, b] = range(2); print(a, b)
21+
[a, b, c] = range(3); print(a, b, c)
722

823
# with star
924

@@ -27,6 +42,9 @@
2742
*b, = a
2843
print(a, b, a == b)
2944

45+
[*a] = [1, 2, 3]
46+
print(a)
47+
3048
try:
3149
a, *b, c = (30,)
3250
except ValueError:

0 commit comments

Comments
 (0)