Browse Source

py/objstr: For str.endswith(s, start) raise NotImpl instead of assert.

pull/1453/head
Damien George 9 years ago
parent
commit
55b11e6d38
  1. 4
      py/objstr.c
  2. 6
      tests/misc/non_compliant.py
  3. 1
      tests/misc/non_compliant.py.exp

4
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;

6
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')

1
tests/misc/non_compliant.py.exp

@ -8,3 +8,4 @@ NotImplementedError
NotImplementedError
NotImplementedError
NotImplementedError
NotImplementedError

Loading…
Cancel
Save