[Python-checkins] CVS: python/dist/src/Lib/test test_fcntl.py,1.17,1.18

Fred L. Drake fdrake@users.sourceforge.net
Wed, 09 May 2001 14:12:01 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv25491/test

Modified Files:
	test_fcntl.py 
Log Message:

Update the tests for the fcntl module to check passing in file objects,
and using the constants defined there instead of FCNTL.


Index: test_fcntl.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_fcntl.py,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -r1.17 -r1.18
*** test_fcntl.py	2001/04/11 20:58:20	1.17
--- test_fcntl.py	2001/05/09 21:11:59	1.18
***************
*** 5,9 ****
  import struct
  import fcntl
- import FCNTL
  import os, sys
  from test_support import verbose, TESTFN
--- 5,8 ----
***************
*** 11,35 ****
  filename = TESTFN
  
- # the example from the library docs
- f = open(filename, 'w')
- rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETFL, os.O_NONBLOCK)
- if verbose:
-     print 'Status from fnctl with O_NONBLOCK: ', rv
- 
  if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin1',
                      'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
                      'bsdos2', 'bsdos3', 'bsdos4',
                      'openbsd', 'openbsd2'):
!     lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, FCNTL.F_WRLCK, 0)
  elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']:
!     lockdata = struct.pack('hhlllii', FCNTL.F_WRLCK, 0, 0, 0, 0, 0, 0)
  else:
!     lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0)
  if verbose:
      print 'struct.pack: ', `lockdata`
  
! rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETLKW, lockdata)
  if verbose:
      print 'String from fcntl with F_SETLKW: ', `rv`
  
  f.close()
--- 10,45 ----
  filename = TESTFN
  
  if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin1',
                      'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
                      'bsdos2', 'bsdos3', 'bsdos4',
                      'openbsd', 'openbsd2'):
!     lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, fcntl.F_WRLCK, 0)
  elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']:
!     lockdata = struct.pack('hhlllii', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0)
  else:
!     lockdata = struct.pack('hhllhh', fcntl.F_WRLCK, 0, 0, 0, 0, 0)
  if verbose:
      print 'struct.pack: ', `lockdata`
+ 
+ 
+ # the example from the library docs
+ f = open(filename, 'w')
+ rv = fcntl.fcntl(f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
+ if verbose:
+     print 'Status from fnctl with O_NONBLOCK: ', rv
  
! rv = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW, lockdata)
  if verbose:
      print 'String from fcntl with F_SETLKW: ', `rv`
+ 
+ f.close()
+ os.unlink(filename)
+ 
+ 
+ # Again, but pass the file rather than numeric descriptor:
+ f = open(filename, 'w')
+ rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NONBLOCK)
+ 
+ rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata)
  
  f.close()