From 5ff8d093f07344abbd35942c1a03bab1d84dfeb3 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Mon, 24 Feb 2025 20:47:45 -0800 Subject: [PATCH] ansible-test - Code style cleanup (#84749) * ansible-test - Minor style cleanup (add blank lines) * ansible-test - Use `"""` instead of `'''` --- test/lib/ansible_test/_internal/__init__.py | 1 + .../ansible_test/_internal/ansible_util.py | 1 + test/lib/ansible_test/_internal/become.py | 1 + test/lib/ansible_test/_internal/bootstrap.py | 1 + test/lib/ansible_test/_internal/cache.py | 1 + test/lib/ansible_test/_internal/cgroup.py | 1 + .../lib/ansible_test/_internal/ci/__init__.py | 1 + test/lib/ansible_test/_internal/ci/azp.py | 1 + test/lib/ansible_test/_internal/ci/local.py | 1 + .../_internal/classification/__init__.py | 1 + .../_internal/classification/common.py | 1 + .../_internal/classification/csharp.py | 1 + .../_internal/classification/powershell.py | 1 + .../_internal/classification/python.py | 1 + .../ansible_test/_internal/cli/__init__.py | 1 + .../lib/ansible_test/_internal/cli/actions.py | 1 + .../_internal/cli/argparsing/__init__.py | 1 + .../_internal/cli/argparsing/actions.py | 1 + .../_internal/cli/argparsing/argcompletion.py | 1 + .../_internal/cli/argparsing/parsers.py | 1 + .../_internal/cli/commands/__init__.py | 1 + .../cli/commands/coverage/__init__.py | 1 + .../cli/commands/coverage/analyze/__init__.py | 1 + .../coverage/analyze/targets/__init__.py | 1 + .../coverage/analyze/targets/combine.py | 1 + .../coverage/analyze/targets/expand.py | 1 + .../coverage/analyze/targets/filter.py | 1 + .../coverage/analyze/targets/generate.py | 1 + .../coverage/analyze/targets/missing.py | 1 + .../cli/commands/coverage/combine.py | 1 + .../_internal/cli/commands/coverage/erase.py | 1 + .../_internal/cli/commands/coverage/html.py | 1 + .../_internal/cli/commands/coverage/report.py | 1 + .../_internal/cli/commands/coverage/xml.py | 1 + .../_internal/cli/commands/env.py | 1 + .../cli/commands/integration/__init__.py | 1 + .../cli/commands/integration/network.py | 1 + .../cli/commands/integration/posix.py | 1 + .../cli/commands/integration/windows.py | 1 + .../_internal/cli/commands/sanity.py | 1 + .../_internal/cli/commands/shell.py | 1 + .../_internal/cli/commands/units.py | 1 + test/lib/ansible_test/_internal/cli/compat.py | 1 + .../ansible_test/_internal/cli/completers.py | 1 + .../ansible_test/_internal/cli/converters.py | 1 + .../_internal/cli/environments.py | 1 + test/lib/ansible_test/_internal/cli/epilog.py | 1 + .../_internal/cli/parsers/__init__.py | 1 + .../cli/parsers/base_argument_parsers.py | 1 + .../_internal/cli/parsers/helpers.py | 1 + .../cli/parsers/host_config_parsers.py | 1 + .../cli/parsers/key_value_parsers.py | 1 + .../_internal/cli/parsers/value_parsers.py | 1 + .../_internal/commands/__init__.py | 1 + .../_internal/commands/coverage/__init__.py | 3 ++- .../commands/coverage/analyze/__init__.py | 1 + .../coverage/analyze/targets/__init__.py | 1 + .../coverage/analyze/targets/combine.py | 1 + .../coverage/analyze/targets/expand.py | 1 + .../coverage/analyze/targets/filter.py | 1 + .../coverage/analyze/targets/generate.py | 1 + .../coverage/analyze/targets/missing.py | 1 + .../_internal/commands/coverage/combine.py | 1 + .../_internal/commands/coverage/erase.py | 1 + .../_internal/commands/coverage/html.py | 1 + .../_internal/commands/coverage/report.py | 1 + .../_internal/commands/coverage/xml.py | 1 + .../_internal/commands/env/__init__.py | 2 ++ .../commands/integration/__init__.py | 1 + .../commands/integration/cloud/__init__.py | 1 + .../commands/integration/cloud/acme.py | 1 + .../commands/integration/cloud/aws.py | 1 + .../commands/integration/cloud/azure.py | 1 + .../commands/integration/cloud/cs.py | 1 + .../integration/cloud/digitalocean.py | 1 + .../commands/integration/cloud/galaxy.py | 5 +++-- .../commands/integration/cloud/hcloud.py | 1 + .../commands/integration/cloud/httptester.py | 1 + .../commands/integration/cloud/nios.py | 1 + .../commands/integration/cloud/opennebula.py | 1 + .../commands/integration/cloud/openshift.py | 1 + .../commands/integration/cloud/scaleway.py | 1 + .../commands/integration/cloud/vcenter.py | 1 + .../commands/integration/cloud/vultr.py | 1 + .../commands/integration/coverage.py | 1 + .../_internal/commands/integration/filters.py | 1 + .../_internal/commands/integration/network.py | 1 + .../_internal/commands/integration/posix.py | 1 + .../_internal/commands/integration/windows.py | 1 + .../_internal/commands/sanity/__init__.py | 1 + .../_internal/commands/sanity/ansible_doc.py | 1 + .../_internal/commands/sanity/bin_symlinks.py | 1 + .../_internal/commands/sanity/compile.py | 1 + .../_internal/commands/sanity/ignores.py | 1 + .../_internal/commands/sanity/import.py | 1 + .../commands/sanity/integration_aliases.py | 1 + .../_internal/commands/sanity/pep8.py | 1 + .../_internal/commands/sanity/pslint.py | 1 + .../_internal/commands/sanity/pylint.py | 1 + .../_internal/commands/sanity/shellcheck.py | 1 + .../commands/sanity/validate_modules.py | 1 + .../_internal/commands/sanity/yamllint.py | 1 + .../_internal/commands/shell/__init__.py | 1 + .../_internal/commands/units/__init__.py | 1 + .../ansible_test/_internal/compat/__init__.py | 1 + .../_internal/compat/packaging.py | 1 + .../lib/ansible_test/_internal/compat/yaml.py | 1 + test/lib/ansible_test/_internal/completion.py | 1 + test/lib/ansible_test/_internal/config.py | 1 + .../lib/ansible_test/_internal/connections.py | 1 + test/lib/ansible_test/_internal/constants.py | 1 + test/lib/ansible_test/_internal/containers.py | 1 + .../ansible_test/_internal/content_config.py | 1 + test/lib/ansible_test/_internal/core_ci.py | 1 + .../ansible_test/_internal/coverage_util.py | 21 ++++++++++--------- test/lib/ansible_test/_internal/data.py | 1 + test/lib/ansible_test/_internal/delegation.py | 1 + .../ansible_test/_internal/dev/__init__.py | 1 + .../_internal/dev/container_probe.py | 1 + test/lib/ansible_test/_internal/diff.py | 5 +++-- .../lib/ansible_test/_internal/docker_util.py | 1 + test/lib/ansible_test/_internal/encoding.py | 1 + test/lib/ansible_test/_internal/executor.py | 1 + test/lib/ansible_test/_internal/git.py | 1 + .../ansible_test/_internal/host_configs.py | 1 + .../ansible_test/_internal/host_profiles.py | 1 + test/lib/ansible_test/_internal/http.py | 1 + test/lib/ansible_test/_internal/init.py | 1 + test/lib/ansible_test/_internal/inventory.py | 1 + test/lib/ansible_test/_internal/io.py | 1 + test/lib/ansible_test/_internal/metadata.py | 1 + test/lib/ansible_test/_internal/payload.py | 1 + .../_internal/provider/__init__.py | 1 + .../_internal/provider/layout/__init__.py | 1 + .../_internal/provider/layout/ansible.py | 1 + .../_internal/provider/layout/collection.py | 1 + .../_internal/provider/layout/unsupported.py | 1 + .../_internal/provider/source/__init__.py | 1 + .../_internal/provider/source/git.py | 1 + .../_internal/provider/source/installed.py | 1 + .../_internal/provider/source/unsupported.py | 1 + .../_internal/provider/source/unversioned.py | 1 + .../ansible_test/_internal/provisioning.py | 1 + test/lib/ansible_test/_internal/pypi_proxy.py | 9 ++++---- .../_internal/python_requirements.py | 1 + test/lib/ansible_test/_internal/ssh.py | 1 + test/lib/ansible_test/_internal/target.py | 1 + test/lib/ansible_test/_internal/test.py | 5 +++-- test/lib/ansible_test/_internal/thread.py | 1 + test/lib/ansible_test/_internal/timeout.py | 1 + test/lib/ansible_test/_internal/util.py | 1 + .../lib/ansible_test/_internal/util_common.py | 6 ++++-- test/lib/ansible_test/_internal/venv.py | 1 + .../sanity/code-smell/action-plugin-docs.py | 1 + .../controller/sanity/code-smell/changelog.py | 1 + .../sanity/code-smell/changelog/sphinx.py | 1 + .../sanity/code-smell/empty-init.py | 1 + .../sanity/code-smell/line-endings.py | 1 + .../controller/sanity/code-smell/no-assert.py | 1 + .../sanity/code-smell/no-get-exception.py | 1 + .../sanity/code-smell/no-illegal-filenames.py | 1 + .../sanity/code-smell/no-smart-quotes.py | 1 + .../sanity/code-smell/replace-urlopen.py | 1 + .../sanity/code-smell/runtime-metadata.py | 1 + .../controller/sanity/code-smell/shebang.py | 1 + .../controller/sanity/code-smell/symlinks.py | 1 + .../code-smell/use-argspec-type-path.py | 1 + .../sanity/code-smell/use-compat-six.py | 1 + .../integration-aliases/yaml_to_json.py | 1 + .../sanity/pylint/plugins/deprecated.py | 1 + .../sanity/pylint/plugins/hide_unraisable.py | 1 + .../sanity/pylint/plugins/string_format.py | 1 + .../sanity/pylint/plugins/unwanted.py | 1 + .../validate-modules/validate_modules/main.py | 8 +++---- .../validate_modules/utils.py | 1 + .../controller/sanity/yamllint/yamllinter.py | 4 ++++ .../controller/tools/collection_detail.py | 1 + .../_util/controller/tools/yaml_to_json.py | 1 + .../target/pytest/plugins/ansible_forked.py | 1 + .../plugins/ansible_pytest_collections.py | 1 + .../pytest/plugins/ansible_pytest_coverage.py | 1 + .../_util/target/sanity/compile/compile.py | 1 + .../_util/target/sanity/import/importer.py | 6 ++++++ .../_util/target/setup/probe_cgroups.py | 1 + .../_util/target/setup/quiet_pip.py | 1 + .../_util/target/setup/requirements.py | 6 ++++-- .../_util/target/tools/virtualenvcheck.py | 1 + .../_util/target/tools/yamlcheck.py | 1 + .../code-smell/no-unwanted-characters.py | 1 + test/sanity/code-smell/no-unwanted-files.py | 1 + test/sanity/code-smell/obsolete-files.py | 1 + test/sanity/code-smell/package-data.py | 1 + test/sanity/code-smell/pymarkdown.py | 1 + 193 files changed, 232 insertions(+), 29 deletions(-) diff --git a/test/lib/ansible_test/_internal/__init__.py b/test/lib/ansible_test/_internal/__init__.py index 35584746b57..48b33c5524d 100644 --- a/test/lib/ansible_test/_internal/__init__.py +++ b/test/lib/ansible_test/_internal/__init__.py @@ -1,4 +1,5 @@ """Test runner for all Ansible tests.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/ansible_util.py b/test/lib/ansible_test/_internal/ansible_util.py index 909e3c3de6e..d5d49d5c9f8 100644 --- a/test/lib/ansible_test/_internal/ansible_util.py +++ b/test/lib/ansible_test/_internal/ansible_util.py @@ -1,4 +1,5 @@ """Miscellaneous utility functions and classes specific to ansible cli tools.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_internal/become.py b/test/lib/ansible_test/_internal/become.py index f8320b3b407..993e1b65558 100644 --- a/test/lib/ansible_test/_internal/become.py +++ b/test/lib/ansible_test/_internal/become.py @@ -1,4 +1,5 @@ """Become abstraction for interacting with test hosts.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/bootstrap.py b/test/lib/ansible_test/_internal/bootstrap.py index a9dd6370ee3..a755d37991f 100644 --- a/test/lib/ansible_test/_internal/bootstrap.py +++ b/test/lib/ansible_test/_internal/bootstrap.py @@ -1,4 +1,5 @@ """Bootstrapping for test hosts.""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/cache.py b/test/lib/ansible_test/_internal/cache.py index d291dcee32b..38ed1a806ef 100644 --- a/test/lib/ansible_test/_internal/cache.py +++ b/test/lib/ansible_test/_internal/cache.py @@ -1,4 +1,5 @@ """Cache for commonly shared data that is intended to be immutable.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/cgroup.py b/test/lib/ansible_test/_internal/cgroup.py index c9da2465625..53c9a702e89 100644 --- a/test/lib/ansible_test/_internal/cgroup.py +++ b/test/lib/ansible_test/_internal/cgroup.py @@ -1,4 +1,5 @@ """Linux control group constants, classes and utilities.""" + from __future__ import annotations import codecs diff --git a/test/lib/ansible_test/_internal/ci/__init__.py b/test/lib/ansible_test/_internal/ci/__init__.py index 5e53b15075c..44cc64e84a4 100644 --- a/test/lib/ansible_test/_internal/ci/__init__.py +++ b/test/lib/ansible_test/_internal/ci/__init__.py @@ -1,4 +1,5 @@ """Support code for CI environments.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/ci/azp.py b/test/lib/ansible_test/_internal/ci/azp.py index adc4f476741..c2a9e004c3a 100644 --- a/test/lib/ansible_test/_internal/ci/azp.py +++ b/test/lib/ansible_test/_internal/ci/azp.py @@ -1,4 +1,5 @@ """Support code for working with Azure Pipelines.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/ci/local.py b/test/lib/ansible_test/_internal/ci/local.py index 4b9ab13ef76..90fad430b8f 100644 --- a/test/lib/ansible_test/_internal/ci/local.py +++ b/test/lib/ansible_test/_internal/ci/local.py @@ -1,4 +1,5 @@ """Support code for working without a supported CI provider.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/classification/__init__.py b/test/lib/ansible_test/_internal/classification/__init__.py index 352e4764bba..b2fff68b973 100644 --- a/test/lib/ansible_test/_internal/classification/__init__.py +++ b/test/lib/ansible_test/_internal/classification/__init__.py @@ -1,4 +1,5 @@ """Classify changes in Ansible code.""" + from __future__ import annotations import collections diff --git a/test/lib/ansible_test/_internal/classification/common.py b/test/lib/ansible_test/_internal/classification/common.py index a999b6e9345..1a71436da78 100644 --- a/test/lib/ansible_test/_internal/classification/common.py +++ b/test/lib/ansible_test/_internal/classification/common.py @@ -1,4 +1,5 @@ """Common classification code used by multiple languages.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/classification/csharp.py b/test/lib/ansible_test/_internal/classification/csharp.py index edd41011dd0..44e96615a60 100644 --- a/test/lib/ansible_test/_internal/classification/csharp.py +++ b/test/lib/ansible_test/_internal/classification/csharp.py @@ -1,4 +1,5 @@ """Analyze C# import statements.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/classification/powershell.py b/test/lib/ansible_test/_internal/classification/powershell.py index 29be6d4e84c..bf5a0281f00 100644 --- a/test/lib/ansible_test/_internal/classification/powershell.py +++ b/test/lib/ansible_test/_internal/classification/powershell.py @@ -1,4 +1,5 @@ """Analyze powershell import statements.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/classification/python.py b/test/lib/ansible_test/_internal/classification/python.py index c074d348d83..6bc5c33d076 100644 --- a/test/lib/ansible_test/_internal/classification/python.py +++ b/test/lib/ansible_test/_internal/classification/python.py @@ -1,4 +1,5 @@ """Analyze python import statements.""" + from __future__ import annotations import ast diff --git a/test/lib/ansible_test/_internal/cli/__init__.py b/test/lib/ansible_test/_internal/cli/__init__.py index 3171639fbd6..6a31032d66f 100644 --- a/test/lib/ansible_test/_internal/cli/__init__.py +++ b/test/lib/ansible_test/_internal/cli/__init__.py @@ -1,4 +1,5 @@ """Command line parsing.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/actions.py b/test/lib/ansible_test/_internal/cli/actions.py index 9e1b7b44b4f..16baa2887b0 100644 --- a/test/lib/ansible_test/_internal/cli/actions.py +++ b/test/lib/ansible_test/_internal/cli/actions.py @@ -1,4 +1,5 @@ """Actions for handling composite arguments with argparse.""" + from __future__ import annotations from .argparsing import ( diff --git a/test/lib/ansible_test/_internal/cli/argparsing/__init__.py b/test/lib/ansible_test/_internal/cli/argparsing/__init__.py index 4ee845f72f8..17245716250 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/__init__.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/__init__.py @@ -1,4 +1,5 @@ """Completion finder which brings together custom options and completion logic.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/cli/argparsing/actions.py b/test/lib/ansible_test/_internal/cli/argparsing/actions.py index 7399fe9c5f7..554e9d0fe49 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/actions.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/actions.py @@ -1,4 +1,5 @@ """Actions for argparse.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py b/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py index 26abcf82fd2..fbe87c8f325 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py @@ -1,4 +1,5 @@ """Wrapper around argcomplete providing bug fixes and additional features.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/argparsing/parsers.py b/test/lib/ansible_test/_internal/cli/argparsing/parsers.py index 00fa97e87d1..f7a69e0fe2f 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/parsers.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/parsers.py @@ -1,4 +1,5 @@ """General purpose composite argument parsing and completion.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/cli/commands/__init__.py b/test/lib/ansible_test/_internal/cli/commands/__init__.py index 2eb14abc7ba..64b04e905c7 100644 --- a/test/lib/ansible_test/_internal/cli/commands/__init__.py +++ b/test/lib/ansible_test/_internal/cli/commands/__init__.py @@ -1,4 +1,5 @@ """Command line parsing for all commands.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/__init__.py b/test/lib/ansible_test/_internal/cli/commands/coverage/__init__.py index 28e67709095..19ff6cbc3f8 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/__init__.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/__init__.py @@ -1,4 +1,5 @@ """Command line parsing for all `coverage` commands.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/__init__.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/__init__.py index 05fbd233ba2..ec8d6df9eef 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/__init__.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/__init__.py @@ -1,4 +1,5 @@ """Command line parsing for all `coverage analyze` commands.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/__init__.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/__init__.py index 7b6ea3ebf86..ad8723062b4 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/__init__.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/__init__.py @@ -1,4 +1,5 @@ """Command line parsing for all `coverage analyze targets` commands.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/combine.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/combine.py index 7fa49bf9b21..e44c8eeda1d 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/combine.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/combine.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage analyze targets combine` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/expand.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/expand.py index f5f020fed4e..96cd80f48d8 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/expand.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/expand.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage analyze targets expand` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/filter.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/filter.py index afcb828b695..fdfd0a8e201 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/filter.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/filter.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage analyze targets filter` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/generate.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/generate.py index 0d13933dd36..4cd7446edea 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/generate.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/generate.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage analyze targets generate` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/missing.py b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/missing.py index 8af236f3cc9..c705aba7f6e 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/missing.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/analyze/targets/missing.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage analyze targets missing` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/combine.py b/test/lib/ansible_test/_internal/cli/commands/coverage/combine.py index 9b6d34a30d5..02b27af4079 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/combine.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/combine.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage combine` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/erase.py b/test/lib/ansible_test/_internal/cli/commands/coverage/erase.py index ef356f023c9..d5c7a633fd6 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/erase.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/erase.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage erase` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/html.py b/test/lib/ansible_test/_internal/cli/commands/coverage/html.py index 5f719de7140..50e4a2fc811 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/html.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/html.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage html` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/report.py b/test/lib/ansible_test/_internal/cli/commands/coverage/report.py index e6a6e805523..d81487a3e47 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/report.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/report.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage report` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/coverage/xml.py b/test/lib/ansible_test/_internal/cli/commands/coverage/xml.py index e7b03ca8406..cecf33868c9 100644 --- a/test/lib/ansible_test/_internal/cli/commands/coverage/xml.py +++ b/test/lib/ansible_test/_internal/cli/commands/coverage/xml.py @@ -1,4 +1,5 @@ """Command line parsing for the `coverage xml` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/env.py b/test/lib/ansible_test/_internal/cli/commands/env.py index 8b56e4f1ba2..4e34cbb2540 100644 --- a/test/lib/ansible_test/_internal/cli/commands/env.py +++ b/test/lib/ansible_test/_internal/cli/commands/env.py @@ -1,4 +1,5 @@ """Command line parsing for the `env` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/integration/__init__.py b/test/lib/ansible_test/_internal/cli/commands/integration/__init__.py index dfdefb11cd5..c8459e510da 100644 --- a/test/lib/ansible_test/_internal/cli/commands/integration/__init__.py +++ b/test/lib/ansible_test/_internal/cli/commands/integration/__init__.py @@ -1,4 +1,5 @@ """Command line parsing for all integration commands.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/integration/network.py b/test/lib/ansible_test/_internal/cli/commands/integration/network.py index a42ba91909f..f18b6350b42 100644 --- a/test/lib/ansible_test/_internal/cli/commands/integration/network.py +++ b/test/lib/ansible_test/_internal/cli/commands/integration/network.py @@ -1,4 +1,5 @@ """Command line parsing for the `network-integration` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/integration/posix.py b/test/lib/ansible_test/_internal/cli/commands/integration/posix.py index 78d616584b0..2e864be71a6 100644 --- a/test/lib/ansible_test/_internal/cli/commands/integration/posix.py +++ b/test/lib/ansible_test/_internal/cli/commands/integration/posix.py @@ -1,4 +1,5 @@ """Command line parsing for the `integration` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/integration/windows.py b/test/lib/ansible_test/_internal/cli/commands/integration/windows.py index ab022e3beb9..2252932af34 100644 --- a/test/lib/ansible_test/_internal/cli/commands/integration/windows.py +++ b/test/lib/ansible_test/_internal/cli/commands/integration/windows.py @@ -1,4 +1,5 @@ """Command line parsing for the `windows-integration` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/sanity.py b/test/lib/ansible_test/_internal/cli/commands/sanity.py index 15a4a9d4100..5f9d9eb9d15 100644 --- a/test/lib/ansible_test/_internal/cli/commands/sanity.py +++ b/test/lib/ansible_test/_internal/cli/commands/sanity.py @@ -1,4 +1,5 @@ """Command line parsing for the `sanity` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/shell.py b/test/lib/ansible_test/_internal/cli/commands/shell.py index 1baffc6e702..79aaa1cc9f8 100644 --- a/test/lib/ansible_test/_internal/cli/commands/shell.py +++ b/test/lib/ansible_test/_internal/cli/commands/shell.py @@ -1,4 +1,5 @@ """Command line parsing for the `shell` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/commands/units.py b/test/lib/ansible_test/_internal/cli/commands/units.py index c541a872a42..64f69ffe755 100644 --- a/test/lib/ansible_test/_internal/cli/commands/units.py +++ b/test/lib/ansible_test/_internal/cli/commands/units.py @@ -1,4 +1,5 @@ """Command line parsing for the `units` command.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/compat.py b/test/lib/ansible_test/_internal/cli/compat.py index 27267f48ac1..43645695c5a 100644 --- a/test/lib/ansible_test/_internal/cli/compat.py +++ b/test/lib/ansible_test/_internal/cli/compat.py @@ -1,4 +1,5 @@ """Provides compatibility with first-generation host delegation options in ansible-test.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/completers.py b/test/lib/ansible_test/_internal/cli/completers.py index 903b69b6bc8..84b18382e09 100644 --- a/test/lib/ansible_test/_internal/cli/completers.py +++ b/test/lib/ansible_test/_internal/cli/completers.py @@ -1,4 +1,5 @@ """Completers for use with argcomplete.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/converters.py b/test/lib/ansible_test/_internal/cli/converters.py index 71e0daebe43..b26510d9e96 100644 --- a/test/lib/ansible_test/_internal/cli/converters.py +++ b/test/lib/ansible_test/_internal/cli/converters.py @@ -1,4 +1,5 @@ """Converters for use as the type argument for arparse's add_argument method.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/environments.py b/test/lib/ansible_test/_internal/cli/environments.py index 7b1fd1c22dc..d14761bd723 100644 --- a/test/lib/ansible_test/_internal/cli/environments.py +++ b/test/lib/ansible_test/_internal/cli/environments.py @@ -1,4 +1,5 @@ """Command line parsing for test environments.""" + from __future__ import annotations import argparse diff --git a/test/lib/ansible_test/_internal/cli/epilog.py b/test/lib/ansible_test/_internal/cli/epilog.py index 3800ff1c0c0..79f814a00cf 100644 --- a/test/lib/ansible_test/_internal/cli/epilog.py +++ b/test/lib/ansible_test/_internal/cli/epilog.py @@ -1,4 +1,5 @@ """Argument parsing epilog generation.""" + from __future__ import annotations from .argparsing import ( diff --git a/test/lib/ansible_test/_internal/cli/parsers/__init__.py b/test/lib/ansible_test/_internal/cli/parsers/__init__.py index 93ead8074c4..848d93d5a0f 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/__init__.py +++ b/test/lib/ansible_test/_internal/cli/parsers/__init__.py @@ -1,4 +1,5 @@ """Composite argument parsers for ansible-test specific command-line arguments.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py index d0124cf5993..7d2851e1dab 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py @@ -1,4 +1,5 @@ """Base classes for the primary parsers for composite command line arguments.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/cli/parsers/helpers.py b/test/lib/ansible_test/_internal/cli/parsers/helpers.py index 836a893dec7..65b421bc756 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/helpers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/helpers.py @@ -1,4 +1,5 @@ """Helper functions for composite parsers.""" + from __future__ import annotations from ...constants import ( diff --git a/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py index a90a59acae1..69bf75f0755 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py @@ -1,4 +1,5 @@ """Composite parsers for the various types of hosts.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py index e389fd5c1a8..3da6313ed67 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py @@ -1,4 +1,5 @@ """Composite argument key-value parsers used by other parsers.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py index f416281e048..e97893c3640 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py @@ -1,4 +1,5 @@ """Composite argument value parsers used by other parsers.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/__init__.py b/test/lib/ansible_test/_internal/commands/__init__.py index e9cb68168dd..d1a910be5c4 100644 --- a/test/lib/ansible_test/_internal/commands/__init__.py +++ b/test/lib/ansible_test/_internal/commands/__init__.py @@ -1,2 +1,3 @@ """Nearly empty __init__.py to keep pylint happy.""" + from __future__ import annotations diff --git a/test/lib/ansible_test/_internal/commands/coverage/__init__.py b/test/lib/ansible_test/_internal/commands/coverage/__init__.py index 6c6e8cdabaa..3ae1cfab374 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/__init__.py +++ b/test/lib/ansible_test/_internal/commands/coverage/__init__.py @@ -1,4 +1,5 @@ """Common logic for the coverage subcommand.""" + from __future__ import annotations import collections.abc as c @@ -226,7 +227,7 @@ def read_python_coverage_legacy(path: str) -> PythonArcs: """Return coverage arcs from the specified coverage file, which must be in the legacy JSON format.""" try: contents = read_text_file(path) - contents = re.sub(r'''^!coverage.py: This is a private format, don't read it directly!''', '', contents) + contents = re.sub(r"""^!coverage.py: This is a private format, don't read it directly!""", '', contents) data = json.loads(contents) arcs: PythonArcs = {filename: [t.cast(tuple[int, int], tuple(arc)) for arc in arc_list] for filename, arc_list in data['arcs'].items()} except Exception as ex: diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py index 2029d7bec0a..29706444a1d 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py @@ -1,4 +1,5 @@ """Common logic for the `coverage analyze` subcommand.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/__init__.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/__init__.py index 64bb13b02ee..a807abe43b4 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/__init__.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/__init__.py @@ -1,4 +1,5 @@ """Analyze integration test target code coverage.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py index 0bbb2873377..51e663a80d4 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py @@ -1,4 +1,5 @@ """Combine integration test target code coverage reports.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py index 93197543dc2..2482dc96d44 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py @@ -1,4 +1,5 @@ """Expand target names in an aggregated coverage file.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py index ccedae7d3cb..c2548488f5c 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py @@ -1,4 +1,5 @@ """Filter an aggregated coverage file, keeping only the specified targets.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py index 0f0da5de22c..c47f3fefe21 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py @@ -1,4 +1,5 @@ """Analyze code coverage data to determine which integration test targets provide coverage for each arc or line.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py index 0a7566432ea..77c627d4ab0 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py @@ -1,4 +1,5 @@ """Identify aggregated coverage in one file missing from another.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/coverage/combine.py b/test/lib/ansible_test/_internal/commands/coverage/combine.py index f9467a7d8c8..b67ae7372b5 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/combine.py +++ b/test/lib/ansible_test/_internal/commands/coverage/combine.py @@ -1,4 +1,5 @@ """Combine code coverage files.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/coverage/erase.py b/test/lib/ansible_test/_internal/commands/coverage/erase.py index 70b685c5352..d5196b6019f 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/erase.py +++ b/test/lib/ansible_test/_internal/commands/coverage/erase.py @@ -1,4 +1,5 @@ """Erase code coverage files.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/coverage/html.py b/test/lib/ansible_test/_internal/commands/coverage/html.py index e3063c0efbc..3240416d8b9 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/html.py +++ b/test/lib/ansible_test/_internal/commands/coverage/html.py @@ -1,4 +1,5 @@ """Generate HTML code coverage reports.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/coverage/report.py b/test/lib/ansible_test/_internal/commands/coverage/report.py index c0f40186036..74712fe8501 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/report.py +++ b/test/lib/ansible_test/_internal/commands/coverage/report.py @@ -1,4 +1,5 @@ """Generate console code coverage reports.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/coverage/xml.py b/test/lib/ansible_test/_internal/commands/coverage/xml.py index 243c9a99239..0c4153f6ff1 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/xml.py +++ b/test/lib/ansible_test/_internal/commands/coverage/xml.py @@ -1,4 +1,5 @@ """Generate XML code coverage reports.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/env/__init__.py b/test/lib/ansible_test/_internal/commands/env/__init__.py index 92d2c973414..c62d453ff8f 100644 --- a/test/lib/ansible_test/_internal/commands/env/__init__.py +++ b/test/lib/ansible_test/_internal/commands/env/__init__.py @@ -1,4 +1,5 @@ """Show information about the test environment.""" + from __future__ import annotations import datetime @@ -49,6 +50,7 @@ from ...timeout import ( class EnvConfig(CommonConfig): """Configuration for the `env` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'env') diff --git a/test/lib/ansible_test/_internal/commands/integration/__init__.py b/test/lib/ansible_test/_internal/commands/integration/__init__.py index 5bd04407bee..e2f51731206 100644 --- a/test/lib/ansible_test/_internal/commands/integration/__init__.py +++ b/test/lib/ansible_test/_internal/commands/integration/__init__.py @@ -1,4 +1,5 @@ """Ansible integration test infrastructure.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py b/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py index cf920bc9e1e..16fe68b3a5f 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py @@ -1,4 +1,5 @@ """Plugin system for cloud providers and environments for use in integration tests.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py b/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py index e4dac3adb52..3e1e7e753e8 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py @@ -1,4 +1,5 @@ """ACME plugin for integration tests.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py b/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py index 470f3be5daa..dfa30e974c5 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py @@ -1,4 +1,5 @@ """AWS plugin for integration tests.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py b/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py index 4225f8f49ca..7030e934a40 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py @@ -1,4 +1,5 @@ """Azure plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py b/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py index ebb273496ff..80ffb5bca90 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py @@ -1,4 +1,5 @@ """CloudStack plugin for integration tests.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py b/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py index 1a15a98d248..0083c34b42a 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py @@ -1,4 +1,5 @@ """DigitalOcean plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py b/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py index f7053c8b4ff..206efa92f40 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py @@ -1,4 +1,5 @@ """Galaxy (ansible-galaxy) plugin for integration tests.""" + from __future__ import annotations import os @@ -69,7 +70,7 @@ SETTINGS = { } -GALAXY_IMPORTER = b''' +GALAXY_IMPORTER = b""" [galaxy-importer] ansible_local_tmp=~/.ansible/tmp ansible_test_local_image=false @@ -84,7 +85,7 @@ run_ansible_doc=false run_ansible_lint=false run_ansible_test=false run_flake8=false -'''.strip() +""".strip() class GalaxyProvider(CloudProvider): diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py b/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py index b9ee22747f3..cfdbc23d0e7 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py @@ -1,4 +1,5 @@ """Hetzner Cloud plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py b/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py index 9d987d23efa..038b94271cd 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py @@ -1,4 +1,5 @@ """HTTP Tester plugin for integration tests.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py b/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py index f3733584ccc..be2d1cfaf2b 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py @@ -1,4 +1,5 @@ """NIOS plugin for integration tests.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py b/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py index 836cb22c2f1..65bc1b701f6 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py @@ -1,4 +1,5 @@ """OpenNebula plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py b/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py index 6e8a5e4fdd1..14f9cf8a96b 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py @@ -1,4 +1,5 @@ """OpenShift plugin for integration tests.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py b/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py index 69df093e3c6..4aff6be0ae4 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py @@ -1,4 +1,5 @@ """Scaleway plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py b/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py index b0ff7fe3134..38cb6221bab 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py @@ -1,4 +1,5 @@ """VMware vCenter plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py b/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py index 57e4fca7ed7..2cfa3f082af 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py @@ -1,4 +1,5 @@ """Vultr plugin for integration tests.""" + from __future__ import annotations import configparser diff --git a/test/lib/ansible_test/_internal/commands/integration/coverage.py b/test/lib/ansible_test/_internal/commands/integration/coverage.py index ed0720527bc..3182799479b 100644 --- a/test/lib/ansible_test/_internal/commands/integration/coverage.py +++ b/test/lib/ansible_test/_internal/commands/integration/coverage.py @@ -1,4 +1,5 @@ """Code coverage support for integration tests.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/commands/integration/filters.py b/test/lib/ansible_test/_internal/commands/integration/filters.py index 571c8163c7a..2ce65811fe5 100644 --- a/test/lib/ansible_test/_internal/commands/integration/filters.py +++ b/test/lib/ansible_test/_internal/commands/integration/filters.py @@ -1,4 +1,5 @@ """Logic for filtering out integration test targets which are unsupported for the currently provided arguments and available hosts.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/commands/integration/network.py b/test/lib/ansible_test/_internal/commands/integration/network.py index d28416c5551..085bfb55c92 100644 --- a/test/lib/ansible_test/_internal/commands/integration/network.py +++ b/test/lib/ansible_test/_internal/commands/integration/network.py @@ -1,4 +1,5 @@ """Network integration testing.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/integration/posix.py b/test/lib/ansible_test/_internal/commands/integration/posix.py index d4c50d34d8d..36ddc129de2 100644 --- a/test/lib/ansible_test/_internal/commands/integration/posix.py +++ b/test/lib/ansible_test/_internal/commands/integration/posix.py @@ -1,4 +1,5 @@ """POSIX integration testing.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/integration/windows.py b/test/lib/ansible_test/_internal/commands/integration/windows.py index aa201c423c3..6da5a51f23d 100644 --- a/test/lib/ansible_test/_internal/commands/integration/windows.py +++ b/test/lib/ansible_test/_internal/commands/integration/windows.py @@ -1,4 +1,5 @@ """Windows integration testing.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/sanity/__init__.py b/test/lib/ansible_test/_internal/commands/sanity/__init__.py index fd5dc27928d..de886f47751 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/__init__.py +++ b/test/lib/ansible_test/_internal/commands/sanity/__init__.py @@ -1,4 +1,5 @@ """Execute Ansible sanity tests.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py b/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py index 1b3b4023e46..6dffd7c42a0 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py +++ b/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py @@ -1,4 +1,5 @@ """Sanity test for ansible-doc.""" + from __future__ import annotations import collections diff --git a/test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py b/test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py index 6c7618d168e..acd44c8b89d 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py +++ b/test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py @@ -1,4 +1,5 @@ """Sanity test for symlinks in the bin directory.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/sanity/compile.py b/test/lib/ansible_test/_internal/commands/sanity/compile.py index a0f599f1114..eba2a9a0bef 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/compile.py +++ b/test/lib/ansible_test/_internal/commands/sanity/compile.py @@ -1,4 +1,5 @@ """Sanity test for proper python syntax.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/sanity/ignores.py b/test/lib/ansible_test/_internal/commands/sanity/ignores.py index 251f8326e7d..818d113f82b 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/ignores.py +++ b/test/lib/ansible_test/_internal/commands/sanity/ignores.py @@ -1,4 +1,5 @@ """Sanity test for the sanity ignore file.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/sanity/import.py b/test/lib/ansible_test/_internal/commands/sanity/import.py index 55b90f790df..245f3b2ffe9 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/import.py +++ b/test/lib/ansible_test/_internal/commands/sanity/import.py @@ -1,4 +1,5 @@ """Sanity test for proper import exception handling.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/sanity/integration_aliases.py b/test/lib/ansible_test/_internal/commands/sanity/integration_aliases.py index 32b70c24653..96381280f9e 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/integration_aliases.py +++ b/test/lib/ansible_test/_internal/commands/sanity/integration_aliases.py @@ -1,4 +1,5 @@ """Sanity test to check integration test aliases.""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/commands/sanity/pep8.py b/test/lib/ansible_test/_internal/commands/sanity/pep8.py index 610dbd649a5..a18ac6d4d81 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/pep8.py +++ b/test/lib/ansible_test/_internal/commands/sanity/pep8.py @@ -1,4 +1,5 @@ """Sanity test for PEP 8 style guidelines using pycodestyle.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/sanity/pslint.py b/test/lib/ansible_test/_internal/commands/sanity/pslint.py index 1694488d4df..6c923878425 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/pslint.py +++ b/test/lib/ansible_test/_internal/commands/sanity/pslint.py @@ -1,4 +1,5 @@ """Sanity test using PSScriptAnalyzer.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_internal/commands/sanity/pylint.py b/test/lib/ansible_test/_internal/commands/sanity/pylint.py index 342315adb3f..e9ca8820238 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/pylint.py +++ b/test/lib/ansible_test/_internal/commands/sanity/pylint.py @@ -1,4 +1,5 @@ """Sanity test using pylint.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py b/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py index 4576622c12e..731011c149d 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py +++ b/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py @@ -1,4 +1,5 @@ """Sanity test using shellcheck.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py b/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py index e29b5dec992..29f271afa81 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py +++ b/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py @@ -1,4 +1,5 @@ """Sanity test using validate-modules.""" + from __future__ import annotations import collections diff --git a/test/lib/ansible_test/_internal/commands/sanity/yamllint.py b/test/lib/ansible_test/_internal/commands/sanity/yamllint.py index 0af8d65ef37..18591f136c0 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/yamllint.py +++ b/test/lib/ansible_test/_internal/commands/sanity/yamllint.py @@ -1,4 +1,5 @@ """Sanity test using yamllint.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_internal/commands/shell/__init__.py b/test/lib/ansible_test/_internal/commands/shell/__init__.py index 4ddce2973f9..0c3cf15aef3 100644 --- a/test/lib/ansible_test/_internal/commands/shell/__init__.py +++ b/test/lib/ansible_test/_internal/commands/shell/__init__.py @@ -1,4 +1,5 @@ """Open a shell prompt inside an ansible-test environment.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/commands/units/__init__.py b/test/lib/ansible_test/_internal/commands/units/__init__.py index 94272627cc9..126e670e869 100644 --- a/test/lib/ansible_test/_internal/commands/units/__init__.py +++ b/test/lib/ansible_test/_internal/commands/units/__init__.py @@ -1,4 +1,5 @@ """Execute unit tests using pytest.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/compat/__init__.py b/test/lib/ansible_test/_internal/compat/__init__.py index e9cb68168dd..d1a910be5c4 100644 --- a/test/lib/ansible_test/_internal/compat/__init__.py +++ b/test/lib/ansible_test/_internal/compat/__init__.py @@ -1,2 +1,3 @@ """Nearly empty __init__.py to keep pylint happy.""" + from __future__ import annotations diff --git a/test/lib/ansible_test/_internal/compat/packaging.py b/test/lib/ansible_test/_internal/compat/packaging.py index 92e773648ef..56cf5c46ee0 100644 --- a/test/lib/ansible_test/_internal/compat/packaging.py +++ b/test/lib/ansible_test/_internal/compat/packaging.py @@ -1,4 +1,5 @@ """Packaging compatibility.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/compat/yaml.py b/test/lib/ansible_test/_internal/compat/yaml.py index fc338e21482..f10d0d835e9 100644 --- a/test/lib/ansible_test/_internal/compat/yaml.py +++ b/test/lib/ansible_test/_internal/compat/yaml.py @@ -1,4 +1,5 @@ """PyYAML compatibility.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/completion.py b/test/lib/ansible_test/_internal/completion.py index bbb39ba00f7..e371c3d01db 100644 --- a/test/lib/ansible_test/_internal/completion.py +++ b/test/lib/ansible_test/_internal/completion.py @@ -1,4 +1,5 @@ """Loading, parsing and storing of completion configurations.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/config.py b/test/lib/ansible_test/_internal/config.py index 1a4b78c413e..f8237ddc62f 100644 --- a/test/lib/ansible_test/_internal/config.py +++ b/test/lib/ansible_test/_internal/config.py @@ -1,4 +1,5 @@ """Configuration classes.""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/connections.py b/test/lib/ansible_test/_internal/connections.py index 84dc84b2085..11d60d84990 100644 --- a/test/lib/ansible_test/_internal/connections.py +++ b/test/lib/ansible_test/_internal/connections.py @@ -1,4 +1,5 @@ """Connection abstraction for interacting with test hosts.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/constants.py b/test/lib/ansible_test/_internal/constants.py index 985f4954c00..2b6d72b052f 100644 --- a/test/lib/ansible_test/_internal/constants.py +++ b/test/lib/ansible_test/_internal/constants.py @@ -1,4 +1,5 @@ """Constants used by ansible-test. Imports should not be used in this file (other than to import the target common constants).""" + from __future__ import annotations from .._util.target.common.constants import ( diff --git a/test/lib/ansible_test/_internal/containers.py b/test/lib/ansible_test/_internal/containers.py index 79c8cd6b398..86508a83bf6 100644 --- a/test/lib/ansible_test/_internal/containers.py +++ b/test/lib/ansible_test/_internal/containers.py @@ -1,4 +1,5 @@ """High level functions for working with containers.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/content_config.py b/test/lib/ansible_test/_internal/content_config.py index c9c37df646b..781e20647c5 100644 --- a/test/lib/ansible_test/_internal/content_config.py +++ b/test/lib/ansible_test/_internal/content_config.py @@ -1,4 +1,5 @@ """Content configuration.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/core_ci.py b/test/lib/ansible_test/_internal/core_ci.py index 77e6753f3a5..f7591daf7a1 100644 --- a/test/lib/ansible_test/_internal/core_ci.py +++ b/test/lib/ansible_test/_internal/core_ci.py @@ -1,4 +1,5 @@ """Access Ansible Core CI remote services.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/coverage_util.py b/test/lib/ansible_test/_internal/coverage_util.py index 2bec9c791e3..07134419be1 100644 --- a/test/lib/ansible_test/_internal/coverage_util.py +++ b/test/lib/ansible_test/_internal/coverage_util.py @@ -1,4 +1,5 @@ """Utility code for facilitating collection of code coverage when running tests.""" + from __future__ import annotations import dataclasses @@ -246,7 +247,7 @@ def generate_coverage_config(args: TestConfig) -> str: def generate_ansible_coverage_config() -> str: """Generate code coverage configuration for Ansible tests.""" - coverage_config = ''' + coverage_config = """ [run] branch = True concurrency = @@ -262,14 +263,14 @@ omit = */pytest */AnsiballZ_*.py */test/results/* -''' +""" return coverage_config def generate_collection_coverage_config(args: TestConfig) -> str: """Generate code coverage configuration for Ansible Collection tests.""" - coverage_config = ''' + coverage_config = """ [run] branch = True concurrency = @@ -278,28 +279,28 @@ concurrency = parallel = True disable_warnings = no-data-collected -''' +""" if isinstance(args, IntegrationConfig): - coverage_config += ''' + coverage_config += """ include = %s/* */%s/* -''' % (data_context().content.root, data_context().content.collection.directory) +""" % (data_context().content.root, data_context().content.collection.directory) elif isinstance(args, SanityConfig): # temporary work-around for import sanity test - coverage_config += ''' + coverage_config += """ include = %s/* omit = %s/* -''' % (data_context().content.root, os.path.join(data_context().content.root, data_context().content.results_path)) +""" % (data_context().content.root, os.path.join(data_context().content.root, data_context().content.results_path)) else: - coverage_config += ''' + coverage_config += """ include = %s/* -''' % data_context().content.root +""" % data_context().content.root return coverage_config diff --git a/test/lib/ansible_test/_internal/data.py b/test/lib/ansible_test/_internal/data.py index 67f7a06ce36..dda3d628e76 100644 --- a/test/lib/ansible_test/_internal/data.py +++ b/test/lib/ansible_test/_internal/data.py @@ -1,4 +1,5 @@ """Context information for the current invocation of ansible-test.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/delegation.py b/test/lib/ansible_test/_internal/delegation.py index 84896830bc8..7911bafc13d 100644 --- a/test/lib/ansible_test/_internal/delegation.py +++ b/test/lib/ansible_test/_internal/delegation.py @@ -1,4 +1,5 @@ """Delegate test execution to another environment.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/dev/__init__.py b/test/lib/ansible_test/_internal/dev/__init__.py index e7c9b7d54f9..c3f3d4087b1 100644 --- a/test/lib/ansible_test/_internal/dev/__init__.py +++ b/test/lib/ansible_test/_internal/dev/__init__.py @@ -1,2 +1,3 @@ """Development and testing support code. Enabled through the use of `--dev-*` command line options.""" + from __future__ import annotations diff --git a/test/lib/ansible_test/_internal/dev/container_probe.py b/test/lib/ansible_test/_internal/dev/container_probe.py index fcbfbe4f089..a7badd38583 100644 --- a/test/lib/ansible_test/_internal/dev/container_probe.py +++ b/test/lib/ansible_test/_internal/dev/container_probe.py @@ -1,4 +1,5 @@ """Diagnostic utilities to probe container cgroup behavior during development and testing (both manual and integration).""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/diff.py b/test/lib/ansible_test/_internal/diff.py index 5a94aafcef9..d41604cd102 100644 --- a/test/lib/ansible_test/_internal/diff.py +++ b/test/lib/ansible_test/_internal/diff.py @@ -1,4 +1,5 @@ """Diff parsing functions and classes.""" + from __future__ import annotations import re @@ -128,14 +129,14 @@ class DiffParser: try: self.action() except Exception as ex: - message = textwrap.dedent(''' + message = textwrap.dedent(""" %s Line: %d Previous: %s Current: %s %s - ''').strip() % ( + """).strip() % ( ex, self.line_number, self.previous_line or '', diff --git a/test/lib/ansible_test/_internal/docker_util.py b/test/lib/ansible_test/_internal/docker_util.py index 7632ef51e4d..1dd1fbd8821 100644 --- a/test/lib/ansible_test/_internal/docker_util.py +++ b/test/lib/ansible_test/_internal/docker_util.py @@ -1,4 +1,5 @@ """Functions for accessing docker via the docker cli.""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/encoding.py b/test/lib/ansible_test/_internal/encoding.py index 476c59025e6..3b88412b30b 100644 --- a/test/lib/ansible_test/_internal/encoding.py +++ b/test/lib/ansible_test/_internal/encoding.py @@ -1,4 +1,5 @@ """Functions for encoding and decoding strings.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/executor.py b/test/lib/ansible_test/_internal/executor.py index d7d6f1a8452..2d3c3e69e6a 100644 --- a/test/lib/ansible_test/_internal/executor.py +++ b/test/lib/ansible_test/_internal/executor.py @@ -1,4 +1,5 @@ """Execute Ansible tests.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/git.py b/test/lib/ansible_test/_internal/git.py index b6c5c7b49d1..8ee0a28d125 100644 --- a/test/lib/ansible_test/_internal/git.py +++ b/test/lib/ansible_test/_internal/git.py @@ -1,4 +1,5 @@ """Wrapper around git command-line tools.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_internal/host_configs.py b/test/lib/ansible_test/_internal/host_configs.py index 8e9817004b6..8753ba9160d 100644 --- a/test/lib/ansible_test/_internal/host_configs.py +++ b/test/lib/ansible_test/_internal/host_configs.py @@ -1,4 +1,5 @@ """Configuration for the test hosts requested by the user.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/host_profiles.py b/test/lib/ansible_test/_internal/host_profiles.py index 9258bd19e15..b726e13a0e9 100644 --- a/test/lib/ansible_test/_internal/host_profiles.py +++ b/test/lib/ansible_test/_internal/host_profiles.py @@ -1,4 +1,5 @@ """Profiles to represent individual test hosts or a user-provided inventory file.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/http.py b/test/lib/ansible_test/_internal/http.py index 7317aae10d9..28e79542f90 100644 --- a/test/lib/ansible_test/_internal/http.py +++ b/test/lib/ansible_test/_internal/http.py @@ -1,4 +1,5 @@ """A simple HTTP client.""" + from __future__ import annotations import http.client diff --git a/test/lib/ansible_test/_internal/init.py b/test/lib/ansible_test/_internal/init.py index 863c2589c7e..dc76f3dfd4e 100644 --- a/test/lib/ansible_test/_internal/init.py +++ b/test/lib/ansible_test/_internal/init.py @@ -1,4 +1,5 @@ """Early initialization for ansible-test before most other imports have been performed.""" + from __future__ import annotations import resource diff --git a/test/lib/ansible_test/_internal/inventory.py b/test/lib/ansible_test/_internal/inventory.py index 098d0d0b43f..0650644db4c 100644 --- a/test/lib/ansible_test/_internal/inventory.py +++ b/test/lib/ansible_test/_internal/inventory.py @@ -1,4 +1,5 @@ """Inventory creation from host profiles.""" + from __future__ import annotations import shutil diff --git a/test/lib/ansible_test/_internal/io.py b/test/lib/ansible_test/_internal/io.py index eb745be4c0f..dfd5c3af1b3 100644 --- a/test/lib/ansible_test/_internal/io.py +++ b/test/lib/ansible_test/_internal/io.py @@ -1,4 +1,5 @@ """Functions for disk IO.""" + from __future__ import annotations import io diff --git a/test/lib/ansible_test/_internal/metadata.py b/test/lib/ansible_test/_internal/metadata.py index b8b598e88a6..cb3fc1c1895 100644 --- a/test/lib/ansible_test/_internal/metadata.py +++ b/test/lib/ansible_test/_internal/metadata.py @@ -1,4 +1,5 @@ """Test metadata for passing data to delegated tests.""" + from __future__ import annotations import typing as t diff --git a/test/lib/ansible_test/_internal/payload.py b/test/lib/ansible_test/_internal/payload.py index ab9739b4835..8e04bd4f97b 100644 --- a/test/lib/ansible_test/_internal/payload.py +++ b/test/lib/ansible_test/_internal/payload.py @@ -1,4 +1,5 @@ """Payload management for sending Ansible files and test content to other systems (VMs, containers).""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/provider/__init__.py b/test/lib/ansible_test/_internal/provider/__init__.py index 9b73ae726f8..1b3863c0a35 100644 --- a/test/lib/ansible_test/_internal/provider/__init__.py +++ b/test/lib/ansible_test/_internal/provider/__init__.py @@ -1,4 +1,5 @@ """Provider (plugin) infrastructure for ansible-test.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/provider/layout/__init__.py b/test/lib/ansible_test/_internal/provider/layout/__init__.py index a0a0609be5f..f0e80598c17 100644 --- a/test/lib/ansible_test/_internal/provider/layout/__init__.py +++ b/test/lib/ansible_test/_internal/provider/layout/__init__.py @@ -1,4 +1,5 @@ """Code for finding content.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/provider/layout/ansible.py b/test/lib/ansible_test/_internal/provider/layout/ansible.py index 3fad835a39b..d8a3efee807 100644 --- a/test/lib/ansible_test/_internal/provider/layout/ansible.py +++ b/test/lib/ansible_test/_internal/provider/layout/ansible.py @@ -1,4 +1,5 @@ """Layout provider for Ansible source.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/provider/layout/collection.py b/test/lib/ansible_test/_internal/provider/layout/collection.py index a9221be6f3c..267748f079c 100644 --- a/test/lib/ansible_test/_internal/provider/layout/collection.py +++ b/test/lib/ansible_test/_internal/provider/layout/collection.py @@ -1,4 +1,5 @@ """Layout provider for Ansible collections.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/provider/layout/unsupported.py b/test/lib/ansible_test/_internal/provider/layout/unsupported.py index e3d81e63e98..f25c6450b18 100644 --- a/test/lib/ansible_test/_internal/provider/layout/unsupported.py +++ b/test/lib/ansible_test/_internal/provider/layout/unsupported.py @@ -1,4 +1,5 @@ """Layout provider for an unsupported directory layout.""" + from __future__ import annotations from . import ( diff --git a/test/lib/ansible_test/_internal/provider/source/__init__.py b/test/lib/ansible_test/_internal/provider/source/__init__.py index 68fe380f118..84a5183da55 100644 --- a/test/lib/ansible_test/_internal/provider/source/__init__.py +++ b/test/lib/ansible_test/_internal/provider/source/__init__.py @@ -1,4 +1,5 @@ """Common code for source providers.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/provider/source/git.py b/test/lib/ansible_test/_internal/provider/source/git.py index f8637edd448..bca3f47fc7e 100644 --- a/test/lib/ansible_test/_internal/provider/source/git.py +++ b/test/lib/ansible_test/_internal/provider/source/git.py @@ -1,4 +1,5 @@ """Source provider for a content root managed by git version control.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/provider/source/installed.py b/test/lib/ansible_test/_internal/provider/source/installed.py index 1e5a6ba2030..c591034536c 100644 --- a/test/lib/ansible_test/_internal/provider/source/installed.py +++ b/test/lib/ansible_test/_internal/provider/source/installed.py @@ -1,4 +1,5 @@ """Source provider for content which has been installed.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/provider/source/unsupported.py b/test/lib/ansible_test/_internal/provider/source/unsupported.py index caa49941673..7f01708bc42 100644 --- a/test/lib/ansible_test/_internal/provider/source/unsupported.py +++ b/test/lib/ansible_test/_internal/provider/source/unsupported.py @@ -1,4 +1,5 @@ """Source provider to use when the layout is unsupported.""" + from __future__ import annotations from . import ( diff --git a/test/lib/ansible_test/_internal/provider/source/unversioned.py b/test/lib/ansible_test/_internal/provider/source/unversioned.py index 54831c99e4a..ecd290cd4af 100644 --- a/test/lib/ansible_test/_internal/provider/source/unversioned.py +++ b/test/lib/ansible_test/_internal/provider/source/unversioned.py @@ -1,4 +1,5 @@ """Fallback source provider when no other provider matches the content root.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_internal/provisioning.py b/test/lib/ansible_test/_internal/provisioning.py index 4710757bd0a..a174e808014 100644 --- a/test/lib/ansible_test/_internal/provisioning.py +++ b/test/lib/ansible_test/_internal/provisioning.py @@ -1,4 +1,5 @@ """Provision hosts for running tests.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/pypi_proxy.py b/test/lib/ansible_test/_internal/pypi_proxy.py index 62f2a3da764..327ec3dd6b0 100644 --- a/test/lib/ansible_test/_internal/pypi_proxy.py +++ b/test/lib/ansible_test/_internal/pypi_proxy.py @@ -1,4 +1,5 @@ """PyPI proxy management.""" + from __future__ import annotations import os @@ -134,11 +135,11 @@ def configure_target_pypi_proxy(args: EnvironmentConfig, profile: HostProfile, p def configure_pypi_proxy_pip(args: EnvironmentConfig, profile: HostProfile, pypi_endpoint: str, pypi_hostname: str) -> None: """Configure a custom index for pip based installs.""" pip_conf_path = os.path.expanduser('~/.pip/pip.conf') - pip_conf = ''' + pip_conf = """ [global] index-url = {0} trusted-host = {1} -'''.format(pypi_endpoint, pypi_hostname).strip() +""".format(pypi_endpoint, pypi_hostname).strip() def pip_conf_cleanup() -> None: """Remove custom pip PyPI config.""" @@ -159,10 +160,10 @@ trusted-host = {1} def configure_pypi_proxy_easy_install(args: EnvironmentConfig, profile: HostProfile, pypi_endpoint: str) -> None: """Configure a custom index for easy_install based installs.""" pydistutils_cfg_path = os.path.expanduser('~/.pydistutils.cfg') - pydistutils_cfg = ''' + pydistutils_cfg = """ [easy_install] index_url = {0} -'''.format(pypi_endpoint).strip() +""".format(pypi_endpoint).strip() if os.path.exists(pydistutils_cfg_path) and not profile.config.is_managed: raise ApplicationError('Refusing to overwrite existing file: %s' % pydistutils_cfg_path) diff --git a/test/lib/ansible_test/_internal/python_requirements.py b/test/lib/ansible_test/_internal/python_requirements.py index aaa60789849..8cf4b5df881 100644 --- a/test/lib/ansible_test/_internal/python_requirements.py +++ b/test/lib/ansible_test/_internal/python_requirements.py @@ -1,4 +1,5 @@ """Python requirements management""" + from __future__ import annotations import base64 diff --git a/test/lib/ansible_test/_internal/ssh.py b/test/lib/ansible_test/_internal/ssh.py index 812576808e6..80fc354b578 100644 --- a/test/lib/ansible_test/_internal/ssh.py +++ b/test/lib/ansible_test/_internal/ssh.py @@ -1,4 +1,5 @@ """High level functions for working with SSH.""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/target.py b/test/lib/ansible_test/_internal/target.py index a6fa3bf289b..0f2867b8b35 100644 --- a/test/lib/ansible_test/_internal/target.py +++ b/test/lib/ansible_test/_internal/target.py @@ -1,4 +1,5 @@ """Test target identification, iteration and inclusion/exclusion.""" + from __future__ import annotations import collections diff --git a/test/lib/ansible_test/_internal/test.py b/test/lib/ansible_test/_internal/test.py index c36d17e2c85..9a730cf4b33 100644 --- a/test/lib/ansible_test/_internal/test.py +++ b/test/lib/ansible_test/_internal/test.py @@ -1,4 +1,5 @@ """Classes for storing and processing test results.""" + from __future__ import annotations import collections.abc as c @@ -141,12 +142,12 @@ class TestTimeout(TestResult): # Include a leading newline to improve readability on Shippable "Tests" tab. # Without this, the first line becomes indented. - output = ''' + output = """ One or more of the following situations may be responsible: - Code changes have resulted in tests that hang or run for an excessive amount of time. - Tests have been added which exceed the time limit when combined with existing tests. -- Test infrastructure and/or external dependencies are operating slower than normal.''' +- Test infrastructure and/or external dependencies are operating slower than normal.""" if args.coverage: output += '\n- Additional overhead from collecting code coverage has resulted in tests exceeding the time limit.' diff --git a/test/lib/ansible_test/_internal/thread.py b/test/lib/ansible_test/_internal/thread.py index c4574377724..9b712370bb9 100644 --- a/test/lib/ansible_test/_internal/thread.py +++ b/test/lib/ansible_test/_internal/thread.py @@ -1,4 +1,5 @@ """Python threading tools.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_internal/timeout.py b/test/lib/ansible_test/_internal/timeout.py index 3f90c49fb2b..898d0aae0ed 100644 --- a/test/lib/ansible_test/_internal/timeout.py +++ b/test/lib/ansible_test/_internal/timeout.py @@ -1,4 +1,5 @@ """Timeout management for tests.""" + from __future__ import annotations import dataclasses diff --git a/test/lib/ansible_test/_internal/util.py b/test/lib/ansible_test/_internal/util.py index 04231756aaa..f875463111a 100644 --- a/test/lib/ansible_test/_internal/util.py +++ b/test/lib/ansible_test/_internal/util.py @@ -1,4 +1,5 @@ """Miscellaneous utility functions and classes.""" + from __future__ import annotations import abc diff --git a/test/lib/ansible_test/_internal/util_common.py b/test/lib/ansible_test/_internal/util_common.py index 98d9c23965b..405b4fd9bcb 100644 --- a/test/lib/ansible_test/_internal/util_common.py +++ b/test/lib/ansible_test/_internal/util_common.py @@ -1,4 +1,5 @@ """Common utility code that depends on CommonConfig.""" + from __future__ import annotations import collections.abc as c @@ -65,6 +66,7 @@ CHECK_YAML_VERSIONS: dict[str, t.Any] = {} class ExitHandler: """Simple exit handler implementation.""" + _callbacks: list[tuple[t.Callable, tuple[t.Any, ...], dict[str, t.Any]]] = [] @staticmethod @@ -410,7 +412,7 @@ def create_interpreter_wrapper(interpreter: str, injected_interpreter: str) -> N # injected_interpreter could be a script from the system or our own wrapper created for the --venv option shebang_interpreter = sys.executable - code = textwrap.dedent(''' + code = textwrap.dedent(""" #!%s from __future__ import annotations @@ -421,7 +423,7 @@ def create_interpreter_wrapper(interpreter: str, injected_interpreter: str) -> N python = '%s' execv(python, [python] + argv[1:]) - ''' % (shebang_interpreter, interpreter)).lstrip() + """ % (shebang_interpreter, interpreter)).lstrip() write_text_file(injected_interpreter, code) diff --git a/test/lib/ansible_test/_internal/venv.py b/test/lib/ansible_test/_internal/venv.py index cdd73b0adb6..95acc2e52bd 100644 --- a/test/lib/ansible_test/_internal/venv.py +++ b/test/lib/ansible_test/_internal/venv.py @@ -1,4 +1,5 @@ """Virtual environment management.""" + from __future__ import annotations import collections.abc as c diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/action-plugin-docs.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/action-plugin-docs.py index 9504a806ad4..ac3af4db7a7 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/action-plugin-docs.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/action-plugin-docs.py @@ -1,4 +1,5 @@ """Test to verify action plugins have an associated module to provide documentation.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog.py index 924e5afeb00..46f8f254c50 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog.py @@ -1,4 +1,5 @@ """Check changelog fragment naming, syntax, etc.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog/sphinx.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog/sphinx.py index 7eab0f573a1..3aeae1adbca 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog/sphinx.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/changelog/sphinx.py @@ -1,4 +1,5 @@ """Block the sphinx module from being loaded.""" + from __future__ import annotations raise ImportError('The sphinx module has been prevented from loading to maintain consistent test results.') diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/empty-init.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/empty-init.py index 01aef6973bb..67e7b9bb045 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/empty-init.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/empty-init.py @@ -1,4 +1,5 @@ """Require empty __init__.py files.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/line-endings.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/line-endings.py index 31f97ad8d14..045ea6c86e2 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/line-endings.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/line-endings.py @@ -1,4 +1,5 @@ """Require Unix line endings.""" + from __future__ import annotations import sys diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-assert.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-assert.py index 8c1c02769af..32c9eff0681 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-assert.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-assert.py @@ -1,4 +1,5 @@ """Disallow use of assert.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-get-exception.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-get-exception.py index 0abb23da8c1..fbd584eb446 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-get-exception.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-get-exception.py @@ -1,4 +1,5 @@ """Disallow use of the get_exception function.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-illegal-filenames.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-illegal-filenames.py index 10bf4aaa15b..f4d3d8d9214 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-illegal-filenames.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-illegal-filenames.py @@ -3,6 +3,7 @@ Check for illegal filenames on various operating systems. The main rules are derived from restrictions on Windows: https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions """ + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-smart-quotes.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-smart-quotes.py index 461033d231b..287466a8fbe 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/no-smart-quotes.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/no-smart-quotes.py @@ -1,4 +1,5 @@ """Disallow use of Unicode quotes.""" + # -*- coding: utf-8 -*- from __future__ import annotations diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/replace-urlopen.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/replace-urlopen.py index a6dd5aaf74a..52328007b28 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/replace-urlopen.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/replace-urlopen.py @@ -1,4 +1,5 @@ """Disallow use of the urlopen function.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/runtime-metadata.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/runtime-metadata.py index a3cfca0a97e..99c809918c3 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/runtime-metadata.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/runtime-metadata.py @@ -1,4 +1,5 @@ """Schema validation of ansible-core's ansible_builtin_runtime.yml and collection's meta/runtime.yml""" + from __future__ import annotations import datetime diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/shebang.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/shebang.py index b0b13197839..8922c8be111 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/shebang.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/shebang.py @@ -1,4 +1,5 @@ """Check shebangs, execute bits and byte order marks.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/symlinks.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/symlinks.py index 5cffc69e7ba..677a5afd26f 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/symlinks.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/symlinks.py @@ -1,4 +1,5 @@ """Check for unwanted symbolic links.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/use-argspec-type-path.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/use-argspec-type-path.py index 0faeff354c1..aeb8129c788 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/use-argspec-type-path.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/use-argspec-type-path.py @@ -1,4 +1,5 @@ """Disallow use of the expanduser function.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_util/controller/sanity/code-smell/use-compat-six.py b/test/lib/ansible_test/_util/controller/sanity/code-smell/use-compat-six.py index db42fecbc5d..e68df53e0ea 100644 --- a/test/lib/ansible_test/_util/controller/sanity/code-smell/use-compat-six.py +++ b/test/lib/ansible_test/_util/controller/sanity/code-smell/use-compat-six.py @@ -1,4 +1,5 @@ """Disallow importing of the six module.""" + from __future__ import annotations import re diff --git a/test/lib/ansible_test/_util/controller/sanity/integration-aliases/yaml_to_json.py b/test/lib/ansible_test/_util/controller/sanity/integration-aliases/yaml_to_json.py index 96234b94aa3..e69caba51c9 100644 --- a/test/lib/ansible_test/_util/controller/sanity/integration-aliases/yaml_to_json.py +++ b/test/lib/ansible_test/_util/controller/sanity/integration-aliases/yaml_to_json.py @@ -1,4 +1,5 @@ """Read YAML from stdin and write JSON to stdout.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py index 93d5a47a023..d03dafae8c9 100644 --- a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py +++ b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py @@ -1,4 +1,5 @@ """Ansible specific plyint plugin for checking deprecations.""" + # (c) 2018, Matt Martz # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # -*- coding: utf-8 -*- diff --git a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/hide_unraisable.py b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/hide_unraisable.py index b67ea8eccc2..5c0d5cd6452 100644 --- a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/hide_unraisable.py +++ b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/hide_unraisable.py @@ -1,4 +1,5 @@ """Temporary plugin to prevent stdout noise pollution from finalization of abandoned generators.""" + from __future__ import annotations import sys diff --git a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py index 2cdf74b81ae..ef8703cc5f1 100644 --- a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py +++ b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/string_format.py @@ -1,4 +1,5 @@ """Ansible specific pylint plugin for checking format string usage.""" + # (c) 2018, Matt Martz # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # -*- coding: utf-8 -*- diff --git a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py index 401e4184684..f9abec0c0f4 100644 --- a/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py +++ b/test/lib/ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py @@ -1,4 +1,5 @@ """A plugin for pylint to identify imports and functions which should not be used.""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py index 5f02f64c64d..ffe225aea62 100644 --- a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +++ b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py @@ -688,7 +688,7 @@ class ModuleValidator(Validator): # check "shape" of each module name legacy_ps_requires = r'(?im)^#\s*Requires\s+\-Module(?:s?)\s+(Ansible\.ModuleUtils\..+)' - ps_requires = r'''(?imx) + ps_requires = r"""(?imx) ^\#\s*AnsibleRequires\s+-PowerShell\s+ ( # Builtin PowerShell module @@ -700,8 +700,8 @@ class ModuleValidator(Validator): # Relative collection PowerShell module (\.[\w\.]+) ) - (\s+-Optional)?''' - csharp_requires = r'''(?imx) + (\s+-Optional)?""" + csharp_requires = r"""(?imx) ^\#\s*AnsibleRequires\s+-CSharpUtil\s+ ( # Builtin C# util @@ -713,7 +713,7 @@ class ModuleValidator(Validator): # Relative collection C# util (\.[\w\.]+) ) - (\s+-Optional)?''' + (\s+-Optional)?""" found_requires = False diff --git a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py index 84bab285f28..065c39cbc94 100644 --- a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py +++ b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py @@ -199,6 +199,7 @@ class NoArgsAnsibleModule(AnsibleModule): """AnsibleModule that does not actually load params. This is used to get access to the methods within AnsibleModule without having to fake a bunch of data """ + def _load_params(self): self.params = {'_ansible_selinux_special_fs': [], '_ansible_remote_tmp': '/tmp', '_ansible_keep_remote_files': False, '_ansible_check_mode': False} diff --git a/test/lib/ansible_test/_util/controller/sanity/yamllint/yamllinter.py b/test/lib/ansible_test/_util/controller/sanity/yamllint/yamllinter.py index 22ad1ec5ab3..0979a82e99f 100644 --- a/test/lib/ansible_test/_util/controller/sanity/yamllint/yamllinter.py +++ b/test/lib/ansible_test/_util/controller/sanity/yamllint/yamllinter.py @@ -1,4 +1,5 @@ """Wrapper around yamllint that supports YAML embedded in Ansible modules.""" + from __future__ import annotations import ast @@ -29,6 +30,7 @@ def main(): class TestConstructor(SafeConstructor): """Yaml Safe Constructor that knows about Ansible tags.""" + def construct_yaml_unsafe(self, node): """Construct an unsafe tag.""" try: @@ -60,6 +62,7 @@ TestConstructor.add_constructor( class TestLoader(CParser, TestConstructor, Resolver): """Custom YAML loader that recognizes custom Ansible tags.""" + def __init__(self, stream): CParser.__init__(self, stream) TestConstructor.__init__(self) @@ -68,6 +71,7 @@ class TestLoader(CParser, TestConstructor, Resolver): class YamlChecker: """Wrapper around yamllint that supports YAML embedded in Ansible modules.""" + def __init__(self): self.messages = [] diff --git a/test/lib/ansible_test/_util/controller/tools/collection_detail.py b/test/lib/ansible_test/_util/controller/tools/collection_detail.py index df52d099f54..f350628442a 100644 --- a/test/lib/ansible_test/_util/controller/tools/collection_detail.py +++ b/test/lib/ansible_test/_util/controller/tools/collection_detail.py @@ -1,4 +1,5 @@ """Retrieve collection detail.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_util/controller/tools/yaml_to_json.py b/test/lib/ansible_test/_util/controller/tools/yaml_to_json.py index 3fdaeb027ee..b00c544a42c 100644 --- a/test/lib/ansible_test/_util/controller/tools/yaml_to_json.py +++ b/test/lib/ansible_test/_util/controller/tools/yaml_to_json.py @@ -1,4 +1,5 @@ """Read YAML from stdin and write JSON to stdout.""" + from __future__ import annotations import datetime diff --git a/test/lib/ansible_test/_util/target/pytest/plugins/ansible_forked.py b/test/lib/ansible_test/_util/target/pytest/plugins/ansible_forked.py index 5cfe22e5184..47c53627397 100644 --- a/test/lib/ansible_test/_util/target/pytest/plugins/ansible_forked.py +++ b/test/lib/ansible_test/_util/target/pytest/plugins/ansible_forked.py @@ -1,4 +1,5 @@ """Run each test in its own fork. PYTEST_DONT_REWRITE""" + # MIT License (see licenses/MIT-license.txt or https://opensource.org/licenses/MIT) # Based on code originally from: # https://github.com/pytest-dev/pytest-forked diff --git a/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py b/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py index 1759a30b2bf..44744e49b8e 100644 --- a/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py +++ b/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py @@ -1,4 +1,5 @@ """Enable unit testing of Ansible collections. PYTEST_DONT_REWRITE""" + from __future__ import annotations import os diff --git a/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py b/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py index efc8e931931..e03d135a154 100644 --- a/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py +++ b/test/lib/ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py @@ -1,4 +1,5 @@ """Monkey patch os._exit when running under coverage so we don't lose coverage data in forks, such as with `pytest --boxed`. PYTEST_DONT_REWRITE""" + from __future__ import annotations diff --git a/test/lib/ansible_test/_util/target/sanity/compile/compile.py b/test/lib/ansible_test/_util/target/sanity/compile/compile.py index 3dfec3910fe..0a676e8e9a3 100644 --- a/test/lib/ansible_test/_util/target/sanity/compile/compile.py +++ b/test/lib/ansible_test/_util/target/sanity/compile/compile.py @@ -1,4 +1,5 @@ """Python syntax checker with lint friendly output.""" + from __future__ import annotations import sys diff --git a/test/lib/ansible_test/_util/target/sanity/import/importer.py b/test/lib/ansible_test/_util/target/sanity/import/importer.py index d08f8e75dd0..48fa5aab1b2 100644 --- a/test/lib/ansible_test/_util/target/sanity/import/importer.py +++ b/test/lib/ansible_test/_util/target/sanity/import/importer.py @@ -1,4 +1,5 @@ """Import the given python module(s) and report error(s) encountered.""" + from __future__ import annotations @@ -43,6 +44,7 @@ def main(): # noinspection PyCompatibility from importlib import import_module except ImportError: + def import_module(name, package=None): # type: (str, str | None) -> types.ModuleType assert package is None __import__(name) @@ -142,11 +144,13 @@ def main(): class ImporterAnsibleModule: """Replacement for AnsibleModule to support import testing.""" + def __init__(self, *args, **kwargs): raise ImporterAnsibleModuleException() class RestrictedModuleLoader: """Python module loader that restricts inappropriate imports.""" + def __init__(self, path, name, restrict_to_module_paths): self.path = path self.name = name @@ -431,6 +435,7 @@ def main(): class Capture: """Captured output and/or exception.""" + def __init__(self): # use buffered IO to simulate StringIO; allows Ansible's stream patching to behave without warnings self.stdout = TextIOWrapper(BytesIO()) @@ -489,6 +494,7 @@ def main(): finally: if import_type == 'plugin' and not collection_loader: from ansible.utils.collection_loader._collection_finder import _AnsibleCollectionFinder + _AnsibleCollectionFinder._remove() # pylint: disable=protected-access if sys.meta_path[0] != restricted_loader: diff --git a/test/lib/ansible_test/_util/target/setup/probe_cgroups.py b/test/lib/ansible_test/_util/target/setup/probe_cgroups.py index a09c0246eef..4003fbdc1c5 100644 --- a/test/lib/ansible_test/_util/target/setup/probe_cgroups.py +++ b/test/lib/ansible_test/_util/target/setup/probe_cgroups.py @@ -1,4 +1,5 @@ """A tool for probing cgroups to determine write access.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_util/target/setup/quiet_pip.py b/test/lib/ansible_test/_util/target/setup/quiet_pip.py index c2e9ba20d44..7a8fceabcf7 100644 --- a/test/lib/ansible_test/_util/target/setup/quiet_pip.py +++ b/test/lib/ansible_test/_util/target/setup/quiet_pip.py @@ -1,4 +1,5 @@ """Custom entry-point for pip that filters out unwanted logging and warnings.""" + from __future__ import annotations import logging diff --git a/test/lib/ansible_test/_util/target/setup/requirements.py b/test/lib/ansible_test/_util/target/setup/requirements.py index 28ef0216f05..2c3082620f6 100644 --- a/test/lib/ansible_test/_util/target/setup/requirements.py +++ b/test/lib/ansible_test/_util/target/setup/requirements.py @@ -1,4 +1,5 @@ """A tool for installing test requirements on the controller and target host.""" + from __future__ import annotations # pylint: disable=wrong-import-position @@ -85,7 +86,7 @@ def bootstrap(pip: str, options: dict[str, t.Any]) -> None: try: download_file(url, temp_path) except Exception as ex: - raise ApplicationError((''' + raise ApplicationError((""" Download failed: %s The bootstrap script can be manually downloaded and saved to: %s @@ -93,7 +94,7 @@ The bootstrap script can be manually downloaded and saved to: %s If you're behind a proxy, consider commenting on the following GitHub issue: https://github.com/ansible/ansible/issues/77304 -''' % (ex, cache_path)).strip()) +""" % (ex, cache_path)).strip()) shutil.move(temp_path, cache_path) @@ -290,6 +291,7 @@ class ApplicationError(Exception): class SubprocessError(ApplicationError): """A command returned a non-zero status.""" + def __init__(self, cmd, status, stdout, stderr): # type: (t.List[str], int, str, str) -> None message = 'A command failed with status %d: %s' % (status, shlex.join(cmd)) diff --git a/test/lib/ansible_test/_util/target/tools/virtualenvcheck.py b/test/lib/ansible_test/_util/target/tools/virtualenvcheck.py index 855377073f5..94da563da70 100644 --- a/test/lib/ansible_test/_util/target/tools/virtualenvcheck.py +++ b/test/lib/ansible_test/_util/target/tools/virtualenvcheck.py @@ -1,4 +1,5 @@ """Detect the real python interpreter when running in a virtual environment created by the 'virtualenv' module.""" + from __future__ import annotations import json diff --git a/test/lib/ansible_test/_util/target/tools/yamlcheck.py b/test/lib/ansible_test/_util/target/tools/yamlcheck.py index 42098393ee9..dac67ccc2b8 100644 --- a/test/lib/ansible_test/_util/target/tools/yamlcheck.py +++ b/test/lib/ansible_test/_util/target/tools/yamlcheck.py @@ -1,4 +1,5 @@ """Show availability of PyYAML and libyaml support.""" + from __future__ import annotations import json diff --git a/test/sanity/code-smell/no-unwanted-characters.py b/test/sanity/code-smell/no-unwanted-characters.py index 26e5912c546..cbace21653e 100644 --- a/test/sanity/code-smell/no-unwanted-characters.py +++ b/test/sanity/code-smell/no-unwanted-characters.py @@ -1,4 +1,5 @@ """Disallow use of unwanted Unicode characters.""" + from __future__ import annotations import re diff --git a/test/sanity/code-smell/no-unwanted-files.py b/test/sanity/code-smell/no-unwanted-files.py index 7e13f5301a6..69d29c88f66 100644 --- a/test/sanity/code-smell/no-unwanted-files.py +++ b/test/sanity/code-smell/no-unwanted-files.py @@ -1,4 +1,5 @@ """Prevent unwanted files from being added to the source tree.""" + from __future__ import annotations import os diff --git a/test/sanity/code-smell/obsolete-files.py b/test/sanity/code-smell/obsolete-files.py index 3c1a4a4c726..de394fcae4c 100644 --- a/test/sanity/code-smell/obsolete-files.py +++ b/test/sanity/code-smell/obsolete-files.py @@ -1,4 +1,5 @@ """Prevent files from being added to directories that are now obsolete.""" + from __future__ import annotations import os diff --git a/test/sanity/code-smell/package-data.py b/test/sanity/code-smell/package-data.py index 4719d86c112..c432977d7b1 100644 --- a/test/sanity/code-smell/package-data.py +++ b/test/sanity/code-smell/package-data.py @@ -1,4 +1,5 @@ """Verify the contents of the built sdist and wheel.""" + from __future__ import annotations import contextlib diff --git a/test/sanity/code-smell/pymarkdown.py b/test/sanity/code-smell/pymarkdown.py index 0d788c97714..044fb546a4e 100644 --- a/test/sanity/code-smell/pymarkdown.py +++ b/test/sanity/code-smell/pymarkdown.py @@ -1,4 +1,5 @@ """Sanity test for Markdown files.""" + from __future__ import annotations import pathlib