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:
|
class A:
|
||||||
def __init__(self, x):
|
def __init__(self, x):
|
||||||
print('A init', x)
|
print('A init', x)
|
||||||
@ -30,6 +32,9 @@ class Sub(A, B):
|
|||||||
def g(self):
|
def g(self):
|
||||||
print(self.x)
|
print(self.x)
|
||||||
|
|
||||||
|
print(issubclass(Sub, A))
|
||||||
|
print(issubclass(Sub, B))
|
||||||
|
|
||||||
o = Sub()
|
o = Sub()
|
||||||
print(o.x)
|
print(o.x)
|
||||||
o.f()
|
o.f()
|
||||||
|
16
tests/basics/class_super_multinherit.py
Normal file
16
tests/basics/class_super_multinherit.py
Normal file
@ -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()
|
15
tests/basics/sys_getsizeof.py
Normal file
15
tests/basics/sys_getsizeof.py
Normal file
@ -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
|
f.x = 1
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
print('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'
|
b'\x01\x00'
|
||||||
NotImplementedError
|
NotImplementedError
|
||||||
AttributeError
|
AttributeError
|
||||||
|
TypeError
|
||||||
|
A.foo
|
||||||
|
Loading…
Reference in New Issue
Block a user