summaryrefslogtreecommitdiff
path: root/Lib/test/test_posix.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-04-20 09:22:13 +0300
committerSerhiy Storchaka <storchaka@gmail.com>2015-04-20 09:22:13 +0300
commit16b2e4f5480bb46a025f9d3a917a923e7f7f59f1 (patch)
tree63144916d60e4c2cbab4e85fe501822e8cac3773 /Lib/test/test_posix.py
parentcdbe29902e39cc575204ae1ac13505f3a699b8ba (diff)
downloadcpython-git-16b2e4f5480bb46a025f9d3a917a923e7f7f59f1.tar.gz
Issue #23842: Added tests for os.major(), os.minor() and os.makedev().
Diffstat (limited to 'Lib/test/test_posix.py')
-rw-r--r--Lib/test/test_posix.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index 72fdd16f8d..ce8f0b35cb 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -443,6 +443,36 @@ class PosixTester(unittest.TestCase):
else:
self.assertTrue(stat.S_ISFIFO(posix.stat(support.TESTFN).st_mode))
+ @unittest.skipUnless(hasattr(posix, 'stat'), 'test needs posix.stat()')
+ @unittest.skipUnless(hasattr(posix, 'makedev'), 'test needs posix.makedev()')
+ def test_makedev(self):
+ st = posix.stat(support.TESTFN)
+ dev = st.st_dev
+ self.assertIsInstance(dev, int)
+ self.assertGreaterEqual(dev, 0)
+
+ major = posix.major(dev)
+ self.assertIsInstance(major, int)
+ self.assertGreaterEqual(major, 0)
+ self.assertEqual(posix.major(dev), major)
+ self.assertRaises(TypeError, posix.major, float(dev))
+ self.assertRaises(TypeError, posix.major)
+ self.assertRaises((ValueError, OverflowError), posix.major, -1)
+
+ minor = posix.minor(dev)
+ self.assertIsInstance(minor, int)
+ self.assertGreaterEqual(minor, 0)
+ self.assertEqual(posix.minor(dev), minor)
+ self.assertRaises(TypeError, posix.minor, float(dev))
+ self.assertRaises(TypeError, posix.minor)
+ self.assertRaises((ValueError, OverflowError), posix.minor, -1)
+
+ self.assertEqual(posix.makedev(major, minor), dev)
+ self.assertRaises(TypeError, posix.makedev, float(major), minor)
+ self.assertRaises(TypeError, posix.makedev, major, float(minor))
+ self.assertRaises(TypeError, posix.makedev, major)
+ self.assertRaises(TypeError, posix.makedev)
+
def _test_all_chown_common(self, chown_func, first_param, stat_func):
"""Common code for chown, fchown and lchown tests."""
def check_stat(uid, gid):