mirror of https://github.com/python/cpython.git
gh-99430: Remove duplicated tests for old-styled classes (#99432)
python 1 & 2 were a loong time ago.
This commit is contained in:
parent
439b9cfaf4
commit
d329f859b9
|
@ -2,85 +2,7 @@
|
|||
|
||||
import types
|
||||
|
||||
class A_classic:
|
||||
"A classic class."
|
||||
def A_method(self):
|
||||
"Method defined in A."
|
||||
def AB_method(self):
|
||||
"Method defined in A and B."
|
||||
def AC_method(self):
|
||||
"Method defined in A and C."
|
||||
def AD_method(self):
|
||||
"Method defined in A and D."
|
||||
def ABC_method(self):
|
||||
"Method defined in A, B and C."
|
||||
def ABD_method(self):
|
||||
"Method defined in A, B and D."
|
||||
def ACD_method(self):
|
||||
"Method defined in A, C and D."
|
||||
def ABCD_method(self):
|
||||
"Method defined in A, B, C and D."
|
||||
|
||||
|
||||
class B_classic(A_classic):
|
||||
"A classic class, derived from A_classic."
|
||||
def AB_method(self):
|
||||
"Method defined in A and B."
|
||||
def ABC_method(self):
|
||||
"Method defined in A, B and C."
|
||||
def ABD_method(self):
|
||||
"Method defined in A, B and D."
|
||||
def ABCD_method(self):
|
||||
"Method defined in A, B, C and D."
|
||||
def B_method(self):
|
||||
"Method defined in B."
|
||||
def BC_method(self):
|
||||
"Method defined in B and C."
|
||||
def BD_method(self):
|
||||
"Method defined in B and D."
|
||||
def BCD_method(self):
|
||||
"Method defined in B, C and D."
|
||||
|
||||
class C_classic(A_classic):
|
||||
"A classic class, derived from A_classic."
|
||||
def AC_method(self):
|
||||
"Method defined in A and C."
|
||||
def ABC_method(self):
|
||||
"Method defined in A, B and C."
|
||||
def ACD_method(self):
|
||||
"Method defined in A, C and D."
|
||||
def ABCD_method(self):
|
||||
"Method defined in A, B, C and D."
|
||||
def BC_method(self):
|
||||
"Method defined in B and C."
|
||||
def BCD_method(self):
|
||||
"Method defined in B, C and D."
|
||||
def C_method(self):
|
||||
"Method defined in C."
|
||||
def CD_method(self):
|
||||
"Method defined in C and D."
|
||||
|
||||
class D_classic(B_classic, C_classic):
|
||||
"A classic class, derived from B_classic and C_classic."
|
||||
def AD_method(self):
|
||||
"Method defined in A and D."
|
||||
def ABD_method(self):
|
||||
"Method defined in A, B and D."
|
||||
def ACD_method(self):
|
||||
"Method defined in A, C and D."
|
||||
def ABCD_method(self):
|
||||
"Method defined in A, B, C and D."
|
||||
def BD_method(self):
|
||||
"Method defined in B and D."
|
||||
def BCD_method(self):
|
||||
"Method defined in B, C and D."
|
||||
def CD_method(self):
|
||||
"Method defined in C and D."
|
||||
def D_method(self):
|
||||
"Method defined in D."
|
||||
|
||||
|
||||
class A_new(object):
|
||||
class A_new:
|
||||
"A new-style class."
|
||||
|
||||
def A_method(self):
|
||||
|
|
|
@ -88,9 +88,7 @@ def __getattribute__(self, name):
|
|||
# Type-specific _copy_xxx() methods
|
||||
|
||||
def test_copy_atomic(self):
|
||||
class Classic:
|
||||
pass
|
||||
class NewStyle(object):
|
||||
class NewStyle:
|
||||
pass
|
||||
def f():
|
||||
pass
|
||||
|
@ -100,7 +98,7 @@ class WithMetaclass(metaclass=abc.ABCMeta):
|
|||
42, 2**100, 3.14, True, False, 1j,
|
||||
"hello", "hello\u1234", f.__code__,
|
||||
b"world", bytes(range(256)), range(10), slice(1, 10, 2),
|
||||
NewStyle, Classic, max, WithMetaclass, property()]
|
||||
NewStyle, max, WithMetaclass, property()]
|
||||
for x in tests:
|
||||
self.assertIs(copy.copy(x), x)
|
||||
|
||||
|
@ -350,15 +348,13 @@ def __getattribute__(self, name):
|
|||
# Type-specific _deepcopy_xxx() methods
|
||||
|
||||
def test_deepcopy_atomic(self):
|
||||
class Classic:
|
||||
pass
|
||||
class NewStyle(object):
|
||||
class NewStyle:
|
||||
pass
|
||||
def f():
|
||||
pass
|
||||
tests = [None, 42, 2**100, 3.14, True, False, 1j,
|
||||
"hello", "hello\u1234", f.__code__,
|
||||
NewStyle, range(10), Classic, max, property()]
|
||||
NewStyle, range(10), max, property()]
|
||||
for x in tests:
|
||||
self.assertIs(copy.deepcopy(x), x)
|
||||
|
||||
|
|
|
@ -3261,12 +3261,8 @@ def __get__(self, object, otype):
|
|||
if otype:
|
||||
otype = otype.__name__
|
||||
return 'object=%s; type=%s' % (object, otype)
|
||||
class OldClass:
|
||||
class NewClass:
|
||||
__doc__ = DocDescr()
|
||||
class NewClass(object):
|
||||
__doc__ = DocDescr()
|
||||
self.assertEqual(OldClass.__doc__, 'object=None; type=OldClass')
|
||||
self.assertEqual(OldClass().__doc__, 'object=OldClass instance; type=OldClass')
|
||||
self.assertEqual(NewClass.__doc__, 'object=None; type=NewClass')
|
||||
self.assertEqual(NewClass().__doc__, 'object=NewClass instance; type=NewClass')
|
||||
|
||||
|
|
|
@ -542,48 +542,6 @@ def __getattr__(self, someattribute):
|
|||
self.assertEqual(gc.collect(), 2)
|
||||
self.assertEqual(len(gc.garbage), garbagelen)
|
||||
|
||||
def test_boom_new(self):
|
||||
# boom__new and boom2_new are exactly like boom and boom2, except use
|
||||
# new-style classes.
|
||||
|
||||
class Boom_New(object):
|
||||
def __getattr__(self, someattribute):
|
||||
del self.attr
|
||||
raise AttributeError
|
||||
|
||||
a = Boom_New()
|
||||
b = Boom_New()
|
||||
a.attr = b
|
||||
b.attr = a
|
||||
|
||||
gc.collect()
|
||||
garbagelen = len(gc.garbage)
|
||||
del a, b
|
||||
self.assertEqual(gc.collect(), 2)
|
||||
self.assertEqual(len(gc.garbage), garbagelen)
|
||||
|
||||
def test_boom2_new(self):
|
||||
class Boom2_New(object):
|
||||
def __init__(self):
|
||||
self.x = 0
|
||||
|
||||
def __getattr__(self, someattribute):
|
||||
self.x += 1
|
||||
if self.x > 1:
|
||||
del self.attr
|
||||
raise AttributeError
|
||||
|
||||
a = Boom2_New()
|
||||
b = Boom2_New()
|
||||
a.attr = b
|
||||
b.attr = a
|
||||
|
||||
gc.collect()
|
||||
garbagelen = len(gc.garbage)
|
||||
del a, b
|
||||
self.assertEqual(gc.collect(), 2)
|
||||
self.assertEqual(len(gc.garbage), garbagelen)
|
||||
|
||||
def test_get_referents(self):
|
||||
alist = [1, 3, 5]
|
||||
got = gc.get_referents(alist)
|
||||
|
|
|
@ -2380,12 +2380,7 @@ class s1:
|
|||
def __repr__(self):
|
||||
return '\\n'
|
||||
|
||||
class s2:
|
||||
def __repr__(self):
|
||||
return '\\n'
|
||||
|
||||
self.assertEqual(repr(s1()), '\\n')
|
||||
self.assertEqual(repr(s2()), '\\n')
|
||||
|
||||
def test_printable_repr(self):
|
||||
self.assertEqual(repr('\U00010000'), "'%c'" % (0x10000,)) # printable
|
||||
|
|
Loading…
Reference in New Issue