From 6c2be04b6fe19b8cd3151ede89d6e10ef6acb031 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Wed, 10 Jun 2020 14:40:17 -0700 Subject: [PATCH] Intercept code-smell tests using subprocess. Some code-smell sanity tests for ansible-base use subprocess to invoke ansible commands. Intercept these commands to make sure the correct script and python version are used. --- test/lib/ansible_test/_internal/sanity/__init__.py | 9 ++++++++- test/sanity/code-smell/changelog.json | 1 + test/sanity/code-smell/docs-build.json | 1 + test/sanity/code-smell/package-data.json | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/test/lib/ansible_test/_internal/sanity/__init__.py b/test/lib/ansible_test/_internal/sanity/__init__.py index 0ea080bf23c..1672d11b856 100644 --- a/test/lib/ansible_test/_internal/sanity/__init__.py +++ b/test/lib/ansible_test/_internal/sanity/__init__.py @@ -34,6 +34,7 @@ from ..util import ( from ..util_common import ( run_command, + intercept_command, handle_layout_messages, ) @@ -690,6 +691,7 @@ class SanityCodeSmellTest(SanityTest): self.files = self.config.get('files') # type: t.List[str] self.text = self.config.get('text') # type: t.Optional[bool] self.ignore_self = self.config.get('ignore_self') # type: bool + self.intercept = self.config.get('intercept') # type: bool self.__all_targets = self.config.get('all_targets') # type: bool self.__no_targets = self.config.get('no_targets') # type: bool @@ -702,6 +704,7 @@ class SanityCodeSmellTest(SanityTest): self.files = [] self.text = None # type: t.Optional[bool] self.ignore_self = False + self.intercept = False self.__all_targets = False self.__no_targets = True @@ -805,7 +808,11 @@ class SanityCodeSmellTest(SanityTest): display.info(data, verbosity=4) try: - stdout, stderr = run_command(args, cmd, data=data, env=env, capture=True) + if self.intercept: + stdout, stderr = intercept_command(args, cmd, target_name='sanity.%s' % self.name, data=data, env=env, capture=True, disable_coverage=True) + else: + stdout, stderr = run_command(args, cmd, data=data, env=env, capture=True) + status = 0 except SubprocessError as ex: stdout = ex.stdout diff --git a/test/sanity/code-smell/changelog.json b/test/sanity/code-smell/changelog.json index afad9a05dcb..46028fb0469 100644 --- a/test/sanity/code-smell/changelog.json +++ b/test/sanity/code-smell/changelog.json @@ -1,4 +1,5 @@ { + "intercept": true, "prefixes": [ "changelogs/fragments/" ], diff --git a/test/sanity/code-smell/docs-build.json b/test/sanity/code-smell/docs-build.json index a43fa923b2b..0218bfc5cfd 100644 --- a/test/sanity/code-smell/docs-build.json +++ b/test/sanity/code-smell/docs-build.json @@ -1,4 +1,5 @@ { + "intercept": true, "disabled": true, "no_targets": true, "output": "path-line-column-message" diff --git a/test/sanity/code-smell/package-data.json b/test/sanity/code-smell/package-data.json index 0aa70a3c9b7..2b8a5326a82 100644 --- a/test/sanity/code-smell/package-data.json +++ b/test/sanity/code-smell/package-data.json @@ -1,4 +1,5 @@ { + "intercept": true, "disabled": true, "all_targets": true, "output": "path-message"