用于测试镜像的Python3容器CI工具。
项目描述
container-ci-suite
此仓库用于测试SCL容器。对于容器执行,使用docker
或podman
命令。没有Python绑定。对于OpenShift测试也是如此。使用oc
命令。
如何使用Container CI Suite进行容器测试
通过命令安装此套件
pip3 install git+https://github.com/phracek/container-ci-suite
使用Container-CI-Suite运行测试
import os
import pytest
from container_ci_suite.api import ContainerCISuite
image_name = os.environ.get("IMAGE_NAME", "nginx-container")
test_dir = os.path.abspath(os.path.dirname(__file__))
class TestDummyImage(object):
def test_s2i_usage(self):
ccs = ContainerCISuite(image_name=image_name)
ccs.s2i_usage()
使用Container-CI-Suite运行示例仓库的测试
import os
import pytest
from container_ci_suite.openshift import OpenShiftAPI
test_dir = os.path.abspath(os.path.dirname(__file__))
IS_RUBY = OpenShiftAPI.get_raw_url_for_json(container="s2i-ruby-container", dir="imagestreams", filename="ruby-rhel.json")
IS_POSTGRESQL = OpenShiftAPI.get_raw_url_for_json(container="postgresql-container", dir="imagestreams", filename="postgresql-rhel.json")
TEMPLATE_RAILS_POSTGRESQL = OpenShiftAPI.get_raw_url_for_json(container="s2i-ruby-container", dir="examples", filename="rails-postgresql-persistent.json")
class TestRubyEx:
def setup_method(self):
self.oc_api = OpenShiftAPI(namespace="test-ruby-ex")
# Reference https://github.com/sclorg/s2i-nodejs-container/blob/master/test/test-lib-nodejs.sh#L561 (ct_os_test_template_app_func)
def test_deployment_template(self):
self.oc_api.create(IS_RUBY)
self.oc_api.create(IS_POSTGRESQL)
assert self.oc_api.check_is_exists(is_name="ruby", version_to_check="2.5-ubi8")
assert self.oc_api.check_is_exists(is_name="postgresql", version_to_check="10-el8")
self.oc_api.process_file(TEMPLATE_RAILS_POSTGRESQL)
self.oc_api.new_app(image_name="ruby:2.5-ubi8", github_repo="https://github.com/sclorg/ruby-ex")
self.oc_api.is_pod_ready(pod_name="")
self.oc_api.ct_os_check_service_image_info()
#oc process -f rails-postgresql.json -p NAMESPACE=$(oc project -q) | oc create -f -
# Reference https://github.com/sclorg/s2i-nodejs-container/blob/master/test/test-lib-nodejs.sh#L554 (ct_os_test_s2i_app_func)
# ct_os_deploy_s2i_image
def test_s2i_app_func(self):
self.oc_api.create(IS_RUBY)
self.oc_api.create(IS_POSTGRESQL)
assert self.oc_api.check_is_exists(is_name="ruby", version_to_check="2.5-ubi8")
assert self.oc_api.check_is_exists(is_name="postgresql", version_to_check="10-el8")
self.oc_api.process_file(TEMPLATE_RAILS_POSTGRESQL)
self.oc_api.new_app("ruby-ex-tests/ruby:2.5-ubi8~https://github.com/sclorg/ruby-ex")
self.oc_api.start-build() # service-name, --from-dir
self.oc_api.is_pod_ready()
self.oc_api.ct_os_check_service_image_info()
#oc process -f rails-postgresql.json -p NAMESPACE=$(oc project -q) | oc create -f -
# Reference https://github.com/sclorg/s2i-nodejs-container/blob/master/test/test-lib-nodejs.sh#L533 (ct_os_test_image_stream_quickstart)
# ct_os_deploy_s2i_image
def test_iamgestream_quicstart(self):
self.oc_api.create(IS_RUBY)
self.oc_api.create(IS_POSTGRESQL)
assert self.oc_api.check_is_exists(is_name="ruby", version_to_check="2.5-ubi8")
assert self.oc_api.check_is_exists(is_name="postgresql", version_to_check="10-el8")
self.oc_api.process_file(TEMPLATE_RAILS_POSTGRESQL)
self.oc_api.create()
self.oc_api.ct_os_test_template_app("ruby-ex-tests/ruby:2.5-ubi8~https://github.com/sclorg/ruby-ex")
self.oc_api.start-build() # service-name, --from-dir
self.oc_api.is_pod_ready()
self.oc_api.ct_os_check_service_image_info()
#oc process -f rails-postgresql.json -p NAMESPACE=$(oc project -q) | oc create -f -
使用Container-CI-Suite运行Helm图表的测试
import os
import pytest
from container_ci_suite.helm import HelmChartsAPI
test_dir = os.path.abspath(os.path.dirname(__file__))
class TestHelmPostgresqlImageStreams:
def setup_method(self):
package_name = "postgresql-imagestreams"
path = os.path.join(test_dir, "../charts/redhat", package_name)
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, version="0.0.1")
def test_package_imagestream(self):
self.hc_api.helm_package()
OpenShift测试
- ct_os_cleanup
- ct_os_check_compulsory_vars
- ct_os_get_status
- ct_os_print_logs
- ct_os_enable_print_logs
- ct_get_public_ip
- ct_os_run_in_pod
- ct_os_get_service_ip
- ct_os_get_all_pods_status
- ct_os_get_all_pods_name
- ct_os_get_pod_status
- ct_os_get_build_pod_status
- ct_os_get_buildconfig_pod_name
- ct_os_get_pod_name
- ct_os_get_pod_ip
- ct_os_get_sti_build_logs
- ct_os_check_pod_readiness
- ct_os_wait_pod_ready
- ct_os_wait_rc_ready
- ct_os_deploy_pure_image
- ct_os_deploy_s2i_image
- ct_os_deploy_template_image
- _ct_os_get_uniq_project_name
- ct_os_new_project
- ct_os_delete_project
- ct_delete_all_objects
- ct_os_docker_login
- ct_os_upload_image
- ct_os_is_tag_exists
- ct_os_template_exists
- ct_os_install_in_centos
- ct_os_cluster_up
- ct_os_cluster_down
- ct_os_cluster_running
- ct_os_logged_in
- ct_os_set_path_oc
- ct_os_get_latest_ver
- ct_os_download_upstream_oc
- ct_os_test_s2i_app_func
- ct_os_test_s2i_app
- ct_os_test_template_app_func
- ct_os_test_template_app
- ct_os_test_image_update
- ct_os_deploy_cmd_image
- ct_os_cmd_image_run
- ct_os_test_response_internal
- ct_os_get_image_from_pod
- ct_os_check_cmd_internal
- ct_os_test_image_stream_template
- ct_os_wait_stream_ready
- ct_os_test_image_stream_s2i
- ct_os_test_image_stream_quickstart
- ct_os_service_image_info
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源分布
container_ci_suite-0.4.0.tar.gz (28.9 kB 查看散列值)
构建分布
关闭
container_ci_suite-0.4.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | c133d3ba511638c5fe17a3b31679d146bfb47f1914886bf0dfef83b9de793fdb |
|
MD5 | 6f5e2fdda2516dad3708d467cf0c8ee9 |
|
BLAKE2b-256 | 762f07145a0267b4de103aa39b6972eefbc603c890482429d745f064b59a5745 |
关闭
container_ci_suite-0.4.0-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6802c7feee4cf3854ef40fc680481923106f88855e0faa1328a56c7c5f9a83b5 |
|
MD5 | 39d32f4eb38ead9ee9eb9a1431999cb1 |
|
BLAKE2b-256 | aa85460f2760c53a913a44cfacda9d7e637afe31e106ebadcab35041b81231c9 |