Pytest插件,简化对系统运行shell命令
项目描述
什么是 Pytest Shell 工具
“当有疑问时,调用 shell”
——托马斯·S·哈奇
此 pytest 插件是从 pytest-salt-factories 中提取出来的。它提供了一个基本的 fixture shell,该 fixture 主要使用 subprocess.Popen 在 shell 中运行命令,同时对运行系统提供友好的可断言返回类。
安装
安装 pytest-shell-utilities 简单到只需
python -m pip install pytest-shell-utilities
这就足够了。
使用方法
安装完成后,现在您可以使用 shell fixture 来运行一些命令并对结果进行断言。
def test_assert_good_exitcode(shell):
ret = shell.run("exit", "0")
assert ret.returncode == 0
def test_assert_bad_exitcode(shell):
ret = shell.run("exit", "1")
assert ret.returncode == 1
如果命令输出可解析的 JSON,shell fixture 可以尝试将该输出加载为 JSON,这允许对加载的 JSON 对象进行断言。
def test_against_json_output(shell):
d = {"a": "a", "b": "b"}
ret = shell.run("echo", json.dumps(d))
assert ret.data == d
此外,返回对象的 .stdout 和 .stderr 可以使用 pytest.pytester.LineMatcher 进行行匹配。
MARY_HAD_A_LITTLE_LAMB = """\
Mary had a little lamb,
Its fleece was white as snow;
And everywhere that Mary went
The lamb was sure to go.
"""
def test_matcher_attribute(shell):
ret = shell.run("echo", MARY_HAD_A_LITTLE_LAMB)
ret.stdout.matcher.fnmatch_lines_random(
[
"*had a little*",
"Its fleece was white*",
"*Mary went",
"The lamb was sure to go.",
]
)
文档
完整的文档可以在 这里 查看。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
pytest_shell_utilities-1.9.3.tar.gz (81.0 kB 查看哈希值)
构建分布
关闭
pytest_shell_utilities-1.9.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 91072e92ab56658497ed168e905cde75b983ffc84e479e10099632391a5389b5 |
|
MD5 | 2284b748475f42143c15d89a2ec7588c |
|
BLAKE2b-256 | 559d457db35577a58dd0879b4d9ef3aaa80311e685abf631916112cbd9bc73fd |
关闭
pytest_shell_utilities-1.9.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4df965b4cdc95b01d8b28215aa6a6f3c90f6ab45cdfec65b877197d14e7421a |
|
MD5 | 3ebd8843b741d3f402479c6f54793736 |
|
BLAKE2b-256 | 740bf8852992a8cdb7c102095f0d3f74b680fb7a1bbf42240a25c5ed617fba14 |