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>
pull/14121/head
Damien George 2024-03-18 22:41:28 +11:00
rodzic bf18ddd989
commit c9016b4979
3 zmienionych plików z 76 dodań i 78 usunięć

Wyświetl plik

@ -1,5 +1,3 @@
# Tests for deques with "check overflow" flag and other extensions
# wrt to CPython.
try:
from collections import deque
except ImportError:
@ -43,69 +41,3 @@ try:
d[4] = 0
except IndexError:
print("IndexError")
# Removing elements with del is not supported, fall back on mp_obj_subscr() error message
try:
del d[0]
except TypeError:
print("TypeError")
# Only fixed-size deques are supported, so length arg is mandatory
try:
deque(())
except TypeError:
print("TypeError")
d = deque((), 2, True)
try:
d.popleft()
except IndexError:
print("IndexError")
try:
d.pop()
except IndexError:
print("IndexError")
print(d.append(1))
print(d.popleft())
d.append(2)
print(d.popleft())
d.append(3)
d.append(4)
print(d.popleft(), d.popleft())
try:
d.popleft()
except IndexError as e:
print(repr(e))
try:
d.pop()
except IndexError as e:
print(repr(e))
d.append(5)
d.append(6)
print(len(d))
try:
d.append(7)
except IndexError as e:
print(repr(e))
try:
d.appendleft(8)
except IndexError as e:
print(repr(e))
print(len(d))
print(d.popleft(), d.popleft())
print(len(d))
try:
d.popleft()
except IndexError as e:
print(repr(e))

Wyświetl plik

@ -0,0 +1,75 @@
# Test MicroPython-specific features of collections.deque.
try:
from collections import deque
except ImportError:
print("SKIP")
raise SystemExit
# Only fixed-size deques are supported, so length arg is mandatory.
try:
deque(())
except TypeError:
print("TypeError")
# Test third argument: flags when True means check for under/overflow
d = deque((), 2, True)
try:
d.popleft()
except IndexError:
print("IndexError")
try:
d.pop()
except IndexError:
print("IndexError")
# Removing elements with del is not supported, fallback to
# mp_obj_subscr() error message.
try:
del d[0]
except TypeError:
print("TypeError")
print(d.append(1))
print(d.popleft())
d.append(2)
print(d.popleft())
d.append(3)
d.append(4)
print(d.popleft(), d.popleft())
try:
d.popleft()
except IndexError as e:
print(repr(e))
try:
d.pop()
except IndexError as e:
print(repr(e))
d.append(5)
d.append(6)
print(len(d))
try:
d.append(7)
except IndexError as e:
print(repr(e))
try:
d.appendleft(8)
except IndexError as e:
print(repr(e))
print(len(d))
print(d.popleft(), d.popleft())
print(len(d))
try:
d.popleft()
except IndexError as e:
print(repr(e))

Wyświetl plik

@ -1,16 +1,7 @@
1
2
3
[3, 4, 5]
[5, 6, 7]
0 1 3
5
IndexError
IndexError
TypeError
TypeError
IndexError
IndexError
TypeError
None
1
2