首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python3中的`MagicMock`能和int相比吗?

python3中的`MagicMock`能和int相比吗?
EN

Stack Overflow用户
提问于 2019-01-22 12:21:12
回答 1查看 2.7K关注 0票数 6

我正在迁移我的项目的python版本(2->3)。测试适用于python2,但抱怨适用于python3,错误如下

代码语言:javascript
复制
TypeError: '>' not supported between instances of 'MagicMock' and 'int'

下面是一个最小的例子

代码语言:javascript
复制
# test_mock.py
try:
    from mock import MagicMock
except:
    from unittest.mock import MagicMock

def test_mock_func():
    a = MagicMock()
    b = a.value

    if b > 100:
        assert True
    else:
        assert True 

只需运行py.test .

这些黑客技术不起作用

代码语言:javascript
复制
MagicMock.__le__ = some_le_method # just not working

MagicMock.__le__.__func__.__code = some_le_method.__func__.__code__ # wrapper_descriptor does not have attribute __func__
EN

回答 1

Stack Overflow用户

发布于 2020-01-16 11:40:31

您应该在ba.value内部分配__gt__

代码语言:javascript
复制
# self is MagicMock itself
b.__gt__ = lambda self, compare: True
# or
a.value.__gt__ = lambda self, compare: True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54301232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档