Я использую этот способ оформления всех методов
import inspect
def decallmethods(decorator, prefix='test_'):
def dectheclass(cls):
for name, m in inspect.getmembers(cls, inspect.ismethod):
if name.startswith(prefix):
setattr(cls, name, decorator(m))
return cls
return dectheclass
@decallmethods(login_testuser)
class TestCase(object):
def setUp(self):
pass
def test_1(self):
print "test_1()"
def test_2(self):
print "test_2()"
Это работает, но оно применяется сверху, если у меня есть другие декораторы.
Я имею в виду
Теперь результат
@login_testuser
@other
def test_2(self):
print "test_2()"
Но я хочу
@other
@login_testuser
def test_2(self):
print "test_2()"