Remove all usage of ansible.module_utils.six from main branch (#10888)

* Get rid of all six.moves imports.

* Get rid of iteritems.

* Get rid of *_type(s) aliases.

* Replace StringIO import.

* Get rid of PY2/PY3 constants.

* Get rid of raise_from.

* Get rid of python_2_unicode_compatible.

* Clean up global six imports.

* Remove all usage of ansible.module_utils.six.

* Linting.

* Fix xml module.

* Docs adjustments.
This commit is contained in:
Felix Fontein 2025-10-11 08:21:57 +02:00 committed by GitHub
commit a8977afb04
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
113 changed files with 188 additions and 352 deletions

View file

@ -1,64 +1,14 @@
plugins/module_utils/csv.py pylint:ansible-bad-import-from
plugins/module_utils/gitlab.py pylint:ansible-bad-import-from
plugins/module_utils/homebrew.py pylint:ansible-bad-import-from
plugins/module_utils/ipa.py pylint:ansible-bad-import-from
plugins/module_utils/net_tools/pritunl/api.py pylint:ansible-bad-import-from
plugins/module_utils/opennebula.py pylint:ansible-bad-import-from
plugins/module_utils/oracle/oci_utils.py pylint:ansible-bad-import-from
plugins/module_utils/pkg_req.py pylint:ansible-bad-import-from
plugins/module_utils/redfish_utils.py pylint:ansible-bad-import-from
plugins/module_utils/saslprep.py pylint:ansible-bad-import-from
plugins/module_utils/univention_umc.py pylint:use-yield-from # suggested construct does not work with Python 2
plugins/modules/apache2_mod_proxy.py pylint:ansible-bad-import-from
plugins/modules/circonus_annotation.py pylint:ansible-bad-import-from
plugins/modules/cobbler_system.py pylint:ansible-bad-import-from
plugins/modules/consul_session.py validate-modules:parameter-state-invalid-choice
plugins/modules/dnsmadeeasy.py pylint:ansible-bad-import-from
plugins/modules/homebrew.py pylint:ansible-bad-import-from
plugins/modules/homebrew_cask.py pylint:ansible-bad-import-from
plugins/modules/homectl.py import-3.11 # Uses deprecated stdlib library 'crypt'
plugins/modules/homectl.py import-3.12 # Uses deprecated stdlib library 'crypt'
plugins/modules/iptables_state.py validate-modules:undocumented-parameter # params _back and _timeout used by action plugin
plugins/modules/java_keystore.py pylint:ansible-bad-import-from
plugins/modules/jenkins_plugin.py pylint:ansible-bad-import-from
plugins/modules/ldap_search.py pylint:ansible-bad-import-from
plugins/modules/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/mail.py pylint:ansible-bad-import-from
plugins/modules/make.py pylint:ansible-bad-import-from
plugins/modules/monit.py pylint:ansible-bad-import-from
plugins/modules/osx_defaults.py pylint:ansible-bad-import-from
plugins/modules/osx_defaults.py validate-modules:parameter-state-invalid-choice
plugins/modules/parted.py validate-modules:parameter-state-invalid-choice
plugins/modules/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/sl_vm.py pylint:ansible-bad-import-from
plugins/modules/ssh_config.py pylint:ansible-bad-import-from
plugins/modules/terraform.py pylint:ansible-bad-import-from
plugins/modules/timezone.py pylint:ansible-bad-import-from
plugins/modules/udm_user.py import-3.11 # Uses deprecated stdlib library 'crypt'
plugins/modules/udm_user.py import-3.12 # Uses deprecated stdlib library 'crypt'
plugins/modules/xfconf.py validate-modules:return-syntax-error
plugins/modules/xml.py pylint:ansible-bad-import-from
plugins/modules/zpool_facts.py pylint:ansible-bad-import-from
plugins/modules/zypper_repository.py pylint:ansible-bad-import-from
tests/unit/plugins/module_utils/identity/keycloak/test_keycloak_connect.py pylint:ansible-bad-import-from
tests/unit/plugins/module_utils/net_tools/pritunl/test_api.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/conftest.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/uthelper.py pylint:use-yield-from # suggested construct does not work with Python 2
tests/unit/plugins/modules/test_gio_mime.yaml no-smart-quotes
tests/unit/plugins/modules/test_keycloak_authentication.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_authentication_required_actions.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_client.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_client_rolemapping.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_clientscope.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_component.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_identity_provider.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_realm.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_realm_info.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_realm_keys.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_realm_keys_metadata_info.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_role.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_user.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_user_federation.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_keycloak_userprofile.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_pritunl_org.py pylint:ansible-bad-import-from
tests/unit/plugins/modules/test_pritunl_user.py pylint:ansible-bad-import-from

View file

@ -9,7 +9,6 @@ from ansible_collections.community.internal_test_tools.tests.unit.compat import
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import patch
from ansible.errors import AnsibleError
from ansible.module_utils import six
from ansible.plugins.loader import lookup_loader
from ansible_collections.community.general.plugins.lookup.bitwarden import Bitwarden, BitwardenException
from ansible.parsing.ajson import AnsibleJSONEncoder
@ -240,7 +239,7 @@ class TestLookupModule(unittest.TestCase):
# Entry 0, "a_test" of the test input should have no duplicates.
record = MOCK_RECORDS[0]
record_name = record['name']
for k, v in six.iteritems(record['login']):
for k, v in record['login'].items():
self.assertEqual([v],
self.lookup.run([record_name], field=k)[0])

View file

@ -11,7 +11,6 @@ from ansible_collections.community.internal_test_tools.tests.unit.compat import
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import patch
from ansible.errors import AnsibleError
from ansible.module_utils import six
from ansible.plugins.loader import lookup_loader
from ansible_collections.community.general.plugins.lookup.lastpass import LPass, LPassException
@ -142,7 +141,7 @@ class TestLPass(unittest.TestCase):
lp = MockLPass()
for entry in MOCK_ENTRIES:
entry_id = entry.get('id')
for k, v in six.iteritems(entry):
for k, v in entry.items():
self.assertEqual(v.strip(), lp.get_field(entry_id, k))
@ -155,7 +154,7 @@ class TestLastpassPlugin(unittest.TestCase):
def test_lastpass_plugin_normal(self):
for entry in MOCK_ENTRIES:
entry_id = entry.get('id')
for k, v in six.iteritems(entry):
for k, v in entry.items():
self.assertEqual(v.strip(),
self.lookup.run([entry_id], field=k)[0])

View file

@ -5,14 +5,14 @@
from __future__ import annotations
import pytest
from io import StringIO
from itertools import count
from urllib.error import HTTPError
from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import (
get_token,
KeycloakError,
)
from ansible.module_utils.six import StringIO
from ansible.module_utils.six.moves.urllib.error import HTTPError
module_params_creds = {
'auth_keycloak_url': 'http://keycloak.url/auth',

View file

@ -8,7 +8,6 @@ import json
import pytest
from ansible.module_utils.common.dict_transformations import dict_merge
from ansible.module_utils.six import iteritems
from ansible_collections.community.general.plugins.module_utils.net_tools.pritunl import (
api,
)
@ -527,7 +526,7 @@ class TestPritunlApi:
)
# Ensure provided settings match with the ones returned by Pritunl
for k, v in iteritems(pritunl_organization_data):
for k, v in pritunl_organization_data.items():
assert create_response[k] == v
@pytest.mark.parametrize("org_id", [("58070daee63f3b2e6e472c36")])
@ -553,7 +552,7 @@ class TestPritunlApi:
)
# Ensure provided settings match with the ones returned by Pritunl
for k, v in iteritems(pritunl_user_data):
for k, v in pritunl_user_data.items():
assert create_response[k] == v
# Update the newly created user to ensure only certain settings are changed
@ -576,7 +575,8 @@ class TestPritunlApi:
)
# Ensure only certain settings changed and the rest remained untouched.
for k, v in iteritems(update_response):
# TODO: there is something wrong with this check!
for k, v in update_response.items():
if k in update_response:
assert update_response[k] == v
else:

