Update the tests for the fcntl module to check passing in file objects,
and using the constants defined there instead of FCNTL.
diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py
index 1fa0aa2..a64a5e1 100755
--- a/Lib/test/test_fcntl.py
+++ b/Lib/test/test_fcntl.py
@@ -4,33 +4,43 @@
"""
import struct
import fcntl
-import FCNTL
import os, sys
from test_support import verbose, TESTFN
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)
+ 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)
+ 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)
+ 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)
+
+# 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()
+os.unlink(filename)