diff options
author | R. David Murray <rdmurray@bitdance.com> | 2010-12-14 16:26:30 (GMT) |
---|---|---|
committer | R. David Murray <rdmurray@bitdance.com> | 2010-12-14 16:26:30 (GMT) |
commit | f8a6391991946a3e9ce79dbca1c20aec7596f8e0 (patch) | |
tree | d8b4fb284acee33d03da0c4a5ec3c0d997e12079 | |
parent | 312efbc1158a15cb877d8bb078c19f95b23596e6 (diff) | |
download | cpython-f8a6391991946a3e9ce79dbca1c20aec7596f8e0.zip cpython-f8a6391991946a3e9ce79dbca1c20aec7596f8e0.tar.gz cpython-f8a6391991946a3e9ce79dbca1c20aec7596f8e0.tar.bz2 |
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.
........
-rw-r--r-- | Doc/library/grp.rst | 4 | ||||
-rw-r--r-- | Lib/test/test_grp.py | 8 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/grpmodule.c | 4 |
5 files changed, 16 insertions, 4 deletions
diff --git a/Doc/library/grp.rst b/Doc/library/grp.rst index a71c308..f20a212 100644 --- a/Doc/library/grp.rst +++ b/Doc/library/grp.rst @@ -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: diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py index b4701d5..e9e1758 100644 --- a/Lib/test/test_grp.py +++ b/Lib/test/test_grp.py @@ -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) @@ -375,6 +375,7 @@ Gerhard Häring Fredrik Håård Mihai Ibanescu Lars Immisch +Bobby Impollonia Meador Inge Tony Ingraldi John Interrante @@ -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. diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c index ffb451e..07de880 100644 --- a/Modules/grpmodule.c +++ b/Modules/grpmodule.c @@ -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 */ }; |