diff options
author | Walter Dörwald <walter@livinglogic.de> | 2003-04-22 11:05:57 (GMT) |
---|---|---|
committer | Walter Dörwald <walter@livinglogic.de> | 2003-04-22 11:05:57 (GMT) |
commit | ecd2fdca0f9461b149ca6d0bcf070deac5e7ca9a (patch) | |
tree | 79ff9383e9bbe3f51d32edfd7602ff8797c5acea | |
parent | 41c9f880d8bf59e80b6ca5963c3e9e2b17386736 (diff) | |
download | cpython-ecd2fdca0f9461b149ca6d0bcf070deac5e7ca9a.zip cpython-ecd2fdca0f9461b149ca6d0bcf070deac5e7ca9a.tar.gz cpython-ecd2fdca0f9461b149ca6d0bcf070deac5e7ca9a.tar.bz2 |
Change test_pwd and test_grp so they can handle duplicate user
and group names. This should fix SF bug #724771.
-rwxr-xr-x | Lib/test/test_grp.py | 6 | ||||
-rw-r--r-- | Lib/test/test_pwd.py | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py index 71c4897..76323a2 100755 --- a/Lib/test/test_grp.py +++ b/Lib/test/test_grp.py @@ -9,6 +9,7 @@ class GroupDatabaseTestCase(unittest.TestCase): def test_values(self): entries = grp.getgrall() + entriesbyname = {} entriesbygid = {} for e in entries: @@ -22,18 +23,19 @@ class GroupDatabaseTestCase(unittest.TestCase): self.assertEqual(e[3], e.gr_mem) self.assert_(isinstance(e.gr_mem, list)) - self.assertEqual(grp.getgrnam(e.gr_name), e) # The following won't work, because of duplicate entries # for one gid # self.assertEqual(grp.getgrgid(e.gr_gid), e) - # instead of this collect all entries for one gid + # instead of this collect all entries for one gid/name # and check afterwards + entriesbyname.setdefault(e.gr_name, []).append(e) entriesbygid.setdefault(e.gr_gid, []).append(e) # check whether the entry returned by getgrgid() # for each uid is among those from getgrall() for this uid for e in entries: self.assert_(grp.getgrgid(e.gr_gid) in entriesbygid[e.gr_gid]) + self.assert_(grp.getgrnam(e.gr_name) in entriesbyname[e.gr_name]) def test_errors(self): self.assertRaises(TypeError, grp.getgrgid) diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py index 6cc52d7..dbdea79 100644 --- a/Lib/test/test_pwd.py +++ b/Lib/test/test_pwd.py @@ -7,6 +7,7 @@ class PwdTest(unittest.TestCase): def test_values(self): entries = pwd.getpwall() + entriesbyname = {} entriesbyuid = {} for e in entries: @@ -26,17 +27,18 @@ class PwdTest(unittest.TestCase): self.assertEqual(e[6], e.pw_shell) self.assert_(isinstance(e.pw_shell, basestring)) - self.assertEqual(pwd.getpwnam(e.pw_name), e) # The following won't work, because of duplicate entries # for one uid # self.assertEqual(pwd.getpwuid(e.pw_uid), e) # instead of this collect all entries for one uid # and check afterwards + entriesbyname.setdefault(e.pw_name, []).append(e) entriesbyuid.setdefault(e.pw_uid, []).append(e) # check whether the entry returned by getpwuid() # for each uid is among those from getpwall() for this uid for e in entries: + self.assert_(pwd.getpwnam(e.pw_name) in entriesbyname[e.pw_name]) self.assert_(pwd.getpwuid(e.pw_uid) in entriesbyuid[e.pw_uid]) def test_errors(self): |