From 55b11e6d38731ffb1a7378f936c940c61aef8743 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Fri, 4 Sep 2015 16:49:56 +0100
Subject: [PATCH] py/objstr: For str.endswith(s, start) raise NotImpl instead
 of assert.

---
 py/objstr.c                     | 4 +++-
 tests/misc/non_compliant.py     | 6 ++++++
 tests/misc/non_compliant.py.exp | 1 +
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/py/objstr.c b/py/objstr.c
index 274e76daa..704fa07e1 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -699,7 +699,9 @@ STATIC mp_obj_t str_startswith(mp_uint_t n_args, const mp_obj_t *args) {
 STATIC mp_obj_t str_endswith(mp_uint_t n_args, const mp_obj_t *args) {
     GET_STR_DATA_LEN(args[0], str, str_len);
     GET_STR_DATA_LEN(args[1], suffix, suffix_len);
-    assert(n_args == 2);
+    if (n_args > 2) {
+        mp_not_implemented("start/end indices");
+    }
 
     if (suffix_len > str_len) {
         return mp_const_false;
diff --git a/tests/misc/non_compliant.py b/tests/misc/non_compliant.py
index 09abac238..de8457906 100644
--- a/tests/misc/non_compliant.py
+++ b/tests/misc/non_compliant.py
@@ -52,6 +52,12 @@ try:
 except NotImplementedError:
     print('NotImplementedError')
 
+# str.endswith(s, start) not implemented
+try:
+    'abc'.endswith('c', 1)
+except NotImplementedError:
+    print('NotImplementedError')
+
 # bytes(...) with keywords not implemented
 try:
     bytes('abc', encoding='utf8')
diff --git a/tests/misc/non_compliant.py.exp b/tests/misc/non_compliant.py.exp
index 9278034aa..28b1470d7 100644
--- a/tests/misc/non_compliant.py.exp
+++ b/tests/misc/non_compliant.py.exp
@@ -8,3 +8,4 @@ NotImplementedError
 NotImplementedError
 NotImplementedError
 NotImplementedError
+NotImplementedError
-- 
GitLab