Index: Lib/test/test_grp.py =================================================================== --- Lib/test/test_grp.py (revision 85842) +++ Lib/test/test_grp.py (working copy) @@ -33,12 +33,16 @@ e2 = grp.getgrgid(e.gr_gid) self.check_value(e2) self.assertEqual(e2.gr_gid, e.gr_gid) - e2 = grp.getgrnam(e.gr_name) + name = e.gr_name + if name.startswith('+') or name.startswith('-'): + # NIS-related entry + continue + e2 = grp.getgrnam(name) self.check_value(e2) # There are instances where getgrall() returns group names in # lowercase while getgrgid() returns proper casing. # Discovered on Ubuntu 5.04 (custom). - self.assertEqual(e2.gr_name.lower(), e.gr_name.lower()) + self.assertEqual(e2.gr_name.lower(), name.lower()) def test_errors(self): self.assertRaises(TypeError, grp.getgrgid) Index: Modules/grpmodule.c =================================================================== --- Modules/grpmodule.c (revision 85842) +++ Modules/grpmodule.c (working copy) @@ -160,7 +160,9 @@ name is not valid, raise KeyError."}, {"getgrall", grp_getgrall, METH_NOARGS, "getgrall() -> list of tuples\n\ -Return a list of all available group entries, in arbitrary order."}, +Return a list of all available group entries, in arbitrary order.\n\ +An entry whose name starts with '+' or '-' represents an instruction\n\ +to use YP/NIS and may not be accessible via getgrnam or getgrgid."}, {NULL, NULL} /* sentinel */ };