Commit 37b273c8 authored by Barry Warsaw's avatar Barry Warsaw

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.
parent e1e6bc22
...@@ -4,9 +4,13 @@ import string, sys ...@@ -4,9 +4,13 @@ import string, sys
def test(name, input, output, *args): def test(name, input, output, *args):
if verbose: if verbose:
print 'string.%s%s =? %s... ' % (name, (input,) + args, output), print 'string.%s%s =? %s... ' % (name, (input,) + args, output),
f = getattr(string, name)
try: try:
try:
f = getattr(string, name)
value = apply(f, (input,) + args) value = apply(f, (input,) + args)
except AttributeError:
f = getattr(input, name)
value = apply(f, args)
except: except:
value = sys.exc_type value = sys.exc_type
if value != output: if value != output:
...@@ -104,6 +108,14 @@ test('endswith', 'hello', 1, 'lo') ...@@ -104,6 +108,14 @@ test('endswith', 'hello', 1, 'lo')
test('endswith', 'hello', 0, 'he') test('endswith', 'hello', 0, 'he')
test('endswith', 'hello', 1, '') test('endswith', 'hello', 1, '')
test('endswith', 'hello', 0, 'hello world') 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.whitespace
string.lowercase string.lowercase
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment