Skip to content
Snippets Groups Projects
Commit 36f79523 authored by Damien George's avatar Damien George
Browse files

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

parent badaf3ec
No related branches found
No related tags found
No related merge requests found
# 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): ...@@ -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()
......
# 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()
# 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: ...@@ -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' ...@@ -18,3 +18,5 @@ b'\x01\x02'
b'\x01\x00' b'\x01\x00'
NotImplementedError NotImplementedError
AttributeError AttributeError
TypeError
A.foo
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment