Bump version number to 2.4.2 to pick up the latest minor bug fixes.
[python/dscho.git] / Lib / test / test_userstring.py
blob67fbb5c00e2dc842e2d6ba074131505acc0f5a4d
1 #!/usr/bin/env python
2 import sys
3 from test.test_support import verbose
4 from test 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)
44 string_tests.run_contains_tests(test)
45 string_tests.run_inplace_tests(UserString)