tests: Add tests to improve coverage of py/objtype.c.

This commit is contained in:
Damien George 2017-12-14 12:25:30 +11:00
parent badaf3ecfe
commit 36f79523ab
5 changed files with 53 additions and 0 deletions

View File

@ -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()

View 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()

View 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)

View File

@ -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()

View File

@ -18,3 +18,5 @@ b'\x01\x02'
b'\x01\x00' b'\x01\x00'
NotImplementedError NotImplementedError
AttributeError AttributeError
TypeError
A.foo