This commit was manufactured by cvs2svn to create tag 'r222'.
[python/dscho.git] / Lib / test / test_userstring.py
blob86997ce3741e184aa05ccaeb9feedc6f5a5dc784
1 #!/usr/bin/env python
2 import sys
3 from test_support import verbose
4 import string_tests
5 # UserString is a wrapper around the native builtin string type.
6 # UserString instances should behave similar to builtin string objects.
7 # The test cases were in part derived from 'test_string.py'.
8 from UserString import UserString
10 if __name__ == "__main__":
11 verbose = '-v' in sys.argv
13 tested_methods = {}
15 def test(methodname, input, output, *args):
16 global tested_methods
17 tested_methods[methodname] = 1
18 if verbose:
19 print '%r.%s(%s)' % (input, methodname, ", ".join(map(repr, args))),
20 u = UserString(input)
21 objects = [input, u, UserString(u)]
22 res = [""] * 3
23 for i in range(3):
24 object = objects[i]
25 try:
26 f = getattr(object, methodname)
27 except AttributeError:
28 f = None
29 res[i] = AttributeError
30 else:
31 try:
32 res[i] = apply(f, args)
33 except:
34 res[i] = sys.exc_type
35 if res[0] == res[1] == res[2] == output:
36 if verbose:
37 print 'yes'
38 else:
39 if verbose:
40 print 'no'
41 print (methodname, input, output, args, res[0], res[1], res[2])
43 string_tests.run_method_tests(test)