def test_cls_argument_can_be_a_list_of_classes(self):
        class Baz(object):
            pass

        class Bar(object):
            pass

        class Extension(object):
            @extends([Baz, Bar])
            def func1(self):
                return 'overridden func1 in %s' % self.__class__.__name__

            @extends(Baz)
            def func2(self):
                return 'overridden func2 in %s' % self.__class__.__name__

            @extends(Bar)
            def func3(self):
                return 'overridden func3 in %s' % self.__class__.__name__

        b1 = Baz()
        b2 = Bar()

        self.assertEqual(
            b1.func1(), 'overridden func1 in Baz'
        )

        self.assertEqual(
            b2.func1(), 'overridden func1 in Bar'
        )

        self.assertEqual(
            b1.func2(), 'overridden func2 in Baz'
        )

        self.assertEqual(
            b2.func3(), 'overridden func3 in Bar'
        )
Decorate a function to augment an enviroment
dataset/ETHPy150Open eoyilmaz/anima/tests/extension/__init__.py/ExtenderTester.test_cls_argument_can_be_a_list_of_classes--crossover with--dataset/ETHPy150Open sbp/duxlot/functions.py/builder