diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:03:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:03:42 +0000 |
commit | 66cec45960ce1d9c794e9399de15c138acb18aed (patch) | |
tree | 59cd19d69e9d56b7989b080da7c20ef1a3fe2a5a /ansible_collections/community/okd/tests | |
parent | Initial commit. (diff) | |
download | ansible-66cec45960ce1d9c794e9399de15c138acb18aed.tar.xz ansible-66cec45960ce1d9c794e9399de15c138acb18aed.zip |
Adding upstream version 7.3.0+dfsg.upstream/7.3.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/community/okd/tests')
13 files changed, 674 insertions, 0 deletions
diff --git a/ansible_collections/community/okd/tests/config.yml b/ansible_collections/community/okd/tests/config.yml new file mode 100644 index 00000000..9e402bda --- /dev/null +++ b/ansible_collections/community/okd/tests/config.yml @@ -0,0 +1,2 @@ +modules: + python_requires: ">=3.6" diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.10.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.10.txt new file mode 100644 index 00000000..54e1d304 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.10.txt @@ -0,0 +1,4 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/module_utils/k8s.py pylint:bad-option-value +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.11.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.11.txt new file mode 100644 index 00000000..0ade1e27 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.11.txt @@ -0,0 +1,169 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/module_utils/k8s.py pylint:bad-option-value +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc +plugins/connection/oc.py import-2.6!skip +plugins/connection/oc.py import-2.7!skip +plugins/connection/oc.py import-3.5!skip +plugins/connection/oc.py compile-2.6!skip +plugins/connection/oc.py compile-2.7!skip +plugins/connection/oc.py compile-3.5!skip +plugins/inventory/openshift.py import-2.6!skip +plugins/inventory/openshift.py import-2.7!skip +plugins/inventory/openshift.py import-3.5!skip +plugins/inventory/openshift.py compile-2.6!skip +plugins/inventory/openshift.py compile-2.7!skip +plugins/inventory/openshift.py compile-3.5!skip +plugins/modules/openshift_route.py import-2.6!skip +plugins/modules/openshift_route.py import-2.7!skip +plugins/modules/openshift_route.py import-3.5!skip +plugins/modules/openshift_route.py compile-2.6!skip +plugins/modules/openshift_route.py compile-2.7!skip +plugins/modules/openshift_route.py compile-3.5!skip +plugins/modules/k8s.py import-2.6!skip +plugins/modules/k8s.py import-2.7!skip +plugins/modules/k8s.py import-3.5!skip +plugins/modules/k8s.py compile-2.6!skip +plugins/modules/k8s.py compile-2.7!skip +plugins/modules/k8s.py compile-3.5!skip +plugins/modules/openshift_process.py import-2.6!skip +plugins/modules/openshift_process.py import-2.7!skip +plugins/modules/openshift_process.py import-3.5!skip +plugins/modules/openshift_process.py compile-2.6!skip +plugins/modules/openshift_process.py compile-2.7!skip +plugins/modules/openshift_process.py compile-3.5!skip +plugins/modules/openshift_adm_groups_sync.py import-2.6!skip +plugins/modules/openshift_adm_groups_sync.py import-2.7!skip +plugins/modules/openshift_adm_groups_sync.py import-3.5!skip +plugins/modules/openshift_adm_groups_sync.py compile-2.6!skip +plugins/modules/openshift_adm_groups_sync.py compile-2.7!skip +plugins/modules/openshift_adm_groups_sync.py compile-3.5!skip +plugins/modules/openshift_adm_migrate_template_instances.py import-2.6!skip +plugins/modules/openshift_adm_migrate_template_instances.py import-2.7!skip +plugins/modules/openshift_adm_migrate_template_instances.py import-3.5!skip +plugins/modules/openshift_adm_migrate_template_instances.py compile-2.6!skip +plugins/modules/openshift_adm_migrate_template_instances.py compile-2.7!skip +plugins/modules/openshift_adm_migrate_template_instances.py compile-3.5!skip +plugins/modules/openshift_adm_prune_auth.py import-2.6!skip +plugins/modules/openshift_adm_prune_auth.py import-2.7!skip +plugins/modules/openshift_adm_prune_auth.py import-3.5!skip +plugins/modules/openshift_adm_prune_auth.py compile-2.6!skip +plugins/modules/openshift_adm_prune_auth.py compile-2.7!skip +plugins/modules/openshift_adm_prune_auth.py compile-3.5!skip +plugins/modules/openshift_adm_prune_deployments.py import-2.6!skip +plugins/modules/openshift_adm_prune_deployments.py import-2.7!skip +plugins/modules/openshift_adm_prune_deployments.py import-3.5!skip +plugins/modules/openshift_adm_prune_deployments.py compile-2.6!skip +plugins/modules/openshift_adm_prune_deployments.py compile-2.7!skip +plugins/modules/openshift_adm_prune_deployments.py compile-3.5!skip +plugins/modules/openshift_adm_prune_images.py import-2.6!skip +plugins/modules/openshift_adm_prune_images.py import-2.7!skip +plugins/modules/openshift_adm_prune_images.py import-3.5!skip +plugins/modules/openshift_adm_prune_images.py compile-2.6!skip +plugins/modules/openshift_adm_prune_images.py compile-2.7!skip +plugins/modules/openshift_adm_prune_images.py compile-3.5!skip +plugins/modules/openshift_auth.py import-2.6!skip +plugins/modules/openshift_auth.py import-2.7!skip +plugins/modules/openshift_auth.py import-3.5!skip +plugins/modules/openshift_auth.py compile-2.6!skip +plugins/modules/openshift_auth.py compile-2.7!skip +plugins/modules/openshift_auth.py compile-3.5!skip +plugins/modules/openshift_import_image.py import-2.6!skip +plugins/modules/openshift_import_image.py import-2.7!skip +plugins/modules/openshift_import_image.py import-3.5!skip +plugins/modules/openshift_import_image.py compile-2.6!skip +plugins/modules/openshift_import_image.py compile-2.7!skip +plugins/modules/openshift_import_image.py compile-3.5!skip +plugins/modules/openshift_registry_info.py import-2.6!skip +plugins/modules/openshift_registry_info.py import-2.7!skip +plugins/modules/openshift_registry_info.py import-3.5!skip +plugins/modules/openshift_registry_info.py compile-2.6!skip +plugins/modules/openshift_registry_info.py compile-2.7!skip +plugins/modules/openshift_registry_info.py compile-3.5!skip +plugins/module_utils/k8s.py import-2.6!skip +plugins/module_utils/k8s.py import-2.7!skip +plugins/module_utils/k8s.py import-3.5!skip +plugins/module_utils/k8s.py compile-2.6!skip +plugins/module_utils/k8s.py compile-2.7!skip +plugins/module_utils/k8s.py compile-3.5!skip +plugins/module_utils/openshift_process.py import-2.6!skip +plugins/module_utils/openshift_process.py import-2.7!skip +plugins/module_utils/openshift_process.py import-3.5!skip +plugins/module_utils/openshift_process.py compile-2.6!skip +plugins/module_utils/openshift_process.py compile-2.7!skip +plugins/module_utils/openshift_process.py compile-3.5!skip +plugins/module_utils/openshift_adm_prune_auth.py import-2.6!skip +plugins/module_utils/openshift_adm_prune_auth.py import-2.7!skip +plugins/module_utils/openshift_adm_prune_auth.py import-3.5!skip +plugins/module_utils/openshift_adm_prune_auth.py compile-2.6!skip +plugins/module_utils/openshift_adm_prune_auth.py compile-2.7!skip +plugins/module_utils/openshift_adm_prune_auth.py compile-3.5!skip +plugins/module_utils/openshift_adm_prune_deployments.py import-2.6!skip +plugins/module_utils/openshift_adm_prune_deployments.py import-2.7!skip +plugins/module_utils/openshift_adm_prune_deployments.py import-3.5!skip +plugins/module_utils/openshift_adm_prune_deployments.py compile-2.6!skip +plugins/module_utils/openshift_adm_prune_deployments.py compile-2.7!skip +plugins/module_utils/openshift_adm_prune_deployments.py compile-3.5!skip +plugins/module_utils/openshift_ldap.py import-2.6!skip +plugins/module_utils/openshift_ldap.py import-2.7!skip +plugins/module_utils/openshift_ldap.py import-3.5!skip +plugins/module_utils/openshift_ldap.py compile-2.6!skip +plugins/module_utils/openshift_ldap.py compile-2.7!skip +plugins/module_utils/openshift_ldap.py compile-3.5!skip +plugins/module_utils/openshift_adm_prune_images.py import-2.6!skip +plugins/module_utils/openshift_adm_prune_images.py import-2.7!skip +plugins/module_utils/openshift_adm_prune_images.py import-3.5!skip +plugins/module_utils/openshift_adm_prune_images.py compile-2.6!skip +plugins/module_utils/openshift_adm_prune_images.py compile-2.7!skip +plugins/module_utils/openshift_adm_prune_images.py compile-3.5!skip +plugins/module_utils/openshift_docker_image.py import-2.6!skip +plugins/module_utils/openshift_docker_image.py import-2.7!skip +plugins/module_utils/openshift_docker_image.py import-3.5!skip +plugins/module_utils/openshift_docker_image.py compile-2.6!skip +plugins/module_utils/openshift_docker_image.py compile-2.7!skip +plugins/module_utils/openshift_docker_image.py compile-3.5!skip +plugins/module_utils/openshift_import_image.py import-2.6!skip +plugins/module_utils/openshift_import_image.py import-2.7!skip +plugins/module_utils/openshift_import_image.py import-3.5!skip +plugins/module_utils/openshift_import_image.py compile-2.6!skip +plugins/module_utils/openshift_import_image.py compile-2.7!skip +plugins/module_utils/openshift_import_image.py compile-3.5!skip +plugins/module_utils/openshift_groups.py import-2.6!skip +plugins/module_utils/openshift_groups.py import-2.7!skip +plugins/module_utils/openshift_groups.py import-3.5!skip +plugins/module_utils/openshift_groups.py compile-2.6!skip +plugins/module_utils/openshift_groups.py compile-2.7!skip +plugins/module_utils/openshift_groups.py compile-3.5!skip +plugins/module_utils/openshift_images_common.py import-2.6!skip +plugins/module_utils/openshift_images_common.py import-2.7!skip +plugins/module_utils/openshift_images_common.py import-3.5!skip +plugins/module_utils/openshift_images_common.py compile-2.6!skip +plugins/module_utils/openshift_images_common.py compile-2.7!skip +plugins/module_utils/openshift_images_common.py compile-3.5!skip +plugins/module_utils/openshift_registry.py import-2.6!skip +plugins/module_utils/openshift_registry.py import-2.7!skip +plugins/module_utils/openshift_registry.py import-3.5!skip +plugins/module_utils/openshift_registry.py compile-2.6!skip +plugins/module_utils/openshift_registry.py compile-2.7!skip +plugins/module_utils/openshift_registry.py compile-3.5!skip +plugins/module_utils/openshift_builds.py import-2.6!skip +plugins/module_utils/openshift_builds.py import-2.7!skip +plugins/module_utils/openshift_builds.py import-3.5!skip +plugins/module_utils/openshift_builds.py compile-2.6!skip +plugins/module_utils/openshift_builds.py compile-2.7!skip +plugins/module_utils/openshift_builds.py compile-3.5!skip +plugins/modules/openshift_build.py import-2.6!skip +plugins/modules/openshift_build.py import-2.7!skip +plugins/modules/openshift_build.py import-3.5!skip +plugins/modules/openshift_build.py compile-2.6!skip +plugins/modules/openshift_build.py compile-2.7!skip +plugins/modules/openshift_build.py compile-3.5!skip +plugins/modules/openshift_adm_prune_builds.py import-2.6!skip +plugins/modules/openshift_adm_prune_builds.py import-2.7!skip +plugins/modules/openshift_adm_prune_builds.py import-3.5!skip +plugins/modules/openshift_adm_prune_builds.py compile-2.6!skip +plugins/modules/openshift_adm_prune_builds.py compile-2.7!skip +plugins/modules/openshift_adm_prune_builds.py compile-3.5!skip +plugins/module_utils/openshift_common.py import-2.6!skip +plugins/module_utils/openshift_common.py import-2.7!skip +plugins/module_utils/openshift_common.py import-3.5!skip
\ No newline at end of file diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.12.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.12.txt new file mode 100644 index 00000000..2fd2bdc9 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.12.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc
\ No newline at end of file diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.13.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.13.txt new file mode 100644 index 00000000..2fd2bdc9 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.13.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc
\ No newline at end of file diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.14.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.14.txt new file mode 100644 index 00000000..2fd2bdc9 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.14.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc
\ No newline at end of file diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.15.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.15.txt new file mode 100644 index 00000000..2fd2bdc9 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.15.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc
\ No newline at end of file diff --git a/ansible_collections/community/okd/tests/sanity/ignore-2.9.txt b/ansible_collections/community/okd/tests/sanity/ignore-2.9.txt new file mode 100644 index 00000000..a4699707 --- /dev/null +++ b/ansible_collections/community/okd/tests/sanity/ignore-2.9.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/module_utils/k8s.py pylint:bad-option-value +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc diff --git a/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_ldap_dn.py b/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_ldap_dn.py new file mode 100644 index 00000000..5835f36d --- /dev/null +++ b/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_ldap_dn.py @@ -0,0 +1,32 @@ +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + + +from ansible_collections.community.okd.plugins.module_utils.openshift_ldap import ( + openshift_equal_dn, + openshift_ancestorof_dn +) +import pytest + +try: + import ldap +except ImportError: + pytestmark = pytest.mark.skip("This test requires the python-ldap library") + + +def test_equal_dn(): + + assert openshift_equal_dn("cn=unit,ou=users,dc=ansible,dc=com", "cn=unit,ou=users,dc=ansible,dc=com") + assert not openshift_equal_dn("cn=unit,ou=users,dc=ansible,dc=com", "cn=units,ou=users,dc=ansible,dc=com") + assert not openshift_equal_dn("cn=unit,ou=users,dc=ansible,dc=com", "cn=unit,ou=user,dc=ansible,dc=com") + assert not openshift_equal_dn("cn=unit,ou=users,dc=ansible,dc=com", "cn=unit,ou=users,dc=ansible,dc=org") + + +def test_ancestor_of_dn(): + + assert not openshift_ancestorof_dn("cn=unit,ou=users,dc=ansible,dc=com", "cn=unit,ou=users,dc=ansible,dc=com") + assert not openshift_ancestorof_dn("cn=unit,ou=users,dc=ansible,dc=com", "cn=units,ou=users,dc=ansible,dc=com") + assert openshift_ancestorof_dn("ou=users,dc=ansible,dc=com", "cn=john,ou=users,dc=ansible,dc=com") + assert openshift_ancestorof_dn("ou=users,dc=ansible,dc=com", "cn=mathew,ou=users,dc=ansible,dc=com") + assert not openshift_ancestorof_dn("ou=users,dc=ansible,dc=com", "cn=mathew,ou=users,dc=ansible,dc=org") diff --git a/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_ldap_sync_config.py b/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_ldap_sync_config.py new file mode 100644 index 00000000..1a8ef67e --- /dev/null +++ b/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_ldap_sync_config.py @@ -0,0 +1,63 @@ +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + + +from ansible_collections.community.okd.plugins.module_utils.openshift_ldap import ( + validate_ldap_sync_config, +) + + +def test_missing_url(): + config = dict( + kind="LDAPSyncConfig", + apiVersion="v1", + insecure=True + ) + err = validate_ldap_sync_config(config) + assert err == "url should be non empty attribute." + + +def test_binddn_and_bindpwd_linked(): + """ + one of bind_dn and bind_pwd cannot be set alone + """ + config = dict( + kind="LDAPSyncConfig", + apiVersion="v1", + url="ldap://LDAP_SERVICE_IP:389", + insecure=True, + bindDN="cn=admin,dc=example,dc=org" + ) + + credentials_error = "bindDN and bindPassword must both be specified, or both be empty." + + assert validate_ldap_sync_config(config) == credentials_error + + config = dict( + kind="LDAPSyncConfig", + apiVersion="v1", + url="ldap://LDAP_SERVICE_IP:389", + insecure=True, + bindPassword="testing1223" + ) + + assert validate_ldap_sync_config(config) == credentials_error + + +def test_insecure_connection(): + config = dict( + kind="LDAPSyncConfig", + apiVersion="v1", + url="ldaps://LDAP_SERVICE_IP:389", + insecure=True, + ) + + assert validate_ldap_sync_config(config) == "Cannot use ldaps scheme with insecure=true." + + config.update(dict( + url="ldap://LDAP_SERVICE_IP:389", + ca="path/to/ca/file" + )) + + assert validate_ldap_sync_config(config) == "Cannot specify a ca with insecure=true." diff --git a/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_openshift_docker_image.py b/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_openshift_docker_image.py new file mode 100644 index 00000000..99cf15cc --- /dev/null +++ b/ansible_collections/community/okd/tests/unit/plugins/module_utils/test_openshift_docker_image.py @@ -0,0 +1,152 @@ +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + + +from ansible_collections.community.okd.plugins.module_utils.openshift_docker_image import ( + convert_storage_to_bytes, + parse_docker_image_ref, +) +import pytest + + +def test_convert_storage_to_bytes(): + + data = [ + ("1000", 1000), + ("1000Ki", 1000 * 1024), + ("890Ki", 890 * 1024), + ("890Mi", 890 * 1024 * 1024), + ("90Gi", 90 * 1024 * 1024 * 1024), + ("192Ti", 192 * 1024 * 1024 * 1024 * 1024), + ("452Pi", 452 * 1024 * 1024 * 1024 * 1024 * 1024), + ("23Ei", 23 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024), + ] + + for x in data: + result = convert_storage_to_bytes(x[0]) + assert result == x[1] + + failed = "123ki" + with pytest.raises(ValueError): + convert_storage_to_bytes(failed) + + +def validate_docker_response(resp, **kwargs): + assert isinstance(resp, dict) + for key in ("hostname", "digest", "tag", "name", "namespace"): + assert key in resp + + hostname = kwargs.get("hostname", "docker.io") + assert resp["hostname"] == hostname + + namespace = kwargs.get("namespace") + assert resp["namespace"] == namespace + + name = kwargs.get("name") + assert resp["name"] == name + + digest = kwargs.get("digest") + assert resp["digest"] == digest + + tag = kwargs.get("tag") + assert resp["tag"] == tag + + +def test_parse_docker_image_ref_valid_image_with_digest(): + + image = "registry.access.redhat.com/ubi8/dotnet-21@sha256:f7718f5efd3436e781ee4322c92ab0c4ae63e61f5b36f1473a57874cc3522669" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, + hostname="registry.access.redhat.com", + namespace="ubi8", + name="dotnet-21", + digest="sha256:f7718f5efd3436e781ee4322c92ab0c4ae63e61f5b36f1473a57874cc3522669") + + +def test_parse_docker_image_ref_valid_image_with_tag_latest(): + + image = "registry.access.redhat.com/ubi8/dotnet-21:latest" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, + hostname="registry.access.redhat.com", + namespace="ubi8", + name="dotnet-21", + tag="latest") + + +def test_parse_docker_image_ref_valid_image_with_tag_int(): + + image = "registry.access.redhat.com/ubi8/dotnet-21:0.0.1" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, + hostname="registry.access.redhat.com", + namespace="ubi8", + name="dotnet-21", + tag="0.0.1") + + +def test_parse_docker_image_ref_invalid_image(): + + # The hex value of the sha256 is not valid + image = "registry.access.redhat.com/dotnet-21@sha256:f7718f5efd3436e781ee4322c92ab0c4ae63e61f5b36f1473a57874cc3522" + response, err = parse_docker_image_ref(image) + assert err and err.startswith("Invalid length for digest hex") + + +def test_parse_docker_image_ref_valid_image_without_hostname(): + + image = "ansible:2.10.0" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, name="ansible", tag="2.10.0") + + +def test_parse_docker_image_ref_valid_image_without_hostname_and_with_digest(): + + image = "ansible@sha256:f7718f5efd3436e781ee4322c92ab0c4ae63e61f5b36f1473a57874cc3522669" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, name="ansible", digest="sha256:f7718f5efd3436e781ee4322c92ab0c4ae63e61f5b36f1473a57874cc3522669") + + +def test_parse_docker_image_ref_valid_image_with_name_only(): + + image = "ansible" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, name="ansible") + + +def test_parse_docker_image_ref_valid_image_without_hostname_with_namespace_and_name(): + + image = "ibmcom/pause@sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, + name="pause", + namespace="ibmcom", + digest="sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d") + + +def test_parse_docker_image_ref_valid_image_with_complex_namespace_name(): + + image = "registry.redhat.io/jboss-webserver-5/webserver54-openjdk11-tomcat9-openshift-rhel7:1.0" + response, err = parse_docker_image_ref(image) + assert err is None + + validate_docker_response(response, + hostname="registry.redhat.io", + name="webserver54-openjdk11-tomcat9-openshift-rhel7", + namespace="jboss-webserver-5", + tag="1.0") diff --git a/ansible_collections/community/okd/tests/unit/plugins/modules/test_openshift_adm_migrate_template_instances.py b/ansible_collections/community/okd/tests/unit/plugins/modules/test_openshift_adm_migrate_template_instances.py new file mode 100644 index 00000000..256bef0a --- /dev/null +++ b/ansible_collections/community/okd/tests/unit/plugins/modules/test_openshift_adm_migrate_template_instances.py @@ -0,0 +1,236 @@ +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + + +import pytest + +from ansible_collections.community.okd.plugins.modules.openshift_adm_migrate_template_instances import ( + OpenShiftMigrateTemplateInstances, +) + + +testdata = [ + ("input", "output"), + [ + ( + { + "status": { + "objects": [ + {"ref": {"kind": "DeploymentConfig", "apiVersion": "v1"}} + ] + } + }, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "DeploymentConfig", + "apiVersion": "apps.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + {"status": {"objects": [{"ref": {"kind": "DeploymentConfig"}}]}}, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "DeploymentConfig", + "apiVersion": "apps.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + { + "status": { + "objects": [ + { + "ref": { + "kind": "DeploymentConfig", + "apiVersion": "apps.openshift.io/v1", + } + } + ] + } + }, + [], + ), + ( + { + "status": { + "objects": [{"ref": {"kind": "BuildConfig", "apiVersion": "v1"}}] + } + }, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "BuildConfig", + "apiVersion": "build.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + {"status": {"objects": [{"ref": {"kind": "BuildConfig"}}]}}, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "BuildConfig", + "apiVersion": "build.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + { + "status": { + "objects": [ + { + "ref": { + "kind": "BuildConfig", + "apiVersion": "build.openshift.io/v1", + } + } + ] + } + }, + [], + ), + ( + {"status": {"objects": [{"ref": {"kind": "Build", "apiVersion": "v1"}}]}}, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "Build", + "apiVersion": "build.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + {"status": {"objects": [{"ref": {"kind": "Build"}}]}}, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "Build", + "apiVersion": "build.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + { + "status": { + "objects": [ + { + "ref": { + "kind": "Build", + "apiVersion": "build.openshift.io/v1", + } + } + ] + } + }, + [], + ), + ( + {"status": {"objects": [{"ref": {"kind": "Route", "apiVersion": "v1"}}]}}, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "Route", + "apiVersion": "route.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + {"status": {"objects": [{"ref": {"kind": "Route"}}]}}, + [ + { + "status": { + "objects": [ + { + "ref": { + "kind": "Route", + "apiVersion": "route.openshift.io/v1", + } + } + ] + } + } + ], + ), + ( + { + "status": { + "objects": [ + { + "ref": { + "kind": "Route", + "apiVersion": "route.openshift.io/v1", + } + } + ] + } + }, + [], + ), + ( + { + "status": { + "objects": [{"ref": {"kind": "FakeKind", "apiVersion": "v1"}}] + } + }, + [], + ), + ], +] + + +@pytest.mark.parametrize(*testdata) +def test_templateinstance_migrations(input, output): + assert OpenShiftMigrateTemplateInstances.perform_migrations(input) == output diff --git a/ansible_collections/community/okd/tests/unit/requirements.txt b/ansible_collections/community/okd/tests/unit/requirements.txt new file mode 100644 index 00000000..e079f8a6 --- /dev/null +++ b/ansible_collections/community/okd/tests/unit/requirements.txt @@ -0,0 +1 @@ +pytest |