From ab7f8108748dd70ae841ab2f91281aa61a9cfc84 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Fri, 5 Apr 2019 17:31:33 -0700 Subject: [PATCH] Only use Paramiko in tests when needed. (#54826) --- .../targets/connection_paramiko_ssh/aliases | 2 ++ .../targets/connection_paramiko_ssh/runme.sh | 8 ++++- .../targets/connection_paramiko_ssh/test.sh | 1 + .../install-CentOS-6-python-2.yml | 3 ++ .../install-FreeBSD-11-python-2.yml | 3 ++ .../install-FreeBSD-11-python-3.yml | 9 ++++++ .../install-FreeBSD-12-python-2.yml | 3 ++ .../install-FreeBSD-12-python-3.yml | 3 ++ .../install-RedHat-8-python-3.yml | 4 +++ .../install-Ubuntu-16-python-2.yml | 3 ++ .../targets/setup_paramiko/install-fail.yml | 7 +++++ .../setup_paramiko/install-python-2.yml | 3 ++ .../setup_paramiko/install-python-3.yml | 3 ++ .../targets/setup_paramiko/install.yml | 16 ++++++++++ .../targets/setup_paramiko/inventory | 1 + .../setup_paramiko/library/detect_paramiko.py | 31 +++++++++++++++++++ .../targets/setup_paramiko/setup.sh | 8 +++++ .../uninstall-FreeBSD-11-python-2.yml | 4 +++ .../uninstall-FreeBSD-11-python-3.yml | 4 +++ .../uninstall-FreeBSD-12-python-2.yml | 4 +++ .../uninstall-FreeBSD-12-python-3.yml | 4 +++ .../setup_paramiko/uninstall-apt-python-2.yml | 5 +++ .../setup_paramiko/uninstall-apt-python-3.yml | 5 +++ .../targets/setup_paramiko/uninstall-dnf.yml | 4 +++ .../targets/setup_paramiko/uninstall-fail.yml | 7 +++++ .../targets/setup_paramiko/uninstall-yum.yml | 4 +++ .../uninstall-zypper-python-2.yml | 4 +++ .../uninstall-zypper-python-3.yml | 4 +++ .../targets/setup_paramiko/uninstall.yml | 18 +++++++++++ test/runner/completion/docker.txt | 16 +++++----- test/runner/requirements/integration.txt | 1 - test/runner/requirements/sanity.txt | 1 - .../requirements/windows-integration.txt | 1 - 33 files changed, 182 insertions(+), 12 deletions(-) mode change 120000 => 100755 test/integration/targets/connection_paramiko_ssh/runme.sh create mode 120000 test/integration/targets/connection_paramiko_ssh/test.sh create mode 100644 test/integration/targets/setup_paramiko/install-CentOS-6-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/install-FreeBSD-11-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/install-FreeBSD-11-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/install-FreeBSD-12-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/install-FreeBSD-12-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/install-RedHat-8-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/install-Ubuntu-16-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/install-fail.yml create mode 100644 test/integration/targets/setup_paramiko/install-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/install-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/install.yml create mode 100644 test/integration/targets/setup_paramiko/inventory create mode 100644 test/integration/targets/setup_paramiko/library/detect_paramiko.py create mode 100644 test/integration/targets/setup_paramiko/setup.sh create mode 100644 test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-apt-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-apt-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-dnf.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-fail.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-yum.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-zypper-python-2.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall-zypper-python-3.yml create mode 100644 test/integration/targets/setup_paramiko/uninstall.yml diff --git a/test/integration/targets/connection_paramiko_ssh/aliases b/test/integration/targets/connection_paramiko_ssh/aliases index 1bb4547c51..fd5b08a416 100644 --- a/test/integration/targets/connection_paramiko_ssh/aliases +++ b/test/integration/targets/connection_paramiko_ssh/aliases @@ -1,2 +1,4 @@ needs/ssh shippable/posix/group3 +needs/target/setup_paramiko +destructive # potentially installs/uninstalls OS packages via setup_paramiko diff --git a/test/integration/targets/connection_paramiko_ssh/runme.sh b/test/integration/targets/connection_paramiko_ssh/runme.sh deleted file mode 120000 index 70aa5dbdba..0000000000 --- a/test/integration/targets/connection_paramiko_ssh/runme.sh +++ /dev/null @@ -1 +0,0 @@ -../connection_posix/test.sh \ No newline at end of file diff --git a/test/integration/targets/connection_paramiko_ssh/runme.sh b/test/integration/targets/connection_paramiko_ssh/runme.sh new file mode 100755 index 0000000000..123f6e23b0 --- /dev/null +++ b/test/integration/targets/connection_paramiko_ssh/runme.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -eux + +source ../setup_paramiko/setup.sh + +./test.sh diff --git a/test/integration/targets/connection_paramiko_ssh/test.sh b/test/integration/targets/connection_paramiko_ssh/test.sh new file mode 120000 index 0000000000..70aa5dbdba --- /dev/null +++ b/test/integration/targets/connection_paramiko_ssh/test.sh @@ -0,0 +1 @@ +../connection_posix/test.sh \ No newline at end of file diff --git a/test/integration/targets/setup_paramiko/install-CentOS-6-python-2.yml b/test/integration/targets/setup_paramiko/install-CentOS-6-python-2.yml new file mode 100644 index 0000000000..0c7b9e82fd --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-CentOS-6-python-2.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 2 on CentOS 6 + yum: + name: python-paramiko diff --git a/test/integration/targets/setup_paramiko/install-FreeBSD-11-python-2.yml b/test/integration/targets/setup_paramiko/install-FreeBSD-11-python-2.yml new file mode 100644 index 0000000000..dec5b5481a --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-FreeBSD-11-python-2.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 2 on FreeBSD 11 + pkgng: + name: py27-paramiko diff --git a/test/integration/targets/setup_paramiko/install-FreeBSD-11-python-3.yml b/test/integration/targets/setup_paramiko/install-FreeBSD-11-python-3.yml new file mode 100644 index 0000000000..b8ca6c9e1d --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-FreeBSD-11-python-3.yml @@ -0,0 +1,9 @@ +- name: Downgrade to pip version 18.1 to work around a PEP 517 virtualenv bug + # pip 19.0.0 added support for PEP 517 + # versions as recent as 19.0.3 fail to install paramiko in a virtualenv due to a BackendUnavailable exception + # installation without a virtualenv succeeds + pip: + name: pip==18.1 +- name: Install Paramiko for Python 3 on FreeBSD 11 + pip: # no py36-paramiko package exists for FreeBSD 11 + name: paramiko diff --git a/test/integration/targets/setup_paramiko/install-FreeBSD-12-python-2.yml b/test/integration/targets/setup_paramiko/install-FreeBSD-12-python-2.yml new file mode 100644 index 0000000000..29e7896917 --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-FreeBSD-12-python-2.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 2 on FreeBSD 12 + pkgng: + name: py27-paramiko diff --git a/test/integration/targets/setup_paramiko/install-FreeBSD-12-python-3.yml b/test/integration/targets/setup_paramiko/install-FreeBSD-12-python-3.yml new file mode 100644 index 0000000000..2aa7b500c7 --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-FreeBSD-12-python-3.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 3 on FreeBSD 12 + pkgng: + name: py36-paramiko diff --git a/test/integration/targets/setup_paramiko/install-RedHat-8-python-3.yml b/test/integration/targets/setup_paramiko/install-RedHat-8-python-3.yml new file mode 100644 index 0000000000..567f2378f2 --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-RedHat-8-python-3.yml @@ -0,0 +1,4 @@ +- name: Install Paramiko for Python 3 on RHEL 8 + yum: + # src https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/setup_paramiko/python-paramiko-2.4.2-4.el8.src.rpm + name: https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/setup_paramiko/python3-ansible_paramiko-2.4.2-4.el8.noarch.rpm diff --git a/test/integration/targets/setup_paramiko/install-Ubuntu-16-python-2.yml b/test/integration/targets/setup_paramiko/install-Ubuntu-16-python-2.yml new file mode 100644 index 0000000000..8f76074007 --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-Ubuntu-16-python-2.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 2 on Ubuntu 16 + apt: + name: python-paramiko diff --git a/test/integration/targets/setup_paramiko/install-fail.yml b/test/integration/targets/setup_paramiko/install-fail.yml new file mode 100644 index 0000000000..b4ba46400f --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-fail.yml @@ -0,0 +1,7 @@ +- name: Install Paramiko + fail: + msg: "Install of Paramiko on distribution '{{ ansible_distribution }}' with major version '{{ ansible_distribution_major_version }}' + with package manager '{{ ansible_pkg_mgr }}' on Python {{ ansible_python.version.major }} has not been implemented. + Use native OS packages if available, otherwise use pip. + Be sure to uninstall automatically installed dependencies when possible. + Do not implement a generic fallback to pip, as that would allow distributions not yet configured to go undetected." diff --git a/test/integration/targets/setup_paramiko/install-python-2.yml b/test/integration/targets/setup_paramiko/install-python-2.yml new file mode 100644 index 0000000000..be337a1693 --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-python-2.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 2 + package: + name: python2-paramiko diff --git a/test/integration/targets/setup_paramiko/install-python-3.yml b/test/integration/targets/setup_paramiko/install-python-3.yml new file mode 100644 index 0000000000..ac2a1a2b6f --- /dev/null +++ b/test/integration/targets/setup_paramiko/install-python-3.yml @@ -0,0 +1,3 @@ +- name: Install Paramiko for Python 3 + package: + name: python3-paramiko diff --git a/test/integration/targets/setup_paramiko/install.yml b/test/integration/targets/setup_paramiko/install.yml new file mode 100644 index 0000000000..5e66110a75 --- /dev/null +++ b/test/integration/targets/setup_paramiko/install.yml @@ -0,0 +1,16 @@ +- hosts: localhost + tasks: + - name: Detect Paramiko + detect_paramiko: + register: detect_paramiko + - name: Persist Result + copy: + content: "{{ detect_paramiko }}" + dest: "{{ lookup('env', 'OUTPUT_DIR') }}/detect-paramiko.json" + - name: Install Paramiko + when: not detect_paramiko.found + include_tasks: "{{ item }}" + with_first_found: + - "install-{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-python-{{ ansible_python.version.major }}.yml" + - "install-python-{{ ansible_python.version.major }}.yml" + - "install-fail.yml" diff --git a/test/integration/targets/setup_paramiko/inventory b/test/integration/targets/setup_paramiko/inventory new file mode 100644 index 0000000000..8618c72565 --- /dev/null +++ b/test/integration/targets/setup_paramiko/inventory @@ -0,0 +1 @@ +localhost ansible_connection=local ansible_python_interpreter="{{ ansible_playbook_python }}" diff --git a/test/integration/targets/setup_paramiko/library/detect_paramiko.py b/test/integration/targets/setup_paramiko/library/detect_paramiko.py new file mode 100644 index 0000000000..e3a815827c --- /dev/null +++ b/test/integration/targets/setup_paramiko/library/detect_paramiko.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +"""Ansible module to detect the presence of both the normal and Ansible-specific versions of Paramiko.""" + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + +from ansible.module_utils.basic import AnsibleModule + +try: + import paramiko +except ImportError: + paramiko = None + +try: + import ansible_paramiko +except ImportError: + ansible_paramiko = None + + +def main(): + module = AnsibleModule(argument_spec={}) + module.exit_json(**dict( + found=bool(paramiko or ansible_paramiko), + paramiko=bool(paramiko), + ansible_paramiko=bool(ansible_paramiko), + )) + + +if __name__ == '__main__': + main() diff --git a/test/integration/targets/setup_paramiko/setup.sh b/test/integration/targets/setup_paramiko/setup.sh new file mode 100644 index 0000000000..64b935cdd8 --- /dev/null +++ b/test/integration/targets/setup_paramiko/setup.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# Usage: source ../setup_paramiko/setup.sh + +set -eux + +source virtualenv.sh # for pip installs, if needed, otherwise unused +ansible-playbook ../setup_paramiko/install.yml -i ../setup_paramiko/inventory "$@" +trap 'ansible-playbook ../setup_paramiko/uninstall.yml -i ../setup_paramiko/inventory "$@"' EXIT diff --git a/test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-2.yml b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-2.yml new file mode 100644 index 0000000000..d27f831c2e --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-2.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko for Python 2 on FreeBSD 11 + pkgng: + name: py27-paramiko + state: absent diff --git a/test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-3.yml b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-3.yml new file mode 100644 index 0000000000..33f292e8da --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-11-python-3.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko for Python 3 on FreeBSD 11 + pip: # no py36-paramiko package exists for FreeBSD 11 + name: paramiko + state: absent diff --git a/test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-2.yml b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-2.yml new file mode 100644 index 0000000000..7935248774 --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-2.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko for Python 2 on FreeBSD 12 + pkgng: + name: py27-paramiko + state: absent diff --git a/test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-3.yml b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-3.yml new file mode 100644 index 0000000000..46d26ca344 --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-FreeBSD-12-python-3.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko for Python 3 on FreeBSD 12 + pkgng: + name: py36-paramiko + state: absent diff --git a/test/integration/targets/setup_paramiko/uninstall-apt-python-2.yml b/test/integration/targets/setup_paramiko/uninstall-apt-python-2.yml new file mode 100644 index 0000000000..507d94cc3b --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-apt-python-2.yml @@ -0,0 +1,5 @@ +- name: Uninstall Paramiko for Python 2 using apt + apt: + name: python-paramiko + state: absent + autoremove: yes diff --git a/test/integration/targets/setup_paramiko/uninstall-apt-python-3.yml b/test/integration/targets/setup_paramiko/uninstall-apt-python-3.yml new file mode 100644 index 0000000000..d51fc92e50 --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-apt-python-3.yml @@ -0,0 +1,5 @@ +- name: Uninstall Paramiko for Python 3 using apt + apt: + name: python3-paramiko + state: absent + autoremove: yes diff --git a/test/integration/targets/setup_paramiko/uninstall-dnf.yml b/test/integration/targets/setup_paramiko/uninstall-dnf.yml new file mode 100644 index 0000000000..ff0d39cede --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-dnf.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko using dnf history undo + command: dnf history undo last --assumeyes + args: + warn: no diff --git a/test/integration/targets/setup_paramiko/uninstall-fail.yml b/test/integration/targets/setup_paramiko/uninstall-fail.yml new file mode 100644 index 0000000000..bc5e12f12f --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-fail.yml @@ -0,0 +1,7 @@ +- name: Uninstall Paramiko + fail: + msg: "Uninstall of Paramiko on distribution '{{ ansible_distribution }}' with major version '{{ ansible_distribution_major_version }}' + with package manager '{{ ansible_pkg_mgr }}' on Python {{ ansible_python.version.major }} has not been implemented. + Use native OS packages if available, otherwise use pip. + Be sure to uninstall automatically installed dependencies when possible. + Do not implement a generic fallback to pip, as that would allow distributions not yet configured to go undetected." diff --git a/test/integration/targets/setup_paramiko/uninstall-yum.yml b/test/integration/targets/setup_paramiko/uninstall-yum.yml new file mode 100644 index 0000000000..f293d22993 --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-yum.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko using yum history undo + command: yum history undo last --assumeyes + args: + warn: no diff --git a/test/integration/targets/setup_paramiko/uninstall-zypper-python-2.yml b/test/integration/targets/setup_paramiko/uninstall-zypper-python-2.yml new file mode 100644 index 0000000000..6bdb330778 --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-zypper-python-2.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko for Python 2 using zypper + command: zypper --quiet --non-interactive remove --clean-deps python2-paramiko + args: + warn: no diff --git a/test/integration/targets/setup_paramiko/uninstall-zypper-python-3.yml b/test/integration/targets/setup_paramiko/uninstall-zypper-python-3.yml new file mode 100644 index 0000000000..cb0db9413c --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall-zypper-python-3.yml @@ -0,0 +1,4 @@ +- name: Uninstall Paramiko for Python 3 using zypper + command: zypper --quiet --non-interactive remove --clean-deps python3-paramiko + args: + warn: no diff --git a/test/integration/targets/setup_paramiko/uninstall.yml b/test/integration/targets/setup_paramiko/uninstall.yml new file mode 100644 index 0000000000..95241eb4cb --- /dev/null +++ b/test/integration/targets/setup_paramiko/uninstall.yml @@ -0,0 +1,18 @@ +- hosts: localhost + vars: + detect_paramiko: '{{ lookup("file", lookup("env", "OUTPUT_DIR") + "/detect-paramiko.json") | from_json }}' + tasks: + - name: Uninstall Paramiko and Verify Results + when: not detect_paramiko.found + block: + - name: Uninstall Paramiko + include_tasks: "{{ item }}" + with_first_found: + - "uninstall-{{ ansible_distribution }}-{{ ansible_distribution_major_version }}-python-{{ ansible_python.version.major }}.yml" + - "uninstall-{{ ansible_pkg_mgr }}-python-{{ ansible_python.version.major }}.yml" + - "uninstall-{{ ansible_pkg_mgr }}.yml" + - "uninstall-fail.yml" + - name: Verify Paramiko was uninstalled + detect_paramiko: + register: detect_paramiko + failed_when: detect_paramiko.found diff --git a/test/runner/completion/docker.txt b/test/runner/completion/docker.txt index 3398b6021e..bdba569104 100644 --- a/test/runner/completion/docker.txt +++ b/test/runner/completion/docker.txt @@ -1,9 +1,9 @@ default name=quay.io/ansible/default-test-container:1.6.0 python=3.6,2.6,2.7,3.5,3.7,3.8 python3.8=/usr/local/bin/python3.8 seccomp=unconfined -centos6 name=quay.io/ansible/centos6-test-container:1.4.0 python=2.6 seccomp=unconfined -centos7 name=quay.io/ansible/centos7-test-container:1.4.0 python=2.7 seccomp=unconfined -fedora28 name=quay.io/ansible/fedora28-test-container:1.5.0 python=2.7 -fedora29 name=quay.io/ansible/fedora29-test-container:1.5.0 python=3.7 -opensuse15py2 name=quay.io/ansible/opensuse15py2-test-container:1.7.0 python=2.7 -opensuse15 name=quay.io/ansible/opensuse15-test-container:1.7.0 python=3.6 -ubuntu1604 name=quay.io/ansible/ubuntu1604-test-container:1.4.0 python=2.7 seccomp=unconfined -ubuntu1804 name=quay.io/ansible/ubuntu1804-test-container:1.6.0 python=3.6 seccomp=unconfined +centos6 name=quay.io/ansible/centos6-test-container:1.8.0 python=2.6 seccomp=unconfined +centos7 name=quay.io/ansible/centos7-test-container:1.8.0 python=2.7 seccomp=unconfined +fedora28 name=quay.io/ansible/fedora28-test-container:1.8.0 python=2.7 +fedora29 name=quay.io/ansible/fedora29-test-container:1.8.0 python=3.7 +opensuse15py2 name=quay.io/ansible/opensuse15py2-test-container:1.8.0 python=2.7 +opensuse15 name=quay.io/ansible/opensuse15-test-container:1.8.0 python=3.6 +ubuntu1604 name=quay.io/ansible/ubuntu1604-test-container:1.8.0 python=2.7 seccomp=unconfined +ubuntu1804 name=quay.io/ansible/ubuntu1804-test-container:1.8.0 python=3.6 seccomp=unconfined diff --git a/test/runner/requirements/integration.txt b/test/runner/requirements/integration.txt index f827e9fce8..469d21f998 100644 --- a/test/runner/requirements/integration.txt +++ b/test/runner/requirements/integration.txt @@ -2,5 +2,4 @@ cryptography jinja2 junit-xml ordereddict ; python_version < '2.7' -paramiko pyyaml diff --git a/test/runner/requirements/sanity.txt b/test/runner/requirements/sanity.txt index d155670c14..1935a34f02 100644 --- a/test/runner/requirements/sanity.txt +++ b/test/runner/requirements/sanity.txt @@ -1,7 +1,6 @@ cryptography jinja2 mock -paramiko pycodestyle pylint ; python_version >= '3.5' # pylint 2.0.0 and later require python 3+ pytest diff --git a/test/runner/requirements/windows-integration.txt b/test/runner/requirements/windows-integration.txt index 1ba253ae31..089add5e3d 100644 --- a/test/runner/requirements/windows-integration.txt +++ b/test/runner/requirements/windows-integration.txt @@ -1,7 +1,6 @@ cryptography jinja2 junit-xml -paramiko ntlm-auth requests-ntlm requests-credssp