* add the metaclass test from new style classes paper
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
# Copyright (C) 2005, TUBITAK/UEKAE
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free
|
||||||
|
# Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# Please read the COPYING file.
|
||||||
|
#
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pisi import version
|
||||||
|
from pisi.oo import *
|
||||||
|
|
||||||
|
class OOTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def testautosuper(self):
|
||||||
|
class A:
|
||||||
|
__metaclass__ = autosuper
|
||||||
|
def meth(self):
|
||||||
|
return "A"
|
||||||
|
class B(A):
|
||||||
|
def meth(self):
|
||||||
|
return "B" + self.__super.meth()
|
||||||
|
class C(A):
|
||||||
|
def meth(self):
|
||||||
|
return "C" + self.__super.meth()
|
||||||
|
class D(C, B):
|
||||||
|
def meth(self):
|
||||||
|
return "D" + self.__super.meth()
|
||||||
|
|
||||||
|
self.assert_( D().meth() == "DCBA" )
|
||||||
|
|
||||||
|
suite = unittest.makeSuite(OOTestCase)
|
||||||
|
|
||||||
Reference in New Issue
Block a user