mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Fix the test so that it works even when /etc/passwd has two entries
for the same uid.
This commit is contained in:
parent
0fc8f00252
commit
66e1e508b9
1 changed files with 12 additions and 1 deletions
|
@ -7,6 +7,7 @@ class PwdTest(unittest.TestCase):
|
|||
|
||||
def test_values(self):
|
||||
entries = pwd.getpwall()
|
||||
entriesbyuid = {}
|
||||
|
||||
for e in entries:
|
||||
self.assertEqual(len(e), 7)
|
||||
|
@ -26,7 +27,17 @@ class PwdTest(unittest.TestCase):
|
|||
self.assert_(isinstance(e.pw_shell, basestring))
|
||||
|
||||
self.assertEqual(pwd.getpwnam(e.pw_name), e)
|
||||
self.assertEqual(pwd.getpwuid(e.pw_uid), 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
|
||||
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.getpwuid(e.pw_uid) in entriesbyuid[e.pw_uid])
|
||||
|
||||
def test_errors(self):
|
||||
self.assertRaises(TypeError, pwd.getpwuid)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue