pytest插件,用于您的Cookiecutter模板。🍪
项目描述
pytest-cookies
pytest 是一个成熟的Python测试框架,由一个充满活力且不断壮大的志愿者社区开发。它使用普通的assert语句和常规的Python比较。pytest测试框架的核心是一个强大的基于挂钩的插件系统。
pytest-cookies 是一个pytest插件,它包含一个名为 cookies
的固定装置,它是用于生成项目的cookiecutter API的包装器。它可以帮助您验证模板是否按预期工作,并在运行测试后进行清理。🍪
安装
pytest-cookies 可从 PyPI 通过 pip 下载
pip install pytest-cookies
这将自动安装 pytest 和 cookiecutter。
用法
生成新项目
cookies.bake()
方法根据在 cookiecutter.json
中指定的默认值,从您的模板生成新项目。
def test_bake_project(cookies):
result = cookies.bake(extra_context={"repo_name": "helloworld"})
assert result.exit_code == 0
assert result.exception is None
assert result.project_path.name == "helloworld"
assert result.project_path.is_dir()
# The `project` attribute is deprecated
assert result.project.basename == "helloworld"
assert result.project.isdir()
请注意,返回的Result
类的project
属性已被弃用,将在未来的版本中删除,请使用project_path
代替。
cookies.bake()
方法也接受将被传递给cookiecutter的extra_context
关键字参数。给定的字典将覆盖模板上下文的默认值,有效地允许您测试任意用户输入数据。
有关注入额外上下文的更多信息,请参阅cookiecutter文档。
指定模板目录
默认情况下,cookies.bake()
在当前目录中查找cookiecutter模板。这可以通过传递给pytest的--template
参数来覆盖。
pytest --template TEMPLATE
您可以通过传递可选的template
参数来自定义测试中的cookiecutter模板目录。
@pytest.fixture
def custom_template(tmpdir):
template = tmpdir.ensure("cookiecutter-template", dir=True)
template.join("cookiecutter.json").write('{"repo_name": "example-project"}')
repo_dir = template.ensure("{{cookiecutter.repo_name}}", dir=True)
repo_dir.join("README.rst").write("{{cookiecutter.repo_name}}")
return template
def test_bake_custom_project(cookies, custom_template):
"""Test for 'cookiecutter-template'."""
result = cookies.bake(template=str(custom_template))
assert result.exit_code == 0
assert result.exception is None
assert result.project_path.name == "example-project"
assert result.project_path.is_dir()
保留输出目录以进行调试
默认情况下,cookies
会删除烘焙项目。
但是,如果您希望保留它们,可以传递keep-baked-projects
标志(它不会造成混乱,因为pytest只保留三个最新的临时目录)。
pytest --keep-baked-projects
社区
欢迎贡献!如果您遇到任何问题,请提交问题,并提供详细的描述。可以使用tox运行测试。在提交拉取请求之前,请确保所有测试都是绿色的。
您还可以通过志愿成为维护者来支持这个项目的开发,这意味着您将能够处理问题、合并拉取请求并发布新版本。如果您感兴趣,请提交一个拉取请求以将自己添加到维护者列表中,我们将帮助您开始!🍪
请注意,pytest-cookies与贡献者行为准则一同发布。通过参与此项目,您同意遵守其条款。
许可协议
在MIT许可下分发,pytest-cookies是免费和开源软件。
项目详情
pytest-cookies-0.7.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1aaa6b4def8238d0d1709d3d773b423351bfb671c1e3438664d824e0859d6308 |
|
MD5 | 3cbc01e9b5dafa1299b85e8660167810 |
|
BLAKE2b-256 | 182e11a3e1abb4bbf10e0af3f194ba4c55600de3fe52417ef3594c18d28ecdbe |
pytest_cookies-0.7.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 52770f090d77b16428f6a24a208e6be76addb2e33458035714087b4de49389ea |
|
MD5 | a4b5e172a83a85d02293325bbf941eec |
|
BLAKE2b-256 | 5ff7438af2f3a6c58f81d22c126707ee5d079f653a76961f4fb7d995e526a9c4 |