[Python-checkins] python/dist/src/Lib/test pickletester.py, 1.55, 1.56 test_builtin.py, 1.23, 1.24 test_copy.py, 1.11, 1.12 test_richcmp.py, 1.9, 1.10

arigo at users.sourceforge.net arigo at users.sourceforge.net
Tue Oct 28 07:05:49 EST 2003


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

Modified Files:
	pickletester.py test_builtin.py test_copy.py test_richcmp.py 
Log Message:
Deleting cyclic object comparison.
SF patch 825639
http://mail.python.org/pipermail/python-dev/2003-October/039445.html



Index: pickletester.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/pickletester.py,v
retrieving revision 1.55
retrieving revision 1.56
diff -C2 -d -r1.55 -r1.56
*** pickletester.py	2 Mar 2003 13:53:18 -0000	1.55
--- pickletester.py	28 Oct 2003 12:05:47 -0000	1.56
***************
*** 425,431 ****
              s = self.dumps(l, proto)
              x = self.loads(s)
!             self.assertEqual(x, l)
!             self.assertEqual(x, x[0])
!             self.assertEqual(id(x), id(x[0]))
  
      def test_recursive_dict(self):
--- 425,430 ----
              s = self.dumps(l, proto)
              x = self.loads(s)
!             self.assertEqual(len(x), 1)
!             self.assert_(x is x[0])
  
      def test_recursive_dict(self):
***************
*** 435,441 ****
              s = self.dumps(d, proto)
              x = self.loads(s)
!             self.assertEqual(x, d)
!             self.assertEqual(x[1], x)
!             self.assertEqual(id(x[1]), id(x))
  
      def test_recursive_inst(self):
--- 434,439 ----
              s = self.dumps(d, proto)
              x = self.loads(s)
!             self.assertEqual(x.keys(), [1])
!             self.assert_(x[1] is x)
  
      def test_recursive_inst(self):
***************
*** 445,451 ****
              s = self.dumps(i, 2)
              x = self.loads(s)
!             self.assertEqual(x, i)
!             self.assertEqual(x.attr, x)
!             self.assertEqual(id(x.attr), id(x))
  
      def test_recursive_multi(self):
--- 443,448 ----
              s = self.dumps(i, 2)
              x = self.loads(s)
!             self.assertEqual(dir(x), dir(i))
!             self.assert_(x.attr is x)
  
      def test_recursive_multi(self):
***************
*** 458,467 ****
              s = self.dumps(l, proto)
              x = self.loads(s)
!             self.assertEqual(x, l)
!             self.assertEqual(x[0], i)
!             self.assertEqual(x[0].attr, d)
!             self.assertEqual(x[0].attr[1], x)
!             self.assertEqual(x[0].attr[1][0], i)
!             self.assertEqual(x[0].attr[1][0].attr, d)
  
      def test_garyp(self):
--- 455,462 ----
              s = self.dumps(l, proto)
              x = self.loads(s)
!             self.assertEqual(len(x), 1)
!             self.assertEqual(dir(x[0]), dir(i))
!             self.assertEqual(x[0].attr.keys(), [1])
!             self.assert_(x[0].attr[1] is x)
  
      def test_garyp(self):

Index: test_builtin.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_builtin.py,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** test_builtin.py	15 Aug 2003 17:52:39 -0000	1.23
--- test_builtin.py	28 Oct 2003 12:05:47 -0000	1.24
***************
*** 168,181 ****
          self.assertEqual(cmp(1, -1), 1)
          self.assertEqual(cmp(1, 1), 0)
!         # verify that circular objects are handled
          a = []; a.append(a)
          b = []; b.append(b)
          from UserList import UserList
          c = UserList(); c.append(c)
!         self.assertEqual(cmp(a, b), 0)
!         self.assertEqual(cmp(b, c), 0)
!         self.assertEqual(cmp(c, a), 0)
!         self.assertEqual(cmp(a, c), 0)
!         # okay, now break the cycles
          a.pop(); b.pop(); c.pop()
          self.assertRaises(TypeError, cmp)
--- 168,181 ----
          self.assertEqual(cmp(1, -1), 1)
          self.assertEqual(cmp(1, 1), 0)
!         # verify that circular objects are not handled
          a = []; a.append(a)
          b = []; b.append(b)
          from UserList import UserList
          c = UserList(); c.append(c)
!         self.assertRaises(RuntimeError, cmp, a, b)
!         self.assertRaises(RuntimeError, cmp, b, c)
!         self.assertRaises(RuntimeError, cmp, c, a)
!         self.assertRaises(RuntimeError, cmp, a, c)
!        # okay, now break the cycles
          a.pop(); b.pop(); c.pop()
          self.assertRaises(TypeError, cmp)

Index: test_copy.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_copy.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** test_copy.py	14 Jun 2003 07:10:06 -0000	1.11
--- test_copy.py	28 Oct 2003 12:05:47 -0000	1.12
***************
*** 273,280 ****
          x.append(x)
          y = copy.deepcopy(x)
