[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