Merged revisions 87238 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87238 | r.david.murray | 2010-12-14 11:20:53 -0500 (Tue, 14 Dec 2010) | 7 lines

  #775964: skip YP/NIS entries instead of failing the test

  Also includes doc updates mentioning that these entries may not
  be retrievable via getgrnam and getgrgid.

  Patch by Bobby Impollonia.
........
This commit is contained in:
R. David Murray 2010-12-14 16:26:30 +00:00
parent 312efbc115
commit f8a6391991
5 changed files with 16 additions and 4 deletions

View File

@ -31,7 +31,9 @@ correspond to the members of the ``group`` structure (Attribute field below, see
The gid is an integer, name and password are strings, and the member list is a
list of strings. (Note that most users are not explicitly listed as members of
the group they are in according to the password database. Check both databases
to get complete membership information.)
to get complete membership information. Also note that a ``gr_name`` that
starts with a ``+`` or ``-`` is likely to be a YP/NIS reference and may not be
accessible via :func:`getgrnam` or :func:`getgrgid`.)
It defines the following items:

View File

@ -33,12 +33,16 @@ class GroupDatabaseTestCase(unittest.TestCase):
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)

View File

@ -375,6 +375,7 @@ Gerhard Häring
Fredrik Håård
Mihai Ibanescu
Lars Immisch
Bobby Impollonia
Meador Inge
Tony Ingraldi
John Interrante

View File

@ -46,6 +46,9 @@ Extension Modules
Tests
-----
- Issue #775964: test_grp now skips YP/NIS entries instead of failing when
encountering them.
- Issue #7110: regrtest now sends test failure reports and single-failure
tracebacks to stderr rather than stdout.

View File

@ -158,7 +158,9 @@ Return the group database entry for the given group name. If\n\
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 */
};