blob: a8df84d7ba323e7492974b7e2c326b86df70ff14 [file] [log] [blame]
Fred Drakea22b5762000-04-03 03:51:50 +00001#!/usr/bin/env python
Eric S. Raymond2846b0a2001-02-09 12:00:47 +00002import sys
Fredrik Lundhf7850422001-01-17 21:51:36 +00003from 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)