Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c74bb9d

Browse files
Issue #23842: Added tests for os.major(), os.minor() and os.makedev().
2 parents 617ccca + 16b2e4f commit c74bb9d

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

Lib/test/test_posix.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,36 @@ def test_mknod(self):
442442
else:
443443
self.assertTrue(stat.S_ISFIFO(posix.stat(support.TESTFN).st_mode))
444444

445+
@unittest.skipUnless(hasattr(posix, 'stat'), 'test needs posix.stat()')
446+
@unittest.skipUnless(hasattr(posix, 'makedev'), 'test needs posix.makedev()')
447+
def test_makedev(self):
448+
st = posix.stat(support.TESTFN)
449+
dev = st.st_dev
450+
self.assertIsInstance(dev, int)
451+
self.assertGreaterEqual(dev, 0)
452+
453+
major = posix.major(dev)
454+
self.assertIsInstance(major, int)
455+
self.assertGreaterEqual(major, 0)
456+
self.assertEqual(posix.major(dev), major)
457+
self.assertRaises(TypeError, posix.major, float(dev))
458+
self.assertRaises(TypeError, posix.major)
459+
self.assertRaises((ValueError, OverflowError), posix.major, -1)
460+
461+
minor = posix.minor(dev)
462+
self.assertIsInstance(minor, int)
463+
self.assertGreaterEqual(minor, 0)
464+
self.assertEqual(posix.minor(dev), minor)
465+
self.assertRaises(TypeError, posix.minor, float(dev))
466+
self.assertRaises(TypeError, posix.minor)
467+
self.assertRaises((ValueError, OverflowError), posix.minor, -1)
468+
469+
self.assertEqual(posix.makedev(major, minor), dev)
470+
self.assertRaises(TypeError, posix.makedev, float(major), minor)
471+
self.assertRaises(TypeError, posix.makedev, major, float(minor))
472+
self.assertRaises(TypeError, posix.makedev, major)
473+
self.assertRaises(TypeError, posix.makedev)
474+
445475
def _test_all_chown_common(self, chown_func, first_param, stat_func):
446476
"""Common code for chown, fchown and lchown tests."""
447477
def check_stat(uid, gid):

0 commit comments

Comments
 (0)