Unverified Kaydet (Commit) d7c87d98 authored tarafından Victor Stinner's avatar Victor Stinner Kaydeden (comit) GitHub

bpo-37400: Fix test_os.test_chown() (GH-14374)

Use os.getgroups() rather than grp.getgrall() to get groups.
Rename also the test to test_chown_gid().
üst 3939c321
...@@ -42,15 +42,6 @@ try: ...@@ -42,15 +42,6 @@ try:
import _winapi import _winapi
except ImportError: except ImportError:
_winapi = None _winapi = None
try:
import grp
groups = [g.gr_gid for g in grp.getgrall() if getpass.getuser() in g.gr_mem]
if hasattr(os, 'getgid'):
process_gid = os.getgid()
if process_gid not in groups:
groups.append(process_gid)
except ImportError:
groups = []
try: try:
import pwd import pwd
all_users = [u.pw_uid for u in pwd.getpwall()] all_users = [u.pw_uid for u in pwd.getpwall()]
...@@ -1320,13 +1311,19 @@ class ChownFileTests(unittest.TestCase): ...@@ -1320,13 +1311,19 @@ class ChownFileTests(unittest.TestCase):
self.assertIsNone(os.chown(support.TESTFN, uid, gid)) self.assertIsNone(os.chown(support.TESTFN, uid, gid))
self.assertIsNone(os.chown(support.TESTFN, -1, -1)) self.assertIsNone(os.chown(support.TESTFN, -1, -1))
@unittest.skipUnless(len(groups) > 1, "test needs more than one group") @unittest.skipUnless(hasattr(os, 'getgroups'), 'need os.getgroups')
def test_chown(self): def test_chown_gid(self):
groups = os.getgroups()
if len(groups) < 2:
self.skipTest("test needs at least 2 groups")
gid_1, gid_2 = groups[:2] gid_1, gid_2 = groups[:2]
uid = os.stat(support.TESTFN).st_uid uid = os.stat(support.TESTFN).st_uid
os.chown(support.TESTFN, uid, gid_1) os.chown(support.TESTFN, uid, gid_1)
gid = os.stat(support.TESTFN).st_gid gid = os.stat(support.TESTFN).st_gid
self.assertEqual(gid, gid_1) self.assertEqual(gid, gid_1)
os.chown(support.TESTFN, uid, gid_2) os.chown(support.TESTFN, uid, gid_2)
gid = os.stat(support.TESTFN).st_gid gid = os.stat(support.TESTFN).st_gid
self.assertEqual(gid, gid_2) self.assertEqual(gid, gid_2)
......
Fix test_os.test_chown(): use os.getgroups() rather than grp.getgrall()
to get groups. Rename also the test to test_chown_gid().
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment