未提供项目说明
yellowbox的Python项目详细描述
黄箱
Yellowbox使运行docker容器成为黑盒测试的一部分变得容易。在
示例
假设您要在依赖于redis服务器的服务上运行blackbox测试。在
fromdockerimportDockerClientfromyellowbox.extrasimportRedisServicedeftest_black_box():docker_client=DockerClient.from_env()withRedisService.run(docker_client)asredis:redis_port=redis.client_port()# this the host port the redis...# run your black box test here# yellowbox will automatically close the service when exiting the scopedeftest_black_box_with_initial_data():# you can use the service's built-in utility functions to# easily interoperate the servicedocker_client=DockerClient.from_env()withRedisService.run(docker_client)asredis:withredis.client()asclient:client.set("foo","bar")...
支持的附加功能
当前支持的内置服务包括:
- 卡夫卡:
from yellowbox.extras import KafkaService
- 目前,kafka服务只支持明文协议,并且总是绑定到主机端口9092
- 日志存储:
from yellowbox.extras import LogstashService
- RabbitMQ:
from yellowbox.extras import RabbitMQService
- Redis:
from yellowbox.extras import RedisService
注意:所有这些附加项都需要项目的extras
中指定的附加依赖项。在
网络
Yellowbox还可以方便地设置临时docker网络,以便不同的容器和服务可以 直接沟通。在
^{pr2}$作为Pytest夹具
yellow服务和网络都可以与pytest
修复程序一起使用
fromdockerimportDockerClientfrompytestimportfixturefromyellowbox.extrasimportRedisService@fixturedefdocker_client():docker_client=DockerClient.from_env()yielddocker_clientdocker_client.close()@fixturedefredis_service(docker_client):withRedisService.run(docker_client)asservice:yieldservicedefblack_box(redis_service):# run your test with the redis service provided...
由于docker容器可能需要一些时间来设置,所以建议将其作用域至少设置为"module"
延伸黄色
用户可以通过实现YellowService
抽象类来创建自己的黄色服务类。
如果服务只封装一个容器,SingleContainerService
类已经实现了
必要的方法。在
许可证
Yellowbox是根据麻省理工学院的公共许可证注册的
- 项目
标签: