Harness can now test object methods directly, if they aren't available

in the string module.

Add a bunch of new tests for extended startswith/endswith arguments.
This commit is contained in:
Barry Warsaw 1999-06-11 17:48:07 +00:00
parent 13205609c5
commit 8a9514a660
1 changed files with 14 additions and 2 deletions

View File

@ -4,9 +4,13 @@ import string, sys
def test(name, input, output, *args):
if verbose:
print 'string.%s%s =? %s... ' % (name, (input,) + args, output),
f = getattr(string, name)
try:
value = apply(f, (input,) + args)
try:
f = getattr(string, name)
value = apply(f, (input,) + args)
except AttributeError:
f = getattr(input, name)
value = apply(f, args)
except:
value = sys.exc_type
if value != output:
@ -104,6 +108,14 @@ test('endswith', 'hello', 1, 'lo')
test('endswith', 'hello', 0, 'he')
test('endswith', 'hello', 1, '')
test('endswith', 'hello', 0, 'hello world')
test('endswith', 'helloworld', 0, 'worl')
test('endswith', 'helloworld', 1, 'worl', 3, 9)
test('endswith', 'helloworld', 1, 'world', 3, 12)
test('endswith', 'helloworld', 1, 'lowo', 1, 7)
test('endswith', 'helloworld', 1, 'lowo', 2, 7)
test('endswith', 'helloworld', 1, 'lowo', 3, 7)
test('endswith', 'helloworld', 0, 'lowo', 4, 7)
test('endswith', 'helloworld', 0, 'lowo', 3, 8)
string.whitespace
string.lowercase