name: linters run_id: commands[0] env HOME: /workspace env PATH: /workspace/src/github.com/openshift/community.okd/.tox/linters/bin:/workspace/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin env PYTHONHASHSEED: 2010079172 env PIP_DISABLE_PIP_VERSION_CHECK: 1 env PYTHONIOENCODING: utf-8 env TOX_ENV_NAME: linters env TOX_WORK_DIR: /workspace/src/github.com/openshift/community.okd/.tox env TOX_ENV_DIR: /workspace/src/github.com/openshift/community.okd/.tox/linters env VIRTUAL_ENV: /workspace/src/github.com/openshift/community.okd/.tox/linters metadata pid: 752 cwd: /workspace/src/github.com/openshift/community.okd allow: /workspace/src/github.com/openshift/community.okd/.tox/linters/bin/* cmd: black -v --check --diff /workspace/src/github.com/openshift/community.okd/plugins /workspace/src/github.com/openshift/community.okd/tests exit_code: 1 --- /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/module_utils/test_openshift_adm_prune_auth.py 2026-02-23 11:58:54.105095+00:00 +++ /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/module_utils/test_openshift_adm_prune_auth.py 2026-02-23 12:03:01.459636+00:00 @@ -1,81 +1,91 @@ -from __future__ import (absolute_import, division, print_function) +from __future__ import absolute_import, division, print_function + __metaclass__ = type from unittest.mock import MagicMock, patch, PropertyMock -from ansible_collections.community.okd.plugins.module_utils.openshift_adm_prune_auth import OpenShiftAdmPruneAuth +from ansible_collections.community.okd.plugins.module_utils.openshift_adm_prune_auth import ( + OpenShiftAdmPruneAuth, +) -COMMON = 'ansible_collections.community.okd.plugins.module_utils.openshift_common.AnsibleOpenshiftModule' +COMMON = "ansible_collections.community.okd.plugins.module_utils.openshift_common.AnsibleOpenshiftModule" class TestOpenShiftAdmPruneAuth: - @patch(f'{COMMON}.kubernetes_facts', create=True) - @patch(f'{COMMON}.find_resource', create=True) - @patch(f'{COMMON}.__init__', return_value=None) - @patch(f'{COMMON}.params', new_callable=PropertyMock) - @patch(f'{COMMON}.check_mode', new_callable=PropertyMock) - def test_update_security_context_success(self, mock_check, mock_params, mock_init, mock_find, mock_facts): - mock_params.return_value = {'resource': 'users'} + @patch(f"{COMMON}.kubernetes_facts", create=True) + @patch(f"{COMMON}.find_resource", create=True) + @patch(f"{COMMON}.__init__", return_value=None) + @patch(f"{COMMON}.params", new_callable=PropertyMock) + @patch(f"{COMMON}.check_mode", new_callable=PropertyMock) + def test_update_security_context_success( + self, mock_check, mock_params, mock_init, mock_find, mock_facts + ): + mock_params.return_value = {"resource": "users"} mock_check.return_value = False module = OpenShiftAdmPruneAuth() mock_facts.return_value = { "api_found": True, "resources": [ - { - "metadata": {"name": "restricted"}, - "users": ["alice", "bob"] - } - ] + {"metadata": {"name": "restricted"}, "users": ["alice", "bob"]} + ], } mock_res = MagicMock() mock_find.return_value = mock_res - candidates, changed = module.update_security_context(ref_names=["alice"], key="users") + candidates, changed = module.update_security_context( + ref_names=["alice"], key="users" + ) assert changed is True assert "restricted" in candidates sent_data = mock_res.apply.call_args[0][0] assert "alice" not in sent_data["users"] assert "bob" in sent_data["users"] - @patch(f'{COMMON}.kubernetes_facts', create=True) - @patch(f'{COMMON}.find_resource', create=True) - @patch(f'{COMMON}.__init__', return_value=None) - @patch(f'{COMMON}.params', new_callable=PropertyMock) - def test_update_security_context_no_change(self, mock_params, mock_init, mock_find, mock_facts): - mock_params.return_value = {'resource': 'users'} + @patch(f"{COMMON}.kubernetes_facts", create=True) + @patch(f"{COMMON}.find_resource", create=True) + @patch(f"{COMMON}.__init__", return_value=None) + @patch(f"{COMMON}.params", new_callable=PropertyMock) + def test_update_security_context_no_change( + self, mock_params, mock_init, mock_find, mock_facts + ): + mock_params.return_value = {"resource": "users"} module = OpenShiftAdmPruneAuth() mock_facts.return_value = { "api_found": True, - "resources": [{"metadata": {"name": "any"}, "users": ["bob"]}] + "resources": [{"metadata": {"name": "any"}, "users": ["bob"]}], } - candidates, changed = module.update_security_context(ref_names=["alice"], key="users") + candidates, changed = module.update_security_context( + ref_names=["alice"], key="users" + ) assert changed is False assert len(candidates) == 0 assert mock_find.return_value.apply.called is False - @patch(f'{COMMON}.kubernetes_facts', create=True) - @patch(f'{COMMON}.find_resource', create=True) - @patch(f'{COMMON}.__init__', return_value=None) - @patch(f'{COMMON}.params', new_callable=PropertyMock) - @patch(f'{COMMON}.fail_json') - def test_update_security_context_not_found(self, mock_fail, mock_params, mock_init, mock_find, mock_facts): - mock_params.return_value = {'resource': 'users'} + @patch(f"{COMMON}.kubernetes_facts", create=True) + @patch(f"{COMMON}.find_resource", create=True) + @patch(f"{COMMON}.__init__", return_value=None) + @patch(f"{COMMON}.params", new_callable=PropertyMock) + @patch(f"{COMMON}.fail_json") + def test_update_security_context_not_found( + self, mock_fail, mock_params, mock_init, mock_find, mock_facts + ): + mock_params.return_value = {"resource": "users"} module = OpenShiftAdmPruneAuth() mock_facts.return_value = { "api_found": False, "resources": [], - "msg": "API not found" + "msg": "API not found", } module.update_security_context(ref_names=["alice"], key="users") assert mock_fail.called - assert mock_fail.call_args[1]['msg'] == "API not found" + assert mock_fail.call_args[1]["msg"] == "API not found" standard error: Identified `/workspace/src/github.com/openshift/community.okd` as project root containing a .git directory. Found input source directory: "/workspace/src/github.com/openshift/community.okd/plugins" Found input source directory: "/workspace/src/github.com/openshift/community.okd/tests" /workspace/src/github.com/openshift/community.okd/plugins/connection/oc.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_adm_prune_deployments.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/k8s.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_builds.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_common.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_adm_prune_auth.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_adm_prune_images.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_docker_image.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_images_common.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_groups.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_import_image.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_registry.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_adm_groups_sync.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_process.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/k8s.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_adm_prune_builds.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_adm_prune_auth.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_adm_prune_deployments.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_adm_migrate_template_instances.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_adm_prune_images.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_import_image.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_build.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_registry_info.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_process.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/module_utils/test_ldap_dn.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/module_utils/openshift_ldap.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/module_utils/test_ldap_sync_config.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_auth.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/module_utils/test_openshift_docker_image.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/plugins/modules/openshift_route.py already well formatted, good job. /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/modules/test_openshift_adm_migrate_template_instances.py already well formatted, good job. would reformat /workspace/src/github.com/openshift/community.okd/tests/unit/plugins/module_utils/test_openshift_adm_prune_auth.py Oh no! 💥 💔 💥 1 file would be reformatted, 31 files would be left unchanged.