summaryrefslogtreecommitdiff
path: root/tests/basics
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-08-29 00:06:21 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-08-29 00:06:21 +0300
commit37379a2974190ab0fc97f840112d5a40c907368b (patch)
tree7c4d0ce9e82aa58ca8af5198a57f1e3211fb7a82 /tests/basics
parentc5c095690fc8294068e88c71baca92bf757ad91c (diff)
py/objstr: startswith, endswith: Check arg to be a string.
Otherwise, it will silently get incorrect result on other values types, including CPython tuple form like "foo.png".endswith(("png", "jpg")) (which MicroPython doesn't support for unbloatedness).
Diffstat (limited to 'tests/basics')
-rw-r--r--tests/basics/string_endswith.py5
-rw-r--r--tests/basics/string_endswith_upy.py6
-rw-r--r--tests/basics/string_endswith_upy.py.exp1
-rw-r--r--tests/basics/string_startswith.py5
-rw-r--r--tests/basics/string_startswith_upy.py6
-rw-r--r--tests/basics/string_startswith_upy.py.exp1
6 files changed, 24 insertions, 0 deletions
diff --git a/tests/basics/string_endswith.py b/tests/basics/string_endswith.py
index 3e8fba925..683562d10 100644
--- a/tests/basics/string_endswith.py
+++ b/tests/basics/string_endswith.py
@@ -10,3 +10,8 @@ print("foobar".endswith("foobarbaz"))
#print("1foo".startswith("1foo", 1))
#print("1fo".startswith("foo", 1))
#print("1fo".startswith("foo", 10))
+
+try:
+ "foobar".endswith(1)
+except TypeError:
+ print("TypeError")
diff --git a/tests/basics/string_endswith_upy.py b/tests/basics/string_endswith_upy.py
new file mode 100644
index 000000000..06a4e71d2
--- /dev/null
+++ b/tests/basics/string_endswith_upy.py
@@ -0,0 +1,6 @@
+# MicroPython doesn't support tuple argument
+
+try:
+ "foobar".endswith(("bar", "sth"))
+except TypeError:
+ print("TypeError")
diff --git a/tests/basics/string_endswith_upy.py.exp b/tests/basics/string_endswith_upy.py.exp
new file mode 100644
index 000000000..6002b71c5
--- /dev/null
+++ b/tests/basics/string_endswith_upy.py.exp
@@ -0,0 +1 @@
+TypeError
diff --git a/tests/basics/string_startswith.py b/tests/basics/string_startswith.py
index 5cf730c03..e63ae3c18 100644
--- a/tests/basics/string_startswith.py
+++ b/tests/basics/string_startswith.py
@@ -9,3 +9,8 @@ print("1foo".startswith("foo", 1))
print("1foo".startswith("1foo", 1))
print("1fo".startswith("foo", 1))
print("1fo".startswith("foo", 10))
+
+try:
+ "foobar".startswith(1)
+except TypeError:
+ print("TypeError")
diff --git a/tests/basics/string_startswith_upy.py b/tests/basics/string_startswith_upy.py
new file mode 100644
index 000000000..9ea1796c2
--- /dev/null
+++ b/tests/basics/string_startswith_upy.py
@@ -0,0 +1,6 @@
+# MicroPython doesn't support tuple argument
+
+try:
+ "foobar".startswith(("foo", "sth"))
+except TypeError:
+ print("TypeError")
diff --git a/tests/basics/string_startswith_upy.py.exp b/tests/basics/string_startswith_upy.py.exp
new file mode 100644
index 000000000..6002b71c5
--- /dev/null
+++ b/tests/basics/string_startswith_upy.py.exp
@@ -0,0 +1 @@
+TypeError