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 <dmalcolm@redhat.com> (cherry picked from commit 876e82b) Co-authored-by: Victor Stinner <vstinner@redhat.com>
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy