pypy.objspace.std.test.apptest_typeobjject:test_mutable_bases_keeping_slots
def test_mutable_bases_keeping_slots():
class A(object):
__slots__ = ['a']
class B(A):
__slots__ = []
class C(B):
__slots__ = ['c']
c = C()
c.a = 42
c.c = 85
assert C.__mro__ == (C, B, A, object)
C.__bases__ = (A,)
assert C.__mro__ == (C, A, object)
assert c.a == 42
assert c.c == 85
class D(A):
__slots__ = []
C.__bases__ = (B, D)
assert C.__mro__ == (C, B, D, A, object)
assert c.a == 42
assert c.c == 85
> raises(TypeError, 'C.__bases__ = (B, D, B)')
E TypeError: 'C.__bases__ = (B, D, B)' object (type: <class 'str'>) must be callable
../build/pypy/objspace/std/test/apptest_typeobjject.py:486: TypeError
builder: pypy-c-jit-linux-x86-32 build #8403+
test: pypy.objspace.std.test.apptest_typeobjject:test_mutable_bases_keeping_slots