home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 2004 #2 / K-CD-2-2004.ISO / OpenOffice Sv / f_0397 / python-core-2.2.2 / lib / test / test_userstring.py < prev    next >
Encoding:
Python Source  |  2003-07-18  |  1.2 KB  |  44 lines

  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
  9.  
  10. if __name__ == "__main__":
  11.     verbose = '-v' in sys.argv
  12.  
  13. tested_methods = {}
  14.  
  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])
  42.  
  43. string_tests.run_method_tests(test)
  44.