from test
import test_support
raise test_support
.TestSkipped
, "posix is not available"
warnings
.filterwarnings('ignore', '.* potential security risk .*',
class PosixTester(unittest
.TestCase
):
fp
= open(test_support
.TESTFN
, 'w+')
os
.unlink(test_support
.TESTFN
)
def testNoArgFunctions(self
):
# test posix functions which take no arguments and have
# no side-effects which we need to cleanup (e.g., fork, wait, abort)
NO_ARG_FUNCTIONS
= [ "ctermid", "getcwd", "getcwdu", "uname",
"times", "getloadavg", "tmpnam",
"getegid", "geteuid", "getgid", "getgroups",
"getpid", "getpgrp", "getppid", "getuid",
for name
in NO_ARG_FUNCTIONS
:
posix_func
= getattr(posix
, name
, None)
if posix_func
is not None:
self
.assertRaises(TypeError, posix_func
, 1)
if hasattr(posix
, 'statvfs'):
self
.assert_(posix
.statvfs(os
.curdir
))
if hasattr(posix
, 'fstatvfs'):
fp
= open(test_support
.TESTFN
)
self
.assert_(posix
.fstatvfs(fp
.fileno()))
def test_ftruncate(self
):
if hasattr(posix
, 'ftruncate'):
fp
= open(test_support
.TESTFN
, 'w+')
# we need to have some data to truncate
posix
.ftruncate(fp
.fileno(), 0)
if hasattr(posix
, 'dup'):
fp
= open(test_support
.TESTFN
)
fd
= posix
.dup(fp
.fileno())
self
.assert_(isinstance(fd
, int))
if hasattr(posix
, 'dup2'):
fp1
= open(test_support
.TESTFN
)
fp2
= open(test_support
.TESTFN
)
posix
.dup2(fp1
.fileno(), fp2
.fileno())
def fdopen_helper(self
, *args
):
fd
= os
.open(test_support
.TESTFN
, os
.O_RDONLY
)
fp2
= posix
.fdopen(fd
, *args
)
if hasattr(posix
, 'fdopen'):
self
.fdopen_helper('r', 100)
if hasattr(posix
, 'fstat'):
fp
= open(test_support
.TESTFN
)
self
.assert_(posix
.fstat(fp
.fileno()))
if hasattr(posix
, 'stat'):
self
.assert_(posix
.stat(test_support
.TESTFN
))
if hasattr(posix
, 'chdir'):
self
.assertRaises(OSError, posix
.chdir
, test_support
.TESTFN
)
if hasattr(posix
, 'lsdir'):
self
.assert_(test_support
.TESTFN
in posix
.lsdir(os
.curdir
))
if hasattr(posix
, 'access'):
self
.assert_(posix
.access(test_support
.TESTFN
, os
.R_OK
))
if hasattr(posix
, 'umask'):
old_mask
= posix
.umask(0)
self
.assert_(isinstance(old_mask
, int))
if hasattr(posix
, 'strerror'):
self
.assert_(posix
.strerror(0))
if hasattr(posix
, 'pipe'):
reader
, writer
= posix
.pipe()
if hasattr(posix
, 'tempnam'):
self
.assert_(posix
.tempnam())
self
.assert_(posix
.tempnam(os
.curdir
))
self
.assert_(posix
.tempnam(os
.curdir
, 'blah'))
if hasattr(posix
, 'tmpfile'):
if hasattr(posix
, 'utime'):
posix
.utime(test_support
.TESTFN
, None)
self
.assertRaises(TypeError, posix
.utime
, test_support
.TESTFN
, (None, None))
self
.assertRaises(TypeError, posix
.utime
, test_support
.TESTFN
, (now
, None))
self
.assertRaises(TypeError, posix
.utime
, test_support
.TESTFN
, (None, now
))
posix
.utime(test_support
.TESTFN
, (int(now
), int(now
)))
posix
.utime(test_support
.TESTFN
, (now
, now
))
test_support
.run_unittest(PosixTester
)
if __name__
== '__main__':