!         self.assertEqual(y, x)
          self.assert_(y is not x)
!         self.assert_(y[0] is not x[0])
!         self.assert_(y is y[0])
  
      def test_deepcopy_tuple(self):
--- 273,280 ----
          x.append(x)
          y = copy.deepcopy(x)
!         self.assertRaises(RuntimeError, cmp, y, x)
          self.assert_(y is not x)
!         self.assert_(y[0] is y)
!         self.assertEqual(len(y), 1)
  
      def test_deepcopy_tuple(self):
***************
*** 289,293 ****
          x[0].append(x)
          y = copy.deepcopy(x)
!         self.assertEqual(y, x)
          self.assert_(y is not x)
          self.assert_(y[0] is not x[0])
--- 289,293 ----
          x[0].append(x)
          y = copy.deepcopy(x)
!         self.assertRaises(RuntimeError, cmp, y, x)
          self.assert_(y is not x)
          self.assert_(y[0] is not x[0])
***************
*** 305,312 ****
          x['foo'] = x
          y = copy.deepcopy(x)
!         self.assertEqual(y, x)
          self.assert_(y is not x)
          self.assert_(y['foo'] is y)
!         self.assertEqual(y, {'foo': y})
  
      def test_deepcopy_keepalive(self):
--- 305,312 ----
          x['foo'] = x
          y = copy.deepcopy(x)
!         self.assertRaises(RuntimeError, cmp, y, x)
          self.assert_(y is not x)
          self.assert_(y['foo'] is y)
!         self.assertEqual(len(y), 1)
  
      def test_deepcopy_keepalive(self):

Index: test_richcmp.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_richcmp.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** test_richcmp.py	1 May 2003 17:45:47 -0000	1.9
--- test_richcmp.py	28 Oct 2003 12:05:47 -0000	1.10
***************
*** 225,279 ****
  
      def test_recursion(self):
!         # Check comparison for recursive objects
          from UserList import UserList
-         a = UserList(); a.append(a)
-         b = UserList(); b.append(b)
- 
-         self.assert_(a == b)
-         self.assert_(not a != b)
-         a.append(1)
-         self.assert_(a == a[0])
-         self.assert_(not a != a[0])
-         self.assert_(a != b)
-         self.assert_(not a == b)
-         b.append(0)
-         self.assert_(a != b)
-         self.assert_(not a == b)
-         a[1] = -1
-         self.assert_(a != b)
-         self.assert_(not a == b)
- 
          a = UserList()
          b = UserList()
          a.append(b)
          b.append(a)
!         self.assert_(a == b)
!         self.assert_(not a != b)
  
          b.append(17)
          self.assert_(a != b)
!         self.assert_(not a == b)
          a.append(17)
!         self.assert_(a == b)
!         self.assert_(not a != b)
! 
!     def test_recursion2(self):
!         # This test exercises the circular structure handling code
!         # in PyObject_RichCompare()
!         class Weird(object):
!             def __eq__(self, other):
!                 return self != other
!             def __ne__(self, other):
!                 return self == other
!             def __lt__(self, other):
!                 return self > other
!             def __gt__(self, other):
!                 return self < other
! 
!         self.assert_(Weird() == Weird())
!         self.assert_(not (Weird() != Weird()))
! 
!         for op in opmap["lt"]:
!             self.assertRaises(ValueError, op, Weird(), Weird())
  
  class DictTest(unittest.TestCase):
--- 225,258 ----
  
      def test_recursion(self):
!         # Check that comparison for recursive objects fails gracefully
          from UserList import UserList
          a = UserList()
          b = UserList()
          a.append(b)
          b.append(a)
!         self.assertRaises(RuntimeError, operator.eq, a, b)
!         self.assertRaises(RuntimeError, operator.ne, a, b)
!         self.assertRaises(RuntimeError, operator.lt, a, b)
!         self.assertRaises(RuntimeError, operator.le, a, b)
!         self.assertRaises(RuntimeError, operator.gt, a, b)
!         self.assertRaises(RuntimeError, operator.ge, a, b)
  
          b.append(17)
+         # Even recursive lists of different lengths are different,
+         # but they cannot be ordered
+         self.assert_(not (a == b))
          self.assert_(a != b)
!         self.assertRaises(RuntimeError, operator.lt, a, b)
!         self.assertRaises(RuntimeError, operator.le, a, b)
!         self.assertRaises(RuntimeError, operator.gt, a, b)
!         self.assertRaises(RuntimeError, operator.ge, a, b)
          a.append(17)
!         self.assertRaises(RuntimeError, operator.eq, a, b)
!         self.assertRaises(RuntimeError, operator.ne, a, b)
!         a.insert(0, 11)
!         b.insert(0, 12)
!         self.assert_(not (a == b))
!         self.assert_(a != b)
!         self.assert_(a < b)
  
  class DictTest(unittest.TestCase):





More information about the Python-checkins mailing list