View file

@ -13,7 +13,6 @@ import json
import pytest
from .FakeAnsibleModule import FakeAnsibleModule
from ansible.module_utils import six
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import MagicMock
@ -98,7 +97,7 @@ def fixture_data_from_file(request):
fixture_path = os.path.join(os.path.dirname(__file__), 'fixtures')
fixture_data = {}
if isinstance(request.param, six.string_types):
if isinstance(request.param, str):
request.param = [request.param]
for fixture_name in request.param:

View file

@ -6,18 +6,16 @@ from __future__ import annotations
import contextlib as _contextlib
import json
from collections.abc import MutableMapping
import pytest
from ansible.module_utils.six import string_types
from ansible.module_utils.six.moves.collections_abc import MutableMapping
from ansible_collections.community.general.plugins.module_utils import deps
from ansible_collections.community.internal_test_tools.tests.unit.plugins.modules.utils import set_module_args as _set_module_args
def _fix_ansible_args(args):
if isinstance(args, string_types):
if isinstance(args, str):
# This should be deprecated!
return json.loads(args)

View file

@ -7,9 +7,9 @@ from __future__ import annotations
from io import BytesIO
import json
from collections import OrderedDict
from collections.abc import Mapping
from ansible_collections.community.general.plugins.modules.jenkins_plugin import JenkinsPlugin
from ansible.module_utils.six.moves.collections_abc import Mapping
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import (
MagicMock,
patch,

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_authentication
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_authentication_flow_by_alias=None, copy_auth_flow=None, create_empty_auth_flow=None,

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_authentication_required_actions
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(

View file

@ -14,10 +14,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_client
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_client_by_clientid=None, get_client_by_id=None, update_client=None, create_client=None,

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_client_rolemapping
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_group_by_name=None, get_client_id=None, get_client_role_id_by_name=None,

View file

@ -14,10 +14,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_clientscope
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_clientscope_by_name=None, get_clientscope_by_clientscopeid=None, create_clientscope=None,

View file

@ -7,9 +7,9 @@ from __future__ import annotations
from contextlib import contextmanager
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
from ansible_collections.community.general.plugins.modules import keycloak_realm_key
from ansible_collections.community.internal_test_tools.tests.unit.compat import unittest
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import patch

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_identity_provider
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_identity_provider, create_identity_provider=None, update_identity_provider=None, delete_identity_provider=None,

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_realm
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_realm_by_id, create_realm=None, update_realm=None, delete_realm=None):

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_realm_info
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_realm_info_by_id):

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_realm_key
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_components=None, get_component=None, create_component=None, update_component=None, delete_component=None):

