Kaydet (Commit) ec07331e authored tarafından R. David Murray's avatar R. David Murray

#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.
üst a80f4fb0
......@@ -30,7 +30,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:
......
......@@ -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)
......
......@@ -398,6 +398,7 @@ Gerhard Häring
Fredrik Håård
Mihai Ibanescu
Lars Immisch
Bobby Impollonia
Meador Inge
Tony Ingraldi
John Interrante
......
......@@ -38,6 +38,13 @@ Library
or otherwise not wait for exiting child processes.
Tests
-----
- Issue #775964: test_grp now skips YP/NIS entries instead of failing when
encountering them.
What's New in Python 3.2 Beta 1?
================================
......
......@@ -159,7 +159,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 */
};
......
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