import _winapi
except ImportError:
_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:
import pwd
all_users = [u.pw_uid for u in pwd.getpwall()]
self.assertIsNone(os.chown(support.TESTFN, uid, gid))
self.assertIsNone(os.chown(support.TESTFN, -1, -1))
- @unittest.skipUnless(len(groups) > 1, "test needs more than one group")
- def test_chown(self):
+ @unittest.skipUnless(hasattr(os, 'getgroups'), 'need os.getgroups')
+ 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]
uid = os.stat(support.TESTFN).st_uid
+
os.chown(support.TESTFN, uid, gid_1)
gid = os.stat(support.TESTFN).st_gid
self.assertEqual(gid, gid_1)
+
os.chown(support.TESTFN, uid, gid_2)
gid = os.stat(support.TESTFN).st_gid
self.assertEqual(gid, gid_2)