summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_os.py
diff options
context:
space:
mode:
authorGregory P. Smith <greg@mad-scientist.com>2009-04-05 23:43:58 (GMT)
committerGregory P. Smith <greg@mad-scientist.com>2009-04-05 23:43:58 (GMT)
commit6d30793cf2dfa23d5144026305631ade3e9f6e47 (patch)
treec44067ba799c3ca055c4057b092a7ca9596edf74 /Lib/test/test_os.py
parentfdda68e0308ca35d68f47ffd3380c768ac59ca72 (diff)
downloadcpython-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.py45
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__":