summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--py/objstr.c3
-rw-r--r--tests/basics/tests/string-format.py8
2 files changed, 10 insertions, 1 deletions
diff --git a/py/objstr.c b/py/objstr.c
index 0621a8df75..7c1be50cc0 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -270,7 +270,8 @@ mp_obj_t str_format(int n_args, const mp_obj_t *args) {
str++;
if (*str == '{') {
vstr_add_char(vstr, '{');
- } else if (*str == '}') {
+ } else {
+ while (*str != '}') str++;
if (arg_i >= n_args) {
nlr_jump(mp_obj_new_exception_msg(MP_QSTR_IndexError, "tuple index out of range"));
}
diff --git a/tests/basics/tests/string-format.py b/tests/basics/tests/string-format.py
new file mode 100644
index 0000000000..ba51e0890b
--- /dev/null
+++ b/tests/basics/tests/string-format.py
@@ -0,0 +1,8 @@
+print("{}-{}".format(1, [4, 5]))
+print("{0}-{1}".format(1, [4, 5]))
+print("{:x}".format(1))
+print("{!r}".format(2))
+# TODO
+#print("{1}-{0}".format(1, [4, 5]))
+#print("{:x}".format(0x10))
+#print("{!r}".format("foo"))