mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
#11572: improvements to copy module tests along with removal of old test suite
This commit is contained in:
parent
29f6297605
commit
4dc9c84ed9
2 changed files with 95 additions and 138 deletions
65
Lib/copy.py
65
Lib/copy.py
|
@ -323,68 +323,3 @@ del types
|
|||
# Helper for instance creation without calling __init__
|
||||
class _EmptyClass:
|
||||
pass
|
||||
|
||||
def _test():
|
||||
l = [None, 1, 2, 3.14, 'xyzzy', (1, 2), [3.14, 'abc'],
|
||||
{'abc': 'ABC'}, (), [], {}]
|
||||
l1 = copy(l)
|
||||
print(l1==l)
|
||||
l1 = map(copy, l)
|
||||
print(l1==l)
|
||||
l1 = deepcopy(l)
|
||||
print(l1==l)
|
||||
class C:
|
||||
def __init__(self, arg=None):
|
||||
self.a = 1
|
||||
self.arg = arg
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
file = sys.argv[0]
|
||||
else:
|
||||
file = __file__
|
||||
self.fp = open(file)
|
||||
self.fp.close()
|
||||
def __getstate__(self):
|
||||
return {'a': self.a, 'arg': self.arg}
|
||||
def __setstate__(self, state):
|
||||
for key, value in state.items():
|
||||
setattr(self, key, value)
|
||||
def __deepcopy__(self, memo=None):
|
||||
new = self.__class__(deepcopy(self.arg, memo))
|
||||
new.a = self.a
|
||||
return new
|
||||
c = C('argument sketch')
|
||||
l.append(c)
|
||||
l2 = copy(l)
|
||||
print(l == l2)
|
||||
print(l)
|
||||
print(l2)
|
||||
l2 = deepcopy(l)
|
||||
print(l == l2)
|
||||
print(l)
|
||||
print(l2)
|
||||
l.append({l[1]: l, 'xyz': l[2]})
|
||||
l3 = copy(l)
|
||||
import reprlib
|
||||
print(map(reprlib.repr, l))
|
||||
print(map(reprlib.repr, l1))
|
||||
print(map(reprlib.repr, l2))
|
||||
print(map(reprlib.repr, l3))
|
||||
l3 = deepcopy(l)
|
||||
print(map(reprlib.repr, l))
|
||||
print(map(reprlib.repr, l1))
|
||||
print(map(reprlib.repr, l2))
|
||||
print(map(reprlib.repr, l3))
|
||||
class odict(dict):
|
||||
def __init__(self, d = {}):
|
||||
self.a = 99
|
||||
dict.__init__(self, d)
|
||||
def __setitem__(self, k, i):
|
||||
dict.__setitem__(self, k, i)
|
||||
self.a
|
||||
o = odict({"A" : "B"})
|
||||
x = deepcopy(o)
|
||||
print(o, x)
|
||||
|
||||
if __name__ == '__main__':
|
||||
_test()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue