我在一个基类中有以下修饰符:

class BaseTests(TestCase):
    @staticmethod
    def check_time(self, fn):
        @wraps(fn)
        def test_wrapper(*args,**kwargs):
            # do checks ...
        return test_wrapper

以及从basetests继承的以下类:
from path.base_posting import BaseTests
from path.base_posting.BaseTests import check_time  # THIS LINE DOES NOT WORK!

class SpecificTest(BaseTests):

    @check_time # use the decorator
    def test_post(self):
        # do testing ...

我想在上面的特定测试中使用decorator,而不必使用basetests.check-time,因为在原始代码中它们有长名称,而且我必须在许多地方使用它。有什么想法吗?
编辑:
我决定将check-time作为basetests文件中的一个独立函数,并简单地导入
from path.base_posting import BaseTests, check_time

最佳答案

简单地说

check_time = BaseTests.check_time

在第二个模块中:
from module_paths.base_posting import BaseTests
check_time = BaseTests.check_time

class SpecificTest(BaseTests):

    @check_time # use the decorator
    def test_post(self):
        # do testing ...

您可能还需要重新考虑使check_time成为一个静态方法,因为看起来您的用例更多地使用它作为一个独立的函数,而不是作为一个静态方法。

10-06 07:48