[Python-checkins] python/dist/src/Lib/test test_grp.py,1.16,1.17

doerwalter@users.sourceforge.net doerwalter@users.sourceforge.net
Mon, 05 May 2003 13:37:35 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv11889/Lib/test

Modified Files:
	test_grp.py 
Log Message:
On Mac OS X pwd.getpwall() might return the tuples
('pgsql', '*', 252, []) and ('postgres', '*', 252, ['skip']),
but pwd.getgrgid(252) might return ('pgsql', '', 252, ['skip']).

Drop the test that tried to find a tuple similar to the one
returned from pwd.getgrgid() among those for the same gid returned
by pwd.getgrall(), as the only working definition of 'similar' seems
to be 'has the same gid'. This check can be done more directly.

This should fix SF bug #732783.


Index: test_grp.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_grp.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** test_grp.py	1 May 2003 17:45:37 -0000	1.16
--- test_grp.py	5 May 2003 20:37:33 -0000	1.17
***************
*** 20,55 ****
          self.assert_(isinstance(value.gr_mem, list))
  
-     def valueseq(self, value1, value2):
-         # are two grp tuples equal (don't compare passwords)
-         return value1.gr_name==value2.gr_name and \
-             value1.gr_gid==value2.gr_gid and value1.gr_mem==value2.gr_mem
- 
      def test_values(self):
          entries = grp.getgrall()
-         entriesbygid = {}
-         entriesbyname = {}
- 
-         # we can't use the same strategy as in test_pwd, because
-         # we can't compare gr_passwd (Mac OS X returns
-         # "*" in getgrall() and "" in getgrgid())
  
          for e in entries:
              self.check_value(e)
-             entriesbygid.setdefault(e.gr_gid, []).append(e)
-             entriesbyname.setdefault(e.gr_name, []).append(e)
  
          for e in entries:
              e2 = grp.getgrgid(e.gr_gid)
              self.check_value(e2)
!             # make sure that at least one of the entries
!             # for this gid compares equal to e2
!             self.assert_(max([self.valueseq(e2, x) \
!                 for x in entriesbygid[e.gr_gid]]))
              e2 = grp.getgrnam(e.gr_name)
              self.check_value(e2)
!             # make sure that at least one of the entries
!             # for this name compares equal to e2
!             self.assert_(max([self.valueseq(e2, x) \
!                 for x in entriesbyname[e.gr_name]]))
  
      def test_errors(self):
--- 20,36 ----
          self.assert_(isinstance(value.gr_mem, list))
  
      def test_values(self):
          entries = grp.getgrall()
  
          for e in entries:
              self.check_value(e)
  
          for e in entries:
              e2 = grp.getgrgid(e.gr_gid)
              self.check_value(e2)
!             self.assertEqual(e2.gr_gid, e.gr_gid)
              e2 = grp.getgrnam(e.gr_name)
              self.check_value(e2)
!             self.assertEqual(e2.gr_name, e.gr_name)
  
      def test_errors(self):