Skip to content

Commit 876e82b

Browse files
bpo-36234: Add more tests to PosixUidGidTests (GH-12234)
test_posix.PosixUidGidTests: * Add tests for invalid uid/gid type (str) * Add UID_OVERFLOW and GID_OVERFLOW constants to replace (1 << 32) Initial patch written by David Malcolm. Co-Authored-By: David Malcolm <[email protected]>
1 parent cc353a0 commit 876e82b

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

Lib/test/test_os.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1796,36 +1796,46 @@ def test_unicode_name(self):
17961796

17971797
@unittest.skipIf(sys.platform == "win32", "Posix specific tests")
17981798
class PosixUidGidTests(unittest.TestCase):
1799+
# uid_t and gid_t are 32-bit unsigned integers on Linux
1800+
UID_OVERFLOW = (1 << 32)
1801+
GID_OVERFLOW = (1 << 32)
1802+
17991803
@unittest.skipUnless(hasattr(os, 'setuid'), 'test needs os.setuid()')
18001804
def test_setuid(self):
18011805
if os.getuid() != 0:
18021806
self.assertRaises(OSError, os.setuid, 0)
1803-
self.assertRaises(OverflowError, os.setuid, 1<<32)
1807+
self.assertRaises(TypeError, os.setuid, 'not an int')
1808+
self.assertRaises(OverflowError, os.setuid, self.UID_OVERFLOW)
18041809

18051810
@unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
18061811
def test_setgid(self):
18071812
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
18081813
self.assertRaises(OSError, os.setgid, 0)
1809-
self.assertRaises(OverflowError, os.setgid, 1<<32)
1814+
self.assertRaises(TypeError, os.setgid, 'not an int')
1815+
self.assertRaises(OverflowError, os.setgid, self.GID_OVERFLOW)
18101816

18111817
@unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
18121818
def test_seteuid(self):
18131819
if os.getuid() != 0:
18141820
self.assertRaises(OSError, os.seteuid, 0)
1815-
self.assertRaises(OverflowError, os.seteuid, 1<<32)
1821+
self.assertRaises(TypeError, os.setegid, 'not an int')
1822+
self.assertRaises(OverflowError, os.seteuid, self.UID_OVERFLOW)
18161823

18171824
@unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
18181825
def test_setegid(self):
18191826
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
18201827
self.assertRaises(OSError, os.setegid, 0)
1821-
self.assertRaises(OverflowError, os.setegid, 1<<32)
1828+
self.assertRaises(TypeError, os.setegid, 'not an int')
1829+
self.assertRaises(OverflowError, os.setegid, self.GID_OVERFLOW)
18221830

18231831
@unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
18241832
def test_setreuid(self):
18251833
if os.getuid() != 0:
18261834
self.assertRaises(OSError, os.setreuid, 0, 0)
1827-
self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
1828-
self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
1835+
self.assertRaises(TypeError, os.setreuid, 'not an int', 0)
1836+
self.assertRaises(TypeError, os.setreuid, 0, 'not an int')
1837+
self.assertRaises(OverflowError, os.setreuid, self.UID_OVERFLOW, 0)
1838+
self.assertRaises(OverflowError, os.setreuid, 0, self.UID_OVERFLOW)
18291839

18301840
@unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
18311841
def test_setreuid_neg1(self):
@@ -1839,8 +1849,10 @@ def test_setreuid_neg1(self):
18391849
def test_setregid(self):
18401850
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
18411851
self.assertRaises(OSError, os.setregid, 0, 0)
1842-
self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
1843-
self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
1852+
self.assertRaises(TypeError, os.setregid, 'not an int', 0)
1853+
self.assertRaises(TypeError, os.setregid, 0, 'not an int')
1854+
self.assertRaises(OverflowError, os.setregid, self.GID_OVERFLOW, 0)
1855+
self.assertRaises(OverflowError, os.setregid, 0, self.GID_OVERFLOW)
18441856

18451857
@unittest.skipUnless(hasattr(os, 'setregid'), 'test needs os.setregid()')
18461858
def test_setregid_neg1(self):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
test_posix.PosixUidGidTests: add tests for invalid uid/gid type (str).
2+
Initial patch written by David Malcolm.

0 commit comments

Comments
 (0)