[Python-checkins] CVS: python/dist/src/Lib/test test_descr.py,1.104,1.105
Guido van Rossum
gvanrossum@users.sourceforge.net
Sat, 24 Nov 2001 13:07:03 -0800
Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv16272
Modified Files:
test_descr.py
Log Message:
- Change all remaining assertions into verify() and vereq() calls.
- Add tests for the recent fixes to copy_reg.py:
__getstate__/__setstate__ and mixed inheritance from new+classic
classes.
Index: test_descr.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_descr.py,v
retrieving revision 1.104
retrieving revision 1.105
diff -C2 -d -r1.104 -r1.105
*** test_descr.py 2001/11/14 23:56:45 1.104
--- test_descr.py 2001/11/24 21:07:01 1.105
***************
*** 554,558 ****
def __init__(self, *a, **kw):
if a:
! assert len(a) == 1
self.state = a[0]
if kw:
--- 554,558 ----
def __init__(self, *a, **kw):
if a:
! vereq(len(a), 1)
self.state = a[0]
if kw:
***************
*** 561,565 ****
return self.get(key, 0)
def __setitem__(self, key, value):
! assert isinstance(key, type(0))
dict.__setitem__(self, key, value)
def setstate(self, state):
--- 561,565 ----
return self.get(key, 0)
def __setitem__(self, key, value):
! verify(isinstance(key, type(0)))
dict.__setitem__(self, key, value)
def setstate(self, state):
***************
*** 2258,2261 ****
--- 2258,2276 ----
return "C2(%r, %r)<%r>" % (self.a, self.b, int(self))
+ global C3
+ class C3(object):
+ def __init__(self, foo):
+ self.foo = foo
+ def __getstate__(self):
+ return self.foo
+ def __setstate__(self, foo):
+ self.foo = foo
+
+ global C4classic, C4
+ class C4classic: # classic
+ pass
+ class C4(C4classic, object): # mixed inheritance
+ pass
+
for p in pickle, cPickle:
for bin in 0, 1:
***************
*** 2272,2284 ****
s = p.dumps((a, b), bin)
x, y = p.loads(s)
! assert x.__class__ == a.__class__
! assert sorteditems(x.__dict__) == sorteditems(a.__dict__)
! assert y.__class__ == b.__class__
! assert sorteditems(y.__dict__) == sorteditems(b.__dict__)
! assert `x` == `a`
! assert `y` == `b`
if verbose:
print "a = x =", a
print "b = y =", b
# Testing copy.deepcopy()
--- 2287,2312 ----
s = p.dumps((a, b), bin)
x, y = p.loads(s)
! vereq(x.__class__, a.__class__)
! vereq(sorteditems(x.__dict__), sorteditems(a.__dict__))
! vereq(y.__class__, b.__class__)
! vereq(sorteditems(y.__dict__), sorteditems(b.__dict__))
! vereq(`x`, `a`)
! vereq(`y`, `b`)
if verbose:
print "a = x =", a
print "b = y =", b
+ # Test for __getstate__ and __setstate__ on new style class
+ u = C3(42)
+ s = p.dumps(u, bin)
+ v = p.loads(s)
+ veris(u.__class__, v.__class__)
+ vereq(u.foo, v.foo)
+ # Test for picklability of hybrid class
+ u = C4()
+ u.foo = 42
+ s = p.dumps(u, bin)
+ v = p.loads(s)
+ veris(u.__class__, v.__class__)
+ vereq(u.foo, v.foo)
# Testing copy.deepcopy()
***************
*** 2293,2302 ****
b = C2("hello", "world", 42)
x, y = copy.deepcopy((a, b))
! assert x.__class__ == a.__class__
! assert sorteditems(x.__dict__) == sorteditems(a.__dict__)
! assert y.__class__ == b.__class__
! assert sorteditems(y.__dict__) == sorteditems(b.__dict__)
! assert `x` == `a`
! assert `y` == `b`
if verbose:
print "a = x =", a
--- 2321,2330 ----
b = C2("hello", "world", 42)
x, y = copy.deepcopy((a, b))
! vereq(x.__class__, a.__class__)
! vereq(sorteditems(x.__dict__), sorteditems(a.__dict__))
! vereq(y.__class__, b.__class__)
! vereq(sorteditems(y.__dict__), sorteditems(b.__dict__))
! vereq(`x`, `a`)
! vereq(`y`, `b`)
if verbose:
print "a = x =", a