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_file.py < prev    next >
Encoding:
Python Source  |  2003-07-18  |  1.4 KB  |  64 lines

  1. import os
  2.  
  3. from test_support import verify, TESTFN
  4. from UserList import UserList
  5.  
  6. # verify writelines with instance sequence
  7. l = UserList(['1', '2'])
  8. f = open(TESTFN, 'wb')
  9. f.writelines(l)
  10. f.close()
  11. f = open(TESTFN, 'rb')
  12. buf = f.read()
  13. f.close()
  14. verify(buf == '12')
  15.  
  16. # verify writelines with integers
  17. f = open(TESTFN, 'wb')
  18. try:
  19.     f.writelines([1, 2, 3])
  20. except TypeError:
  21.     pass
  22. else:
  23.     print "writelines accepted sequence of integers"
  24. f.close()
  25.  
  26. # verify writelines with integers in UserList
  27. f = open(TESTFN, 'wb')
  28. l = UserList([1,2,3])
  29. try:
  30.     f.writelines(l)
  31. except TypeError:
  32.     pass
  33. else:
  34.     print "writelines accepted sequence of integers"
  35. f.close()
  36.  
  37. # verify writelines with non-string object
  38. class NonString: pass
  39.  
  40. f = open(TESTFN, 'wb')
  41. try:
  42.     f.writelines([NonString(), NonString()])
  43. except TypeError:
  44.     pass
  45. else:
  46.     print "writelines accepted sequence of non-string objects"
  47. f.close()
  48.  
  49. # verify that we get a sensible error message for bad mode argument
  50. bad_mode = "qwerty"
  51. try:
  52.     open(TESTFN, bad_mode)
  53. except IOError, msg:
  54.     if msg[0] != 0:
  55.         s = str(msg)
  56.         if s.find(TESTFN) != -1 or s.find(bad_mode) == -1:
  57.             print "bad error message for invalid mode: %s" % s
  58.     # if msg[0] == 0, we're probably on Windows where there may be
  59.     # no obvious way to discover why open() failed.
  60. else:
  61.     print "no error for invalid mode: %s" % bad_mode
  62.  
  63. os.unlink(TESTFN)
  64.