Skip to content

Commit 24872e1

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]> (cherry picked from commit 876e82b) Co-authored-by: Victor Stinner <[email protected]>
1 parent ea16270 commit 24872e1

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
@@ -1798,36 +1798,46 @@ def test_unicode_name(self):
17981798

17991799
@unittest.skipIf(sys.platform == "win32", "Posix specific tests")
18001800
class PosixUidGidTests(unittest.TestCase):
1801+
# uid_t and gid_t are 32-bit unsigned integers on Linux
1802+
UID_OVERFLOW = (1 << 32)
1803+
GID_OVERFLOW = (1 << 32)
1804+
18011805
@unittest.skipUnless(hasattr(os, 'setuid'), 'test needs os.setuid()')
18021806
def test_setuid(self):
18031807
if os.getuid() != 0:
18041808
self.assertRaises(OSError, os.setuid, 0)
1805-
self.assertRaises(OverflowError, os.setuid, 1<<32)
1809+
self.assertRaises(TypeError, os.setuid, 'not an int')
1810+
self.assertRaises(OverflowError, os.setuid, self.UID_OVERFLOW)
18061811

18071812
@unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
18081813
def test_setgid(self):
18091814
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
18101815
self.assertRaises(OSError, os.setgid, 0)
1811-
self.assertRaises(OverflowError, os.setgid, 1<<32)
1816+
self.assertRaises(TypeError, os.setgid, 'not an int')
1817+
self.assertRaises(OverflowError, os.setgid, self.GID_OVERFLOW)
18121818

18131819
@unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
18141820
def test_seteuid(self):
18151821
if os.getuid() != 0:
18161822
self.assertRaises(OSError, os.seteuid, 0)
1817-
self.assertRaises(OverflowError, os.seteuid, 1<<32)
1823+
self.assertRaises(TypeError, os.setegid, 'not an int')
1824+
self.assertRaises(OverflowError, os.seteuid, self.UID_OVERFLOW)
18181825

18191826
@unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
18201827
def test_setegid(self):
18211828
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
18221829
self.assertRaises(OSError, os.setegid, 0)
1823-
self.assertRaises(OverflowError, os.setegid, 1<<32)
1830+
self.assertRaises(TypeError, os.setegid, 'not an int')
1831+
self.assertRaises(OverflowError, os.setegid, self.GID_OVERFLOW)
18241832

18251833
@unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
18261834
def test_setreuid(self):
18271835
if os.getuid() != 0:
18281836
self.assertRaises(OSError, os.setreuid, 0, 0)
1829-
self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
1830-
self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
1837+
self.assertRaises(TypeError, os.setreuid, 'not an int', 0)
1838+
self.assertRaises(TypeError, os.setreuid, 0, 'not an int')
1839+
self.assertRaises(OverflowError, os.setreuid, self.UID_OVERFLOW, 0)
1840+
self.assertRaises(OverflowError, os.setreuid, 0, self.UID_OVERFLOW)
18311841

18321842
@unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
18331843
def test_setreuid_neg1(self):
@@ -1841,8 +1851,10 @@ def test_setreuid_neg1(self):
18411851
def test_setregid(self):
18421852
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
18431853
self.assertRaises(OSError, os.setregid, 0, 0)
1844-
self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
1845-
self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
1854+
self.assertRaises(TypeError, os.setregid, 'not an int', 0)
1855+
self.assertRaises(TypeError, os.setregid, 0, 'not an int')
1856+
self.assertRaises(OverflowError, os.setregid, self.GID_OVERFLOW, 0)
1857+
self.assertRaises(OverflowError, os.setregid, 0, self.GID_OVERFLOW)
18461858

18471859
@unittest.skipUnless(hasattr(os, 'setregid'), 'test needs os.setregid()')
18481860
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)