View file

@ -7,9 +7,9 @@ from __future__ import annotations
from contextlib import contextmanager
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
from ansible_collections.community.general.plugins.modules import \
keycloak_realm_keys_metadata_info
from ansible_collections.community.internal_test_tools.tests.unit.compat import unittest

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_role
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_realm_role=None, create_realm_role=None, update_realm_role=None, delete_realm_role=None,

View file

@ -14,10 +14,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_user
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_user_by_username=None,

View file

@ -13,10 +13,9 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_user_federation
from io import StringIO
from itertools import count
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_components=None, get_component=None, create_component=None, update_component=None, delete_component=None):

View file

@ -13,12 +13,11 @@ from ansible_collections.community.internal_test_tools.tests.unit.plugins.module
from ansible_collections.community.general.plugins.modules import keycloak_userprofile
from io import StringIO
from itertools import count
from json import dumps
from ansible.module_utils.six import StringIO
@contextmanager
def patch_keycloak_api(get_components=None, get_component=None, create_component=None, update_component=None, delete_component=None):

View file

@ -7,6 +7,7 @@ from __future__ import annotations
import os
import shutil
import tempfile
from urllib.parse import urljoin
from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import patch
from ansible_collections.community.internal_test_tools.tests.unit.compat import unittest
@ -14,7 +15,6 @@ from ansible.module_utils import basic
import ansible_collections.community.general.plugins.modules.ocapi_command as module
from ansible_collections.community.internal_test_tools.tests.unit.plugins.modules.utils import AnsibleExitJson, AnsibleFailJson
from ansible_collections.community.internal_test_tools.tests.unit.plugins.modules.utils import set_module_args, exit_json, fail_json
from ansible.module_utils.six.moves.urllib.parse import urljoin
MOCK_BASE_URI = "mockBaseUri/"

View file

@ -7,7 +7,6 @@ from __future__ import annotations
import sys
from ansible.module_utils.common.dict_transformations import dict_merge
from ansible.module_utils.six import iteritems
from ansible_collections.community.general.plugins.modules import (
pritunl_org,
)
@ -108,7 +107,7 @@ class TestPritunlOrg(ModuleTestCase):
# Ensure both calls resulted in the same returned value
# except for changed which should be false the second time
for k, v in iteritems(idempotent_exc):
for k, v in idempotent_exc.items():
if k == "changed":
self.assertFalse(idempotent_exc[k])
else:

View file

@ -7,7 +7,6 @@ from __future__ import annotations
import sys
from ansible.module_utils.common.dict_transformations import dict_merge
from ansible.module_utils.six import iteritems
from ansible_collections.community.general.plugins.modules import (
pritunl_user,
)
@ -153,7 +152,7 @@ class TestPritunlUser(ModuleTestCase):
update_exc = update_result.exception.args[0]
# Ensure only certain settings changed and the rest remained untouched.
for k, v in iteritems(update_exc):
for k, v in update_exc.items():
if k in new_user_params:
assert update_exc[k] == v
else: