From 003a9e890db3a2660fe1a2d95f00dec356b2f3e7 Mon Sep 17 00:00:00 2001 From: Sam Doooran Date: Mon, 4 Jan 2021 15:53:56 -0500 Subject: [PATCH] Constrain pexpect and ptyprocess (#73109) The recent update of ptyprocess to 0.7.0 is incompatible with Python 2.6 and is causing test failures. * Add setup_pexpect role to expect test --- test/integration/targets/expect/aliases | 1 + test/integration/targets/expect/tasks/main.yml | 5 ++--- .../integration/targets/setup_pexpect/files/constraints.txt | 2 ++ test/integration/targets/setup_pexpect/meta/main.yml | 2 ++ test/integration/targets/setup_pexpect/tasks/main.yml | 6 ++++++ 5 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 test/integration/targets/setup_pexpect/files/constraints.txt create mode 100644 test/integration/targets/setup_pexpect/meta/main.yml diff --git a/test/integration/targets/expect/aliases b/test/integration/targets/expect/aliases index ca7c9128514..7211b8d09ac 100644 --- a/test/integration/targets/expect/aliases +++ b/test/integration/targets/expect/aliases @@ -1,2 +1,3 @@ shippable/posix/group2 destructive +needs/target/setup_pexpect diff --git a/test/integration/targets/expect/tasks/main.yml b/test/integration/targets/expect/tasks/main.yml index 7feaec4d81d..0c408d282db 100644 --- a/test/integration/targets/expect/tasks/main.yml +++ b/test/integration/targets/expect/tasks/main.yml @@ -16,9 +16,8 @@ # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . - name: Install test requirements - pip: - name: pexpect - state: present + import_role: + name: setup_pexpect - name: record the test_command file set_fact: test_command_file={{output_dir | expanduser}}/test_command.py diff --git a/test/integration/targets/setup_pexpect/files/constraints.txt b/test/integration/targets/setup_pexpect/files/constraints.txt new file mode 100644 index 00000000000..c78ecdad66c --- /dev/null +++ b/test/integration/targets/setup_pexpect/files/constraints.txt @@ -0,0 +1,2 @@ +pexpect == 4.8.0 +ptyprocess < 0.7.0 ; python_version < '2.7' # ptyprocess >= 0.7.0 not compatible with Python 2.6 diff --git a/test/integration/targets/setup_pexpect/meta/main.yml b/test/integration/targets/setup_pexpect/meta/main.yml new file mode 100644 index 00000000000..1810d4bec98 --- /dev/null +++ b/test/integration/targets/setup_pexpect/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - setup_remote_tmp_dir diff --git a/test/integration/targets/setup_pexpect/tasks/main.yml b/test/integration/targets/setup_pexpect/tasks/main.yml index ef57fe6fd21..690fe44152c 100644 --- a/test/integration/targets/setup_pexpect/tasks/main.yml +++ b/test/integration/targets/setup_pexpect/tasks/main.yml @@ -1,4 +1,10 @@ +- name: Copy constraints file + copy: + src: constraints.txt + dest: "{{ remote_tmp_dir }}/pexpect-constraints.txt" + - name: Install pexpect pip: name: pexpect + extra_args: '--constraint "{{ remote_tmp_dir }}/pexpect-constraints.txt"' state: present