summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-12-14 16:26:30 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-12-14 16:26:30 (GMT)
commitf8a6391991946a3e9ce79dbca1c20aec7596f8e0 (patch)
treed8b4fb284acee33d03da0c4a5ec3c0d997e12079
parent312efbc1158a15cb877d8bb078c19f95b23596e6 (diff)
downloadcpython-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.rst4
-rw-r--r--Lib/test/test_grp.py8
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/grpmodule.c4
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)
diff --git a/Misc/ACKS b/Misc/ACKS
index 24c072c..83a59a0 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -375,6 +375,7 @@ Gerhard Häring
Fredrik Håård
Mihai Ibanescu
Lars Immisch
+Bobby Impollonia
Meador Inge
Tony Ingraldi
John Interrante
diff --git a/Misc/NEWS b/Misc/NEWS
index b49539b..faef735 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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 */
};