通过重放记录的调用模拟命令行工具
项目描述
此包提供两个命令行工具:crecord和creplay。前者记录命令的输出(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插件。它公开了
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c4ba87df89d33d1dda4f0bb5b333e41145cf059a273671a904994cf43afe7dae |
|
MD5 | 84f17557616a46c965b2948ca44ddef2 |
|
BLAKE2b-256 | 1f119cbb545a26674adb8c69dcef10c056873b43cfdda367838f3c20fd317ad0 |