diff options
author | Gregory P. Smith <greg@mad-scientist.com> | 2009-04-05 23:43:58 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@mad-scientist.com> | 2009-04-05 23:43:58 (GMT) |
commit | 6d30793cf2dfa23d5144026305631ade3e9f6e47 (patch) | |
tree | c44067ba799c3ca055c4057b092a7ca9596edf74 /Lib/test/test_os.py | |
parent | fdda68e0308ca35d68f47ffd3380c768ac59ca72 (diff) | |
download | cpython-6d30793cf2dfa23d5144026305631ade3e9f6e47.zip cpython-6d30793cf2dfa23d5144026305631ade3e9f6e47.tar.gz cpython-6d30793cf2dfa23d5144026305631ade3e9f6e47.tar.bz2 |
Fixes issue5705: os.setuid() and friends did not accept the same range of
values that pwd.getpwnam() returns.
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r-- | Lib/test/test_os.py | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 64b29ea..9b8ba02 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -608,6 +608,48 @@ if sys.platform != 'win32': class Win32ErrorTests(unittest.TestCase): pass + class PosixUidGidTests(unittest.TestCase): + if hasattr(os, 'setuid'): + def test_setuid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setuid, 0) + self.assertRaises(OverflowError, os.setuid, 1<<32) + + if hasattr(os, 'setgid'): + def test_setgid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setgid, 0) + self.assertRaises(OverflowError, os.setgid, 1<<32) + + if hasattr(os, 'seteuid'): + def test_seteuid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.seteuid, 0) + self.assertRaises(OverflowError, os.seteuid, 1<<32) + + if hasattr(os, 'setegid'): + def test_setegid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setegid, 0) + self.assertRaises(OverflowError, os.setegid, 1<<32) + + if hasattr(os, 'setreuid'): + def test_setreuid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setreuid, 0, 0) + self.assertRaises(OverflowError, os.setreuid, 1<<32, 0) + self.assertRaises(OverflowError, os.setreuid, 0, 1<<32) + + if hasattr(os, 'setregid'): + def test_setregid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setregid, 0, 0) + self.assertRaises(OverflowError, os.setregid, 1<<32, 0) + self.assertRaises(OverflowError, os.setregid, 0, 1<<32) +else: + class PosixUidGidTests(unittest.TestCase): + pass + def test_main(): test_support.run_unittest( FileTests, @@ -619,7 +661,8 @@ def test_main(): DevNullTests, URandomTests, Win32ErrorTests, - TestInvalidFD + TestInvalidFD, + PosixUidGidTests ) if __name__ == "__main__": |