summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2023-02-20 17:54:20 -0800
committerGitHub <noreply@github.com>2023-02-20 17:54:20 -0800
commitfe2732b91e538e0278104d71417ddfd0aae01eed (patch)
treedf37a60b934e0d51e7043f39e4006a7d3472bdc7 /test/integration
parent2f8f7fba4c6b17c25bf20913bfd332ea06b8e8ae (diff)
downloadansible-fe2732b91e538e0278104d71417ddfd0aae01eed.tar.gz
ansible-test - Support pylint assertion rewriting (#80020)
Add support for `pylint` assertion rewriting when running unit tests on Python 3.5 and later.
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/targets/ansible-test-units-assertions/aliases4
-rw-r--r--test/integration/targets/ansible-test-units-assertions/ansible_collections/ns/col/tests/unit/plugins/modules/test_assertion.py6
-rwxr-xr-xtest/integration/targets/ansible-test-units-assertions/runme.sh22
-rwxr-xr-xtest/integration/targets/ansible-test/venv-pythons.py10
4 files changed, 42 insertions, 0 deletions
diff --git a/test/integration/targets/ansible-test-units-assertions/aliases b/test/integration/targets/ansible-test-units-assertions/aliases
new file mode 100644
index 0000000000..f25bc6778e
--- /dev/null
+++ b/test/integration/targets/ansible-test-units-assertions/aliases
@@ -0,0 +1,4 @@
+shippable/generic/group1 # runs in the default test container
+context/controller
+needs/target/collection
+needs/target/ansible-test
diff --git a/test/integration/targets/ansible-test-units-assertions/ansible_collections/ns/col/tests/unit/plugins/modules/test_assertion.py b/test/integration/targets/ansible-test-units-assertions/ansible_collections/ns/col/tests/unit/plugins/modules/test_assertion.py
new file mode 100644
index 0000000000..e172200410
--- /dev/null
+++ b/test/integration/targets/ansible-test-units-assertions/ansible_collections/ns/col/tests/unit/plugins/modules/test_assertion.py
@@ -0,0 +1,6 @@
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+def test_assertion():
+ assert dict(yes=True) == dict(no=False)
diff --git a/test/integration/targets/ansible-test-units-assertions/runme.sh b/test/integration/targets/ansible-test-units-assertions/runme.sh
new file mode 100755
index 0000000000..671fc12991
--- /dev/null
+++ b/test/integration/targets/ansible-test-units-assertions/runme.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+source ../collection/setup.sh
+
+set -x
+
+options=$("${TEST_DIR}"/../ansible-test/venv-pythons.py --only-versions)
+IFS=', ' read -r -a pythons <<< "${options}"
+
+for python in "${pythons[@]}"; do
+ if ansible-test units --color --truncate 0 --python "${python}" --requirements "${@}" 2>&1 | tee pylint.log; then
+ echo "Test did not fail as expected."
+ exit 1
+ fi
+
+ if [ "${python}" = "2.7" ]; then
+ grep "^E *AssertionError$" pylint.log
+ else
+
+ grep "^E *AssertionError: assert {'yes': True} == {'no': False}$" pylint.log
+ fi
+done
diff --git a/test/integration/targets/ansible-test/venv-pythons.py b/test/integration/targets/ansible-test/venv-pythons.py
index b380f147fc..97998bcd7c 100755
--- a/test/integration/targets/ansible-test/venv-pythons.py
+++ b/test/integration/targets/ansible-test/venv-pythons.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python
"""Return target Python options for use with ansible-test."""
+import argparse
import os
import shutil
import subprocess
@@ -10,6 +11,11 @@ from ansible import release
def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--only-versions', action='store_true')
+
+ options = parser.parse_args()
+
ansible_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(release.__file__))))
source_root = os.path.join(ansible_root, 'test', 'lib')
@@ -33,6 +39,10 @@ def main():
print(f'{executable} - {"fail" if process.returncode else "pass"}', file=sys.stderr)
if not process.returncode:
+ if options.only_versions:
+ args.append(python_version)
+ continue
+
args.extend(['--target-python', f'venv/{python_version}'])
print(' '.join(args))