Staging
v0.8.1
v0.8.1
https://github.com/python/cpython
Tip revision: 24f7c89e6387ae538c493babd3e62c548b834b4a authored by cvs2svn on 07 October 2002, 21:38:58 UTC
This commit was manufactured by cvs2svn to create tag 'r222b1'.
This commit was manufactured by cvs2svn to create tag 'r222b1'.
Tip revision: 24f7c89
test_string.py
from test_support import verbose, TestSkipped
import string_tests
import string, sys
# XXX: kludge... short circuit if strings don't have methods
try:
''.join
except AttributeError:
raise TestSkipped
def test(name, input, output, *args):
if verbose:
print 'string.%s%s =? %s... ' % (name, (input,) + args, output),
try:
# Prefer string methods over string module functions
try:
f = getattr(input, name)
value = apply(f, args)
except AttributeError:
f = getattr(string, name)
value = apply(f, (input,) + args)
except:
value = sys.exc_type
f = name
if value == output:
# if the original is returned make sure that
# this doesn't happen with subclasses
if value is input:
class ssub(str):
def __repr__(self):
return 'ssub(%r)' % str.__repr__(self)
input = ssub(input)
try:
f = getattr(input, name)
value = apply(f, args)
except AttributeError:
f = getattr(string, name)
value = apply(f, (input,) + args)
if value is input:
if verbose:
print 'no'
print '*',f, `input`, `output`, `value`
return
if value != output:
if verbose:
print 'no'
print f, `input`, `output`, `value`
else:
if verbose:
print 'yes'
string_tests.run_module_tests(test)
string_tests.run_method_tests(test)
string.whitespace
string.lowercase
string.uppercase