home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / pub / palmos / pippy-0.6beta-src.tar.gz / pippy-0.6beta-src.tar / pippy-0.6beta-src / src / Lib / test / test_select.py < prev    next >
Text File  |  2000-12-21  |  2KB  |  65 lines

  1. # Testing select module
  2. from test_support import verbose
  3. import select
  4. import os
  5.  
  6. # test some known error conditions
  7. try:
  8.     rfd, wfd, xfd = select.select(1, 2, 3)
  9. except TypeError:
  10.     pass
  11. else:
  12.     print 'expected TypeError exception not raised'
  13.  
  14. class Nope:
  15.     pass
  16.  
  17. class Almost:
  18.     def fileno(self):
  19.         return 'fileno'
  20.     
  21. try:
  22.     rfd, wfd, xfd = select.select([Nope()], [], [])
  23. except TypeError:
  24.     pass
  25. else:
  26.     print 'expected TypeError exception not raised'
  27.  
  28. try:
  29.     rfd, wfd, xfd = select.select([Almost()], [], [])
  30. except TypeError:
  31.     pass
  32. else:
  33.     print 'expected TypeError exception not raised'
  34.  
  35.  
  36. def test():
  37.         import sys
  38.         if sys.platform[:3] in ('win', 'mac', 'os2'):
  39.                 if verbose:
  40.                         print "Can't test select easily on", sys.platform
  41.                 return
  42.         cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
  43.         p = os.popen(cmd, 'r')
  44.         for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
  45.                 if verbose:
  46.                         print 'timeout =', tout
  47.                 rfd, wfd, xfd = select.select([p], [], [], tout)
  48. ##              print rfd, wfd, xfd
  49.                 if (rfd, wfd, xfd) == ([], [], []):
  50.                         continue
  51.                 if (rfd, wfd, xfd) == ([p], [], []):
  52.                         line = p.readline()
  53.                         if verbose:
  54.                                 print `line`
  55.                         if not line:
  56.                                 if verbose:
  57.                                         print 'EOF'
  58.                                 break
  59.                         continue
  60.                 print 'Heh?'
  61.         p.close()
  62.  
  63. test()
  64.  
  65.