circuitpython/tests/basics/string_endswith.py
Glenn Moloney eb45d97898 py/objstr: Support tuples and start/end args in startswith and endswith.
This change allows tuples to be passed as the prefix/suffix argument to the
`str.startswith()` and `str.endswith()` methods.  The methods will return
`True` if the string starts/ends with any of the prefixes/suffixes in the
tuple.

Also adds full support for the `start` and `end` arguments to both methods
for compatibility with CPython.

Tests have been updated for the new behaviour.

Signed-off-by: Glenn Moloney <glenn.moloney@gmail.com>
2025-03-02 22:15:31 +11:00

34 lines
1 KiB
Python

print("foobar".endswith("bar"))
print("foobar".endswith("baR"))
print("foobar".endswith("bar1"))
print("foobar".endswith("foobar"))
print("foobar".endswith(""))
print("foobar".endswith("foobarbaz"))
print("foobar".endswith("bar", 3))
print("foobar".endswith("bar", 4))
print("foobar".endswith("foo", 0, 3))
print("foobar".endswith("foo", 0, 4))
print("foobar".endswith("foo", 1, 3))
print("foobar".endswith("foo", 1, 3))
print("foobar".endswith("oo", 1, 3))
print("foobar".endswith("o", 2, 3))
print("foobar".endswith("o", 3, 3))
print("foobar".endswith("o", 4, 3))
print("foobar".endswith("bar", None, None))
print("foobar".endswith("bar", None, 3))
print("foobar".endswith("bar", 3, None))
print("foobar".endswith("bar", 2, None))
print("foobar".endswith("foo", None, 3))
print("foobar".endswith(("bar", "foo")))
print("foobar".endswith(("foo", "bar")))
print("foobar".endswith(("foo", "bar1")))
print("foobar".endswith(("bar", )))
print("foobar".endswith(("foo", )))
try:
"foobar".endswith(1)
except TypeError:
print("TypeError")