pytest的monkeypatch子类,具有额外功能
项目描述
monkeyplus插件是一个子类,它扩展了monkeypatch并添加了一些额外功能。
额外功能
monkeyplus有三种额外方法:patch_osstat、patch_today和patch_time_ticking。
patch_osstat(path, **osstat_attrs)
修补os.stat比较棘手,因为你通常只想修补一个文件,而不是整个文件系统。此外,要正确修补它,你必须返回一个完整的stat_result结构。patch_osstat负责处理这些内容。只需用要修补的路径和您想要的stat属性的关键字参数调用它,例如
monkeyplus.patch_osstat('foo/bar', st_mtime=42)
未指定的参数将被分配默认值。
patch_today(year, month, day)
修补日期可能比较棘手,因为有几个与时间相关的模块,即datetime和time。如果你想让你的修补影响整个应用程序,你必须修补time模块,而不是datetime模块。将年/月/日值转换为适合time.time值的算术运算并不简单,所以重复做这些可能会很无聊。用你想让应用程序修补到的日期调用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()) 调用都产生不同的结果。请注意,这也意味着补丁函数将返回 int 类型的值。
替换 monkeypatch
monkeyplus 是 monkeypatch 的子类,因此它可以在任何使用 monkeypatch 的地方使用。您不需要使用不同的 funcarg,只需将以下内容放入您的 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
首次发布
项目详情
pytest-monkeyplus-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a4b29b028e320ada728290761a7f35f5ec495d0676ddfc2cd01115a4c9ee350c |
|
MD5 | 362ecf778f561e0c357e6ac8cda0f666 |
|
BLAKE2b-256 | 07faef0f6baa09b64280a96c27b6f07662a9fac485b742646a5265e1b8c55e75 |