如何使用 mox 模拟类属性?

2024-02-01

我有一堂课:

class MyClass(object):
    @property
    def myproperty(self):
        return 'hello'

Using mox http://code.google.com/p/pymox/ and py.test,我如何模拟myproperty?

我试过了:

mock.StubOutWithMock(myclass, 'myproperty')
myclass.myproperty = 'goodbye'

and

mock.StubOutWithMock(myclass, 'myproperty')
myclass.myproperty.AndReturns('goodbye')

但都失败了AttributeError: can't set attribute.


删除类属性时mox uses setattr. Thus

mock.StubOutWithMock(myinstance, 'myproperty')
myinstance.myproperty = 'goodbye'

相当于

# Save old attribute so it can be replaced during teardown
saved = getattr(myinstance, 'myproperty')
# Replace the existing attribute with a mock
mocked = MockAnything()
setattr(myinstance, 'myproperty', mocked)

请注意,因为myproperty是一个财产getattr and setattr将调用该属性的__get__ and __set__方法,而不是实际“模拟”属性本身。

因此,为了获得您想要的结果,您只需更深入地模拟实例类上的属性即可。

mock.StubOutWithMock(myinstance.__class__, 'myproperty')
myinstance.myproperty = 'goodbye'

请注意,如果您希望同时使用不同的方式模拟 MyClass 的多个实例,这可能会导致问题myproperty values.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 mox 模拟类属性? 的相关文章

  • Django 是否使用一个线程来处理 WSGI 或 Gunicorn 中的多个请求?

    根据标题 我想知道 Django 在通过 WSGI 或 Gunicorn 运行时是否使用一个线程来处理多个请求 我知道从不应该访问的地方访问请求是一种不好的做法 但我仍然想这样做 我认为有充分的理由 例如在我的自定义模板加载器中访问当前用户
  • 当图例位于轴之外时选择 matplotlib 图例

    当我修改 legend picking py 示例时 我遇到了一个有趣的怪癖 其中图例位于轴之外 如下所示 leg ax legend loc upper left fancybox True shadow True leg ax lege
  • Scrapy 未通过请求回调从项目中的已抓取链接返回附加信息

    基本上 下面的代码会抓取表格的前 5 项 其中一个字段是另一个 href 单击该 href 会提供更多信息 我想收集这些信息并将其添加到原始项目中 所以parse应该将半填充的项目传递给parse next page然后刮掉下一位并返回完成
  • Scrapy 仅抓取每个页面的第一个结果

    我目前正在尝试运行以下代码 但它只保留每个页面的第一个结果 知道可能是什么问题吗 from scrapy contrib spiders import CrawlSpider Rule from scrapy contrib linkext
  • 尽管 Matplotlib FuncAnimation(...,repeat=False) 保存的动画图不断循环

    我想使用制作动画matplotlib进行 Powerpoint 演示 动画应该只播放一次 在我的代码中 参数repeat of FuncAnimation 被设置为 false 因为我需要将图导入到powerpoint中 所以我使用保存它a
  • SQLAlchemy - 如何使用 SQLAlchemy 做出“django 选择”?

    在 Django 中 我们可以使用非常简单的 选择 例如 GENDER CHOICES M Male F Female class Foo models Model gender models CharField max length 1
  • Jupyter 笔记本中未显示绘图

    我正在尝试为 Anscombe 数据集创建 2x2 图 加载数据集并分离数据集中的每个类 import seaborn as sns import matplotlib pyplot as plt anscombe sns load dat
  • 如何编辑 QProgressBar 的样式表

    我无法在我的应用程序中编辑进度条的颜色 仅编辑文本颜色 pyhton 3 9 PySide6 QT Creator 7 0 2 Python应用程序 https i stack imgur com 6hKFI png import sys
  • 用于 OAuth 身份验证的 WSGI 中间件

    我使用构建了一个非常小的网络应用程序Flask http flask pocoo org 现在我想向网站添加非常基本的身份验证 我不需要授权 由于 Flask 不支持开箱即用的 auth auth 我想插入 WSGI 中间件来完成这项工作
  • 按最小值分组并用另一列中的值填充 NA

    我有一个如下所示的示例数据框 df pd DataFrame data uid 1 1 1 2 2 3 pagename home blah blah home blah blah startpage NA NA NA home home
  • 在python中打开带有重音符号的文本文件

    我尝试使用 Python 2 7 打开法语文本文件 我使用了命令 f open textfr r 但是当我使用 f read 我失去了重音字符 我明白了u J xc3 xa9tais xc3 xa0巴黎而不是J tais 巴黎等 当在lin
  • 如何配置应用程序中的所有记录器

    Python 的日志记录模块允许模块或类定义自己的记录器 不同的记录器可以有不同的处理程序 其中一些可能选择记录到文件 而另一些则选择记录到标准输出 现在 我的应用程序使用其中几个模块 每个模块都有自己的记录器 这些记录器具有各种处理程序
  • 为什么计算大整数阶乘的“分而治之”方法如此快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Python Pandas DateOffset 使用另一列中的值

    我以为这会很容易 但下面的内容并不适合我想要的 只是尝试通过使用另一列中的值将天数添加到预先存在的日期时间列来计算新的日期列 我下面的 偏移 列只有 1 位数字 df new date df orig date apply lambda x
  • 获取 pandas 中最后一次出现特定值之后的所有行

    我的数据框看起来像 ID colA 1 B 1 D 2 B 2 D 2 C 我已返回每组中事件 B 最后一次出现后的所有行 输出将是 ID colA 1 D 2 D 2 C 我试过 a df colA str contains B grou
  • 如何在 Python 中将 .docx 转换为 .txt

    我想将大量 MS Word 文件转换为纯文本格式 我不知道如何在 Python 中做到这一点 我在网上找到了以下代码 我的路径是本地路径 所有文件名都类似于 cx xxx 即 c1 000 c1 001 c2 000 c2 001 等 fr
  • Python中矩阵元素的双重求和

    基于下面的简化示例 我想在我的代码中 from sympy import import numpy as np init printing x y symbols x y mat Matrix x 1 1 y X 1 2 3 Y 10 20
  • 从受密码保护的 Excel 文件到 pandas DataFrame

    我可以使用以下命令打开受密码保护的 Excel 文件 import sys import win32com client xlApp win32com client Dispatch Excel Application print Exce
  • 重定向到破折号中的 url

    我正在使用 dash 构建一个仪表板 每当单击特定数据点时 我都会创建一个唯一的 url 如何将用户重定向到此创建的 url 我正在使用下面给出的代码 每当有人单击任何数据点时 单击事件就会触发并执行回调函数 app layout html
  • 如何将 c_uint 的 ctypes 数组转换为 numpy 数组

    我有以下 ctypes 数组 data ctypes c uint 100 我想创建一个 numpy 数组np data包含来自 ctypes 数组数据的整数值 ctypes 数组显然稍后会填充值 我看到numpy中有一个ctypes接口

随机推荐

  • 为什么我会收到意外的模板字符串表达式错误?

    是否可以使用地图数组数据 adv event title 里面一个react structured data JSX 我尝试添加反引号但没有成功 name adv event title 尝试1
  • 组合 Bigquery 删除和插入语句

    Bigquery 有没有办法结合DELETE and INSERT语句合二为一 DELETE my project my dataset demo WHERE date CURRENT DATE INSERT INTO my project
  • 使用 ScrollViewer.ScrollToEnd() 进行自动滚动仅在调试时有效,事件处理程序太简单

    看着这个解决方案 https stackoverflow com questions 2984803 how to automatically scroll scrollviewer only if the user did not cha
  • VS 2015 Update 1 - 声称我正在调试发布版本

    更新到 VS 2015 update 1 后 如果我运行一个 Web 项目 MVC 停止该应用程序 然后尝试再次运行它 VS 停止并弹出一个对话框 声称 您正在调试发布版本
  • JSON.stringify 不会对嵌套数组进行字符串化

    我目前正在调查为什么 JSON stringify 无法正确解析我的对象 这是我试图解析为 JSON 字符串的对象 var data name string active bool data value number date string
  • 什么是 doc2vec 训练迭代?

    我是 doc2vec 的新手 我最初试图理解 doc2vec 下面提到的是我使用 Gensim 的代码 正如我想要的那样 我得到了两个文档的训练模型和文档向量 但是 我想知道在几个时期重新训练模型的好处以及如何在 Gensim 中做到这一点
  • 自动合并 Github 上的拉取请求,没有合并气泡

    github 中的 此拉取请求可以自动合并 合并拉取请求 按钮非常棒 除了它会创建合并气泡 有没有办法在 github 中使用这个按钮 功能而不产生合并气泡 No The git blog https github com blog 843
  • SeriesCollection 和 FullSeriesCollection 之间的区别

    我正在尝试清理一些自动生成的代码 并且我对 Excel 中的系列功能相当陌生 所以在许多网站 论坛中我发现人们使用更多SeriesCollection而不是我生成的代码使用FullSeriesCollection 我的代码正在过滤一些内容
  • 没有 Docker 的 Gitlab-runner

    我已经在 ubuntu 16 04 上安装了 gitlab runner 我已经设置了 Executor shell 我的项目托管在 gitlab com 上 有一个非常简单的 yaml 配置文件 dev script pwd I am n
  • 从 Spring WS 拦截器获取请求参数

    我将 Jaxb 2 与 Spring WS 一起使用 并且我有一个针对特定有效负载的拦截器 并且它工作正常 这里我的要求是从拦截器的handleRequest方法中读取请求参数 我知道这应该是相当简单的 但是无法找到读取请求参数的方法 目前
  • fstream 文件结尾问题

    我正在读取多个文件 这些文件大约有 300 个 由于某种原因 如果我将循环设置为运行超过 3 次迭代 则应该迭代每一行的 while 循环将变得无限 我的问题是 我是否忘记在 while 循环中包含一些内容 现在我只是尝试一次读取一行 最终
  • Android + 字符串

    谁能告诉我 Android 中的 toString 是什么以及如何使用它 作为例子将受到高度赞赏 toString http download llnw oracle com javase 6 docs api java lang Obje
  • SQL 中的特殊字符转义

    Oracle 有没有一种简单的方法来转义 SQL 语句中的特殊字符 即 我看到了这个link http orafaq com faq how does one escape special characters when writing s
  • php://输入返回空

    我有骨干应用程序 当模型更新时 PUT 请求会发送到我的服务器 客户端看起来不错 但在服务器端 PHP 我遇到了一些麻烦 当我第一次在 PHPStorm 中测试这个请求时 file get contents php input 返回我所期望
  • 使用 jQuery 确定相对路径

    我在顶级域下的子文件夹中安装了几个 WordPress 站点 http www mydomain com site a http www mydomain com site a http www mydomain com site b ht
  • 节点 - 将 jest 与 esm 包一起使用

    我想知道如何合并esm包裹https www npmjs com package esm https www npmjs com package esm在节点后端使用笑话 我尝试设置一个安装文件require esm and require
  • 谷歌分析 4 与 React

    我一直在尝试在我的应用程序中将 React ga 包与 google Analytics 4 一起使用 测量 ID 不适用于它 并且我可以使用的 google Analytics 4 中没有跟踪代码 拜托 我需要帮助 import Reac
  • jquery根据背景图像名称选择元素

    我正在尝试选择一个具有特定背景图像的 div 这是我迄今为止所拥有的 不工作 对我做错了什么有什么想法吗 我正在尝试遵循 jQuery 文档 var markerShadow0 div background image url http w
  • 在电子邮件中发送内嵌图像

    通过电子邮件将图像作为正文中的嵌入图像发送时遇到问题 图像文件显示为附件 这没问题 但内联图像部分仅显示为红色 x 这是我到目前为止所拥有的 LinkedResource inline new LinkedResource filePath
  • 如何使用 mox 模拟类属性?

    我有一堂课 class MyClass object property def myproperty self return hello Using mox http code google com p pymox and py test