home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 July / maximum-cd-2011-07.iso / DiscContents / LibO_3.3.2_Win_x86_install_multi.exe / libreoffice1.cab / test_select.py < prev    next >
Encoding:
Python Source  |  2011-03-15  |  1.7 KB  |  54 lines

  1. from test import test_support
  2. import unittest
  3. import select
  4. import os
  5. import sys
  6.  
  7. class SelectTestCase(unittest.TestCase):
  8.  
  9.     class Nope:
  10.         pass
  11.  
  12.     class Almost:
  13.         def fileno(self):
  14.             return 'fileno'
  15.  
  16.     def test_error_conditions(self):
  17.         self.assertRaises(TypeError, select.select, 1, 2, 3)
  18.         self.assertRaises(TypeError, select.select, [self.Nope()], [], [])
  19.         self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
  20.         self.assertRaises(TypeError, select.select, [], [], [], "not a number")
  21.  
  22.     def test_select(self):
  23.         if sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'):
  24.             if test_support.verbose:
  25.                 print "Can't test select easily on", sys.platform
  26.             return
  27.         cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
  28.         p = os.popen(cmd, 'r')
  29.         for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
  30.             if test_support.verbose:
  31.                 print 'timeout =', tout
  32.             rfd, wfd, xfd = select.select([p], [], [], tout)
  33.             if (rfd, wfd, xfd) == ([], [], []):
  34.                 continue
  35.             if (rfd, wfd, xfd) == ([p], [], []):
  36.                 line = p.readline()
  37.                 if test_support.verbose:
  38.                     print repr(line)
  39.                 if not line:
  40.                     if test_support.verbose:
  41.                         print 'EOF'
  42.                     break
  43.                 continue
  44.             self.fail('Unexpected return values from select():', rfd, wfd, xfd)
  45.         p.close()
  46.  
  47.  
  48. def test_main():
  49.     test_support.run_unittest(SelectTestCase)
  50.     test_support.reap_children()
  51.  
  52. if __name__ == "__main__":
  53.     test_main()
  54.