From 4f6017dc1629361cce6fa3e2e035a4710550db9e Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Tue, 23 Jan 2018 10:08:16 -0800 Subject: [PATCH] Move requirements into tests. (#35197) --- .../targets/command_shell/tasks/main.yml | 12 +++--------- test/integration/targets/copy/tasks/tests.yml | 6 +----- test/integration/targets/gem/tasks/main.yml | 16 ++++++++++++++++ test/integration/targets/gem/vars/FreeBSD.yml | 3 +++ test/integration/targets/gem/vars/RedHat.yml | 2 ++ test/integration/targets/gem/vars/default.yml | 1 + test/integration/targets/git/tasks/setup.yml | 5 +++++ test/integration/targets/hg/tasks/main.yml | 5 +++++ test/integration/targets/pull/runme.sh | 2 ++ test/integration/targets/pull/setup.yml | 6 ++++++ .../targets/subversion/tasks/main.yml | 5 +++++ .../targets/synchronize/tasks/main.yml | 5 +++++ test/runner/setup/remote.sh | 12 ------------ 13 files changed, 54 insertions(+), 26 deletions(-) create mode 100644 test/integration/targets/gem/vars/FreeBSD.yml create mode 100644 test/integration/targets/gem/vars/RedHat.yml create mode 100644 test/integration/targets/gem/vars/default.yml create mode 100644 test/integration/targets/pull/setup.yml diff --git a/test/integration/targets/command_shell/tasks/main.yml b/test/integration/targets/command_shell/tasks/main.yml index b8d5438187..858f07d1a8 100644 --- a/test/integration/targets/command_shell/tasks/main.yml +++ b/test/integration/targets/command_shell/tasks/main.yml @@ -100,10 +100,6 @@ shell: which bash register: bash -- name: locate sha1sum/shasum - shell: which sha1sum || which shasum - register: sha1sum - ## ## command ## @@ -196,7 +192,7 @@ - "command_result5.stdout == 'foobar'" - name: send to stdin literal multiline block - command: "{{ sha1sum.stdout }}" + command: "{{ ansible_python_interpreter }} -c 'import hashlib, sys; print(hashlib.sha1((sys.stdin.buffer if hasattr(sys.stdin, \"buffer\") else sys.stdin).read()).hexdigest())'" args: stdin: |- this is the first line @@ -209,7 +205,7 @@ - name: assert the multiline input was passed correctly assert: that: - - "command_result6.stdout == '9cd0697c6a9ff6689f0afb9136fa62e0b3fee903 -'" + - "command_result6.stdout == '9cd0697c6a9ff6689f0afb9136fa62e0b3fee903'" ## ## shell @@ -278,9 +274,7 @@ "multiline echo" \ "with a new line in quotes" \ - | {{ sha1sum.stdout }} \ - | tr -s ' ' \ - | cut -f1 -d ' ' + | {{ ansible_python_interpreter }} -c 'import hashlib, sys; print(hashlib.sha1((sys.stdin.buffer if hasattr(sys.stdin, "buffer") else sys.stdin).read()).hexdigest())' echo "this is a second line" register: shell_result5 diff --git a/test/integration/targets/copy/tasks/tests.yml b/test/integration/targets/copy/tasks/tests.yml index 2784febe80..43a763ea14 100644 --- a/test/integration/targets/copy/tasks/tests.yml +++ b/test/integration/targets/copy/tasks/tests.yml @@ -9,10 +9,6 @@ set_fact: remote_file: "{{ remote_dir }}/foo.txt" -- name: Locate sha1sum/shasum - shell: which sha1sum || which shasum - register: sha1sum - - name: Initiate a basic copy, and also test the mode copy: src: foo.txt @@ -1127,7 +1123,7 @@ - stat_link_result.stat.islnk - name: Get the checksum of the link target - shell: "{{ sha1sum.stdout }} {{remote_dir}}/follow_test | cut -f1 -sd ' '" + shell: "{{ ansible_python_interpreter }} -c 'import hashlib; print(hashlib.sha1(open(\"{{remote_dir | expanduser}}/follow_test\", \"rb\").read()).hexdigest())'" register: target_file_result - name: Assert that the link target was updated diff --git a/test/integration/targets/gem/tasks/main.yml b/test/integration/targets/gem/tasks/main.yml index adf76d7c33..77b93e663d 100644 --- a/test/integration/targets/gem/tasks/main.yml +++ b/test/integration/targets/gem/tasks/main.yml @@ -16,6 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . +- include_vars: '{{ item }}' + with_first_found: + - files: + - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml' + - '{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml' + - '{{ ansible_os_family }}.yml' + - 'default.yml' + paths: '../vars' + +- name: install dependencies for test + package: name={{ package_item }} state=present + with_items: "{{ test_packages }}" + loop_control: + loop_var: package_item + when: ansible_distribution != "MacOSX" + - name: remove a gem gem: name=gist state=absent diff --git a/test/integration/targets/gem/vars/FreeBSD.yml b/test/integration/targets/gem/vars/FreeBSD.yml new file mode 100644 index 0000000000..84e0b483d5 --- /dev/null +++ b/test/integration/targets/gem/vars/FreeBSD.yml @@ -0,0 +1,3 @@ +test_packages: + - "devel/ruby-gems" + - "ruby" diff --git a/test/integration/targets/gem/vars/RedHat.yml b/test/integration/targets/gem/vars/RedHat.yml new file mode 100644 index 0000000000..c044d109b6 --- /dev/null +++ b/test/integration/targets/gem/vars/RedHat.yml @@ -0,0 +1,2 @@ +test_packages: + - "rubygems" diff --git a/test/integration/targets/gem/vars/default.yml b/test/integration/targets/gem/vars/default.yml new file mode 100644 index 0000000000..7d6e61ac46 --- /dev/null +++ b/test/integration/targets/gem/vars/default.yml @@ -0,0 +1 @@ +test_packages: [] diff --git a/test/integration/targets/git/tasks/setup.yml b/test/integration/targets/git/tasks/setup.yml index 588d99c99c..8fdb2a401c 100644 --- a/test/integration/targets/git/tasks/setup.yml +++ b/test/integration/targets/git/tasks/setup.yml @@ -8,6 +8,11 @@ path: "{{ output_dir }}" state: directory +- name: SETUP | install git + package: + name: git + when: ansible_distribution != "MacOSX" + - name: SETUP | verify that git is installed so this test can continue shell: which git diff --git a/test/integration/targets/hg/tasks/main.yml b/test/integration/targets/hg/tasks/main.yml index f9c1b1494b..14719a6ce6 100644 --- a/test/integration/targets/hg/tasks/main.yml +++ b/test/integration/targets/hg/tasks/main.yml @@ -25,6 +25,11 @@ - name: clean out the output_dir shell: rm -rf {{ output_dir }}/* +- name: install mercurial + package: + name: mercurial + when: ansible_distribution != "MacOSX" + - name: verify that mercurial is installed so this test can continue shell: which hg diff --git a/test/integration/targets/pull/runme.sh b/test/integration/targets/pull/runme.sh index 7334df93ca..0ad9e01ba9 100755 --- a/test/integration/targets/pull/runme.sh +++ b/test/integration/targets/pull/runme.sh @@ -11,6 +11,8 @@ repo_dir="${temp_dir}/repo" pull_dir="${temp_dir}/pull" temp_log="${temp_dir}/pull.log" +ansible-playbook setup.yml + cp -av "pull-integration-test" "${repo_dir}" cd "${repo_dir}" ( diff --git a/test/integration/targets/pull/setup.yml b/test/integration/targets/pull/setup.yml new file mode 100644 index 0000000000..581902474d --- /dev/null +++ b/test/integration/targets/pull/setup.yml @@ -0,0 +1,6 @@ +- hosts: localhost + tasks: + - name: install git + package: + name: git + when: ansible_distribution != "MacOSX" diff --git a/test/integration/targets/subversion/tasks/main.yml b/test/integration/targets/subversion/tasks/main.yml index 3f89c236eb..5631adbd89 100644 --- a/test/integration/targets/subversion/tasks/main.yml +++ b/test/integration/targets/subversion/tasks/main.yml @@ -25,6 +25,11 @@ - name: clean out the output_dir shell: rm -rf {{ output_dir }}/* +- name: install subversion + package: + name: subversion + when: ansible_distribution != "MacOSX" + - name: verify that subversion is installed so this test can continue shell: which svn diff --git a/test/integration/targets/synchronize/tasks/main.yml b/test/integration/targets/synchronize/tasks/main.yml index 5913762183..80e052a6a3 100644 --- a/test/integration/targets/synchronize/tasks/main.yml +++ b/test/integration/targets/synchronize/tasks/main.yml @@ -16,6 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . +- name: install rsync + package: + name: rsync + when: ansible_distribution != "MacOSX" + - name: cleanup old files shell: rm -rf {{output_dir}}/* diff --git a/test/runner/setup/remote.sh b/test/runner/setup/remote.sh index 2b83056c81..d8d2a7707e 100644 --- a/test/runner/setup/remote.sh +++ b/test/runner/setup/remote.sh @@ -14,16 +14,9 @@ if [ "${platform}" = "freebsd" ]; then pkg install -y \ bash \ curl \ - devel/ruby-gems \ - git \ gtar \ - mercurial \ python \ - rsync \ - ruby \ - subversion \ sudo \ - zip \ && break echo "Failed to install packages. Sleeping before trying again..." sleep 10 @@ -34,15 +27,10 @@ elif [ "${platform}" = "rhel" ]; then while true; do yum install -y \ gcc \ - git \ - mercurial \ python-devel \ python-jinja2 \ python-virtualenv \ python2-cryptography \ - rubygems \ - subversion \ - unzip \ && break echo "Failed to install packages. Sleeping before trying again..." sleep 10