Skip to content

Commit c9016b4

Browse files
committed
tests/basics: Split MicroPython-specific deque tests to separate file.
So that the MicroPython-specific behaviour can be isolated, and the CPython compatible test don't need a .exp file. Signed-off-by: Damien George <damien@micropython.org>
1 parent bf18ddd commit c9016b4

3 files changed

Lines changed: 76 additions & 78 deletions

File tree

tests/basics/deque2.py

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# Tests for deques with "check overflow" flag and other extensions
2-
# wrt to CPython.
31
try:
42
from collections import deque
53
except ImportError:
@@ -43,69 +41,3 @@
4341
d[4] = 0
4442
except IndexError:
4543
print("IndexError")
46-
47-
# Removing elements with del is not supported, fall back on mp_obj_subscr() error message
48-
try:
49-
del d[0]
50-
except TypeError:
51-
print("TypeError")
52-
53-
54-
# Only fixed-size deques are supported, so length arg is mandatory
55-
try:
56-
deque(())
57-
except TypeError:
58-
print("TypeError")
59-
60-
d = deque((), 2, True)
61-
62-
try:
63-
d.popleft()
64-
except IndexError:
65-
print("IndexError")
66-
67-
try:
68-
d.pop()
69-
except IndexError:
70-
print("IndexError")
71-
72-
print(d.append(1))
73-
print(d.popleft())
74-
75-
d.append(2)
76-
print(d.popleft())
77-
78-
d.append(3)
79-
d.append(4)
80-
print(d.popleft(), d.popleft())
81-
try:
82-
d.popleft()
83-
except IndexError as e:
84-
print(repr(e))
85-
86-
try:
87-
d.pop()
88-
except IndexError as e:
89-
print(repr(e))
90-
91-
d.append(5)
92-
d.append(6)
93-
print(len(d))
94-
try:
95-
d.append(7)
96-
except IndexError as e:
97-
print(repr(e))
98-
99-
try:
100-
d.appendleft(8)
101-
except IndexError as e:
102-
print(repr(e))
103-
104-
print(len(d))
105-
106-
print(d.popleft(), d.popleft())
107-
print(len(d))
108-
try:
109-
d.popleft()
110-
except IndexError as e:
111-
print(repr(e))

tests/basics/deque_micropython.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Test MicroPython-specific features of collections.deque.
2+
3+
try:
4+
from collections import deque
5+
except ImportError:
6+
print("SKIP")
7+
raise SystemExit
8+
9+
10+
# Only fixed-size deques are supported, so length arg is mandatory.
11+
try:
12+
deque(())
13+
except TypeError:
14+
print("TypeError")
15+
16+
# Test third argument: flags when True means check for under/overflow
17+
d = deque((), 2, True)
18+
19+
try:
20+
d.popleft()
21+
except IndexError:
22+
print("IndexError")
23+
24+
try:
25+
d.pop()
26+
except IndexError:
27+
print("IndexError")
28+
29+
# Removing elements with del is not supported, fallback to
30+
# mp_obj_subscr() error message.
31+
try:
32+
del d[0]
33+
except TypeError:
34+
print("TypeError")
35+
36+
print(d.append(1))
37+
print(d.popleft())
38+
39+
d.append(2)
40+
print(d.popleft())
41+
42+
d.append(3)
43+
d.append(4)
44+
print(d.popleft(), d.popleft())
45+
try:
46+
d.popleft()
47+
except IndexError as e:
48+
print(repr(e))
49+
50+
try:
51+
d.pop()
52+
except IndexError as e:
53+
print(repr(e))
54+
55+
d.append(5)
56+
d.append(6)
57+
print(len(d))
58+
try:
59+
d.append(7)
60+
except IndexError as e:
61+
print(repr(e))
62+
63+
try:
64+
d.appendleft(8)
65+
except IndexError as e:
66+
print(repr(e))
67+
68+
print(len(d))
69+
70+
print(d.popleft(), d.popleft())
71+
print(len(d))
72+
try:
73+
d.popleft()
74+
except IndexError as e:
75+
print(repr(e))
Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,7 @@
1-
1
2-
2
3-
3
4-
[3, 4, 5]
5-
[5, 6, 7]
6-
0 1 3
7-
5
8-
IndexError
9-
IndexError
10-
TypeError
111
TypeError
122
IndexError
133
IndexError
4+
TypeError
145
None
156
1
167
2

0 commit comments

Comments
 (0)