tests: Add tests to improve coverage of py/objtype.c.
This commit is contained in:
parent
badaf3ecfe
commit
36f79523ab
|
@ -1,3 +1,5 @@
|
|||
# test multiple inheritance of user classes
|
||||
|
||||
class A:
|
||||
def __init__(self, x):
|
||||
print('A init', x)
|
||||
|
@ -30,6 +32,9 @@ class Sub(A, B):
|
|||
def g(self):
|
||||
print(self.x)
|
||||
|
||||
print(issubclass(Sub, A))
|
||||
print(issubclass(Sub, B))
|
||||
|
||||
o = Sub()
|
||||
print(o.x)
|
||||
o.f()
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
# test super with multiple inheritance
|
||||
|
||||
class A:
|
||||
def foo(self):
|
||||
print('A.foo')
|
||||
|
||||
class B:
|
||||
def foo(self):
|
||||
print('B.foo')
|
||||
|
||||
class C(A, B):
|
||||
def foo(self):
|
||||
print('C.foo')
|
||||
super().foo()
|
||||
|
||||
C().foo()
|
|
@ -0,0 +1,15 @@
|
|||
# test sys.getsizeof() function
|
||||
|
||||
import sys
|
||||
try:
|
||||
sys.getsizeof
|
||||
except AttributeError:
|
||||
print('SKIP')
|
||||
raise SystemExit
|
||||
|
||||
print(sys.getsizeof([1, 2]) >= 2)
|
||||
print(sys.getsizeof({1: 2}) >= 2)
|
||||
|
||||
class A:
|
||||
pass
|
||||
print(sys.getsizeof(A()) > 0)
|
|
@ -124,3 +124,18 @@ try:
|
|||
f.x = 1
|
||||
except AttributeError:
|
||||
print('AttributeError')
|
||||
|
||||
# can't call a function type (ie make new instances of a function)
|
||||
try:
|
||||
type(f)()
|
||||
except TypeError:
|
||||
print('TypeError')
|
||||
|
||||
# test when object explicitly listed at not-last position in parent tuple
|
||||
# this is not compliant with CPython because of illegal MRO
|
||||
class A:
|
||||
def foo(self):
|
||||
print('A.foo')
|
||||
class B(object, A):
|
||||
pass
|
||||
B().foo()
|
||||
|
|
|
@ -18,3 +18,5 @@ b'\x01\x02'
|
|||
b'\x01\x00'
|
||||
NotImplementedError
|
||||
AttributeError
|
||||
TypeError
|
||||
A.foo
|
||||
|
|
Loading…
Reference in New Issue