一个py.test插件,提供了简化inmanta模块测试的夹具。

pytest-inmanta的Python项目详细描述


Pytest inmanta

测试inmanta模块的pytest插件

安装

pip install pytest-inmanta

用法

这个插件提供了一个测试设备,可以编译、导出和部署代码,而不需要运行实际的inmanta服务器。

deftest_compile(project):"""        Test compiling a simple model that uses std    """project.compile("""host = std::Host(name="server", os=std::linux)file = std::ConfigFile(host=host, path="/tmp/test", content="1234")        """)

夹具还提供了对模型内部构件的访问

assertlen(project.get_all_instances("std::Host"))==1assertproject.get_all_instances("std::Host")[0].name=="myhost"

到导出的资源

f=project.get_resource("std::ConfigFile")assertf.permissions==644

编译输出和模拟文件系统

deftest_template(project):"""        Test the evaluation of a template    """project.add_mock_file("templates","test.tmpl","{{ value }}")project.compile("""import unittestvalue = "1234"std::print(std::template("unittest/test.tmpl"))    """)assertproject.get_stdout()=="1234\n"

并允许展开

project.deploy_resource("std::ConfigFile")

和dryrun

changes=project.dryrun_resource("testmodule::Resource")assertchanges=={"value":{'current':'read','desired':'write'}}

选项

以下选项可用。

  • --venv:用于放置测试虚拟环境(将由所有测试共享)的文件夹,覆盖inmanta_test_env。 此选项取决于符号链接支持。这不适用于所有Windows版本。在Windows10上,您需要在 管理员外壳。
  • --module_repo:下载模块的位置,覆盖inmanta_module_repo。默认值是inmanta github组织。

使用通用pytest选项--log-cli-level显示inmanta logger以查看任何安装或清理警告。例如, --log-cli-level=INFO

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用于批量操作的java RESTful API分块响应   java读取在线存储的文本文件   在Java ME中将双精度舍入到小数点后5位   java查找一个数字的最接近因子   java更改JMenuBar的字体   java Kmeans聚类算法运行时间和复杂性   java是否可以阻止try catch返回null   java内容解析器指向具有正确URI的错误表   java Android Kotlin插装测试未被识别为插装测试   java TestNG@Dataprovider   在forloop和print语句中声明变量时发生java错误   java在Android Studio 3中设置JNI