跳转到主要内容

通过重放记录的调用模拟命令行工具

项目描述

See Build Status on Travis CI

此包提供两个命令行工具:crecordcreplay。前者记录命令的输出(stdout和stderr)以及返回码,而后者通过重现其输出和返回码来重放命令调用

$ crecord echo foo
foo
$ creplay echo foo
foo
$ crecord ls foo
ls: foo: No such file or directory
$ creplay ls foo
ls: foo: No such file or directory
$ echo $?
1

这可以用于测试目的模拟慢速和依赖环境的命令调用。

Pytest插件

cli_mock包中还包含一个pytest插件。它公开了固定装置,可用于在响应subprocess.Popen调用(及其底层的调用API)时重放crecord日志

def test_foo(popen_controller):
    popen_controller.set_replay_log(my_log)
    output = subprocess.check_output(['foo'])
    assert output == b'bar\n'

在重放日志激活后,调用包含在日志中的命令将从中重放。不在日志中的命令将触发一个AssertionError

非严格模式

通过激活非严格模式,可以允许执行日志中不包含的命令

popen_controller.set_strict(False)

popen_controller.set_replay_log(my_log, strict=False)

在非严格模式下,任何不在日志中的命令将直接传递给subprocess.Popen而不会进行修改,并以常规方式执行。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

cli_mock-0.2.1.tar.gz (4.6 kB 查看哈希值)

上传时间

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面