具有额外功能的pytest的monkeypatch子类

pytest-monkeyplus的Python项目详细描述


monkeyplus插件是子类monkeypatch并添加 一些额外的功能。

额外功能

monkeyplus有三个额外的方法:patch_osstatpatch_todaypatch_time_ticking

patch_osstat(path, **osstat_attrs)

修补os.stat很棘手,因为您通常只想修补一个文件, 不是整个文件系统。此外,要正确修补它,必须返回 完整的stat_result结构。patch_osstat处理这些东西。 只要用patch路径和stat属性的关键字参数调用它 您需要,例如:

monkeyplus.patch_osstat('foo/bar', st_mtime=42)

未指定的参数将被分配一个默认值。

patch_today(year, month, day)

修补日期可能很棘手,因为有几个与时间相关的模块, 即datetimetime。如果你想让你的补丁影响整个应用程序 统一地说,您必须修补time模块,而不是datetime模块。 在合适的^{tt16}中转换年/月/日值的算法$ 值是不平凡的,所以重复它会变得很无聊。用patch_today调用 希望修补应用程序的日期,例如:

monkeyplus.patch_today(2011, 2, 16)

patch_time_ticking(force_int_diff=False)

这个monkeypatch确保所有的time.time()调用产生不同的结果(并不断增加)。打开 很多平台,这已经得到了保证,但不是所有的平台。

如果force_int_diff为true,则修补程序将确保所有int(time.time())调用产生不同的结果 结果。注意,这也意味着patches函数将返回int值。

更换MonkeyPatch

monkeyplusmonkeypatch的子类,因此它可以在任何地方使用 monkeypatch已被使用。不必使用不同的函数arg,您可以 通过将其放入conftest.py文件中来替换monkeypatch

def pytest_funcarg__monkeypatch(request):
    monkeyplus = request.getfuncargvalue('monkeyplus')
    return monkeyplus

欢迎投稿

目前,monkeyplus是一个反映我自己需要的插件,但是如果您愿意的话 为了增加新功能,他们是受欢迎的。源位于http://bitbucket.org/hsoft/pytest-monkeyplus

变化

版本1.1.0–2012-09-18

  • 添加了patch_time_ticking()函数。

版本1.0.0–2011-02-16

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java LineNumberReader。如果查询行为不正确,则返回readLine()   java包含了一个使用AndroidX的工具栏,这让我的应用程序崩溃了   JVM设置通过“java jar”运行应用程序的最佳实践   java如何获取ImageButton宽度   java Oracle SQLLDR实用程序无响应   列出Java获取对象的arrayList中最常见的元素   java使用带有FlowLayout的getContentpane对布局应用更改,但不起作用为什么?   在java中,我可以在画布上绘制画布吗?   编译游戏代码时发生java异常错误   从firestore获取java Webview失败   java将TableLayout中单元格的内容向右对齐   java无法在发布模式下启动活动(使用proguard安卓optimize配置)   java允许在线程期间进行GUI更新。睡觉   java如何对以变量为列表的列表进行排序   API URL上的java Google云端点异常