blob: a47bfdd9df55c523499eefcfedb5fb9df3a0950c [file] [log] [blame]
Fred Drakea22b5762000-04-03 03:51:50 +00001#!/usr/bin/env python
2import sys, string
3from test_support import verbose
Jeremy Hyltonf82b04e2000-07-10 17:08:42 +00004import string_tests
Fred Drakea22b5762000-04-03 03:51:50 +00005# 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'.
8from UserString import UserString
9
10if __name__ == "__main__":
11 verbose = 0
12
13tested_methods = {}
14
15def test(methodname, input, *args):
16 global tested_methods
17 tested_methods[methodname] = 1
18 if verbose:
19 print '%s.%s(%s) ' % (input, methodname, 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 res[i] = apply(f, args)
28 except:
29 res[i] = sys.exc_type
30 if res[0] != res[1]:
31 if verbose:
32 print 'no'
33 print `input`, f, `res[0]`, "<>", `res[1]`
34 else:
35 if verbose:
36 print 'yes'
37 if res[1] != res[2]:
38 if verbose:
39 print 'no'
40 print `input`, f, `res[1]`, "<>", `res[2]`
41 else:
42 if verbose:
43 print 'yes'
44
Jeremy Hyltonf82b04e2000-07-10 17:08:42 +000045string_tests.run_method_tests(test)