您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python上模拟超类调用

在python上模拟超类调用

我找到了一种方法,但是有点奏效,但是可以用我的示例进行解释,它基于响应,因此感谢@kindall:

def my_test(self):
    import __builtin__
    from mocker import Mocker, kwargs, ARGS

    mymocker = mocker.mock()
    mymocker.my_function(ARGS, kwargs)
    mocker.throw(MyException)

    def mysuper(*args, **kwargs):
        if args and issubclass(MyClass, args[0]):
            return mymocker
        return original_super(*args, **kwargs)

    __builtin__.original_super = super
    __builtin__.super = mysuper

    with mocker:
        MyClass.myfunc()

所以本质上我要做的是检查super调用是否来自我要模拟的类,否则只需执行normal即可super

希望这可以帮助某人:)

python 2022/1/1 18:42:21 有284人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