gpt4 book ai didi

python - 如何测试需要文件的点击命令

转载 作者:行者123 更新时间:2023-12-01 07:13:51 26 4
gpt4 key购买 nike

我有一个可以对文件执行某些操作的单击命令:

import click

@click.command()
@click.argument("file", type=click.File("r"))
def foo(file):
print(file.read())

我想在不创建临时文件的情况下测试它,但我不知道给运行者哪个路径,并且在网络上找不到示例。像这样的东西会很好:

from click.testing import CliRunner

from magic_lib import magic_file

def test_foo():
runner = CliRunner()
fake_file = magic_file("Hello, world!")
result = runner.invoke(foo, [fake_file.location])
assert result.output == "Hello, world!\n"

有什么方法可以让 click.File 理解我想要它看起来的位置吗?

最佳答案

您可以使用pyfakefsusage取决于您的测试框架;最容易与 pytest 一起使用因为它自动提供 fs 固定装置:

def test_foo(fs):
fake_file = fs.create_file('/foo/bar', contents="Hello, world!")

runner = CliRunner()
result = runner.invoke(foo, [fake_file.path])
assert result.output == "Hello, world!\n"

P.S.:由于 foo 中的 print 添加了换行符,因此创建文件时必须在末尾不包含 \n 才能进行测试去工作。

关于python - 如何测试需要文件的点击命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58082413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com