From 3aa123c5b2b145e57776e297ac62e133b3f6993e Mon Sep 17 00:00:00 2001 From: Thomas Wiest Date: Tue, 7 Feb 2017 16:39:51 -0500 Subject: Fixed ansible module unit and integration tests and added runners. --- roles/lib_utils/src/test/generate-and-run-tests.sh | 42 ++++ roles/lib_utils/src/test/integration/yedit.yml | 222 +++++++++++++++++++++ .../lib_utils/src/test/integration/yedit_test.yml | 221 -------------------- 3 files changed, 264 insertions(+), 221 deletions(-) create mode 100755 roles/lib_utils/src/test/generate-and-run-tests.sh create mode 100755 roles/lib_utils/src/test/integration/yedit.yml delete mode 100755 roles/lib_utils/src/test/integration/yedit_test.yml (limited to 'roles/lib_utils/src') diff --git a/roles/lib_utils/src/test/generate-and-run-tests.sh b/roles/lib_utils/src/test/generate-and-run-tests.sh new file mode 100755 index 000000000..4b534c8f2 --- /dev/null +++ b/roles/lib_utils/src/test/generate-and-run-tests.sh @@ -0,0 +1,42 @@ +#!/bin/bash -e + + +# Put us in the same dir as the script. +cd $(dirname $0) + +echo +echo "Running lib_openshift generate" +echo "------------------------------" +../generate.py + + +echo +echo "Running lib_utils Unit Tests" +echo "----------------------------" +cd unit + +for test in *.py; do + echo + echo "--------------------------------------------------------------------------------" + echo + echo "Running $test..." + ./$test +done + + +echo +echo "Running lib_utils Integration Tests" +echo "-----------------------------------" +cd ../integration + +for test in *.yml; do + echo + echo "--------------------------------------------------------------------------------" + echo + echo "Running $test..." + ./$test -vvv +done + +# Clean up this damn file +# TODO: figure out why this is being written and clean it up. +rm kube-manager-test.yaml diff --git a/roles/lib_utils/src/test/integration/yedit.yml b/roles/lib_utils/src/test/integration/yedit.yml new file mode 100755 index 000000000..e3dfd490b --- /dev/null +++ b/roles/lib_utils/src/test/integration/yedit.yml @@ -0,0 +1,222 @@ +#!/usr/bin/ansible-playbook --module-path=../../../library/ +# +# Yedit test so that we can quickly determine if features are working +# Ensure that the kube-manager.yaml file exists +# +# ./yedit_test.yml +# +--- +- hosts: localhost + gather_facts: no + vars: + test_file: kube-manager-test.yaml + test: test + strategy: debug + + post_tasks: + - name: copy the kube-manager.yaml file so that we have a pristine copy each time + copy: + src: kube-manager.yaml + dest: "./{{ test_file }}" + changed_when: False + + ####### add key to top level ##### + - name: add a key at the top level + yedit: + src: "{{ test_file }}" + key: yedittest + value: yedittest + + - name: retrieve the inserted key + yedit: + src: "{{ test_file }}" + state: list + key: yedittest + register: results + + - name: Assert that key is at top level + assert: + that: results.result == 'yedittest' + msg: 'Test: add a key to top level failed. yedittest != [{{ results.result }}]' + ###### end add key to top level ##### + + ###### modify multilevel key, value ##### + - name: modify multilevel key, value + yedit: + src: "{{ test_file }}" + key: metadata-namespace + value: openshift-is-awesome + separator: '-' + + - name: retrieve the inserted key + yedit: + src: "{{ test_file }}" + state: list + key: metadata-namespace + separator: '-' + register: results + + - name: Assert that key is as expected + assert: + that: results.result == 'openshift-is-awesome' + msg: 'Test: multilevel key, value modification: openshift-is-awesome != [{{ results.result }}]' + ###### end modify multilevel key, value ##### + + ###### test a string boolean ##### + - name: test a string boolean + yedit: + src: "{{ test_file }}" + key: spec.containers[0].volumeMounts[1].readOnly + value: 'true' + value_type: str + + - name: retrieve the inserted key + yedit: + src: "{{ test_file }}" + state: list + key: spec.containers[0].volumeMounts[1].readOnly + register: results + + - name: Assert that key is a string + assert: + that: results.result == "true" + msg: "Test: boolean str: 'true' != [{{ results.result }}]" + + - name: Assert that key is not bool + assert: + that: results.result != true + msg: "Test: boolean str: true != [{{ results.result }}]" + ###### end test boolean string ##### + + ###### test array append ##### + - name: test array append + yedit: + src: "{{ test_file }}" + key: spec.containers[0].command + value: --my-new-parameter=openshift + append: True + + - name: retrieve the array + yedit: + src: "{{ test_file }}" + state: list + key: spec.containers[0].command + register: results + + - name: Assert that the last element in array is our value + assert: + that: results.result[-1] == "--my-new-parameter=openshift" + msg: "Test: '--my-new-parameter=openshift' != [{{ results.result[-1] }}]" + ###### end test array append ##### + + ###### test non-existing array append ##### + - name: test array append to non-existing key + yedit: + src: "{{ test_file }}" + key: nonexistingkey + value: --my-new-parameter=openshift + append: True + + - name: retrieve the array + yedit: + src: "{{ test_file }}" + state: list + key: nonexistingkey + register: results + + - name: Assert that the last element in array is our value + assert: + that: results.result[-1] == "--my-new-parameter=openshift" + msg: "Test: '--my-new-parameter=openshift' != [{{ results.result[-1] }}]" + ###### end test non-existing array append ##### + + ###### test array update modify ##### + - name: test array update modify + yedit: + src: "{{ test_file }}" + key: spec.containers[0].command + value: --root-ca-file=/etc/k8s/ssl/my.pem + curr_value: --root-ca-file=/etc/kubernetes/ssl/ca.pem + curr_value_format: str + update: True + + - name: retrieve the array + yedit: + src: "{{ test_file }}" + state: list + key: spec.containers[0].command + register: results + + - name: Assert that the element in array is our value + assert: + that: results.result[5] == "--root-ca-file=/etc/k8s/ssl/my.pem" + msg: "Test: '--root-ca-file=/etc/k8s/ssl/my.pem' != [{{ results.result[5] }}]" + ###### end test array update modify##### + + ###### test dict create ##### + - name: test dict create + yedit: + src: "{{ test_file }}" + key: a.b.c + value: d + + - name: retrieve the key + yedit: + src: "{{ test_file }}" + state: list + key: a.b.c + register: results + + - name: Assert that the key was created + assert: + that: results.result == "d" + msg: "Test: 'd' != [{{ results.result }}]" + ###### end test dict create ##### + + ###### test create dict value ##### + - name: test create dict value + yedit: + src: "{{ test_file }}" + key: e.f.g + value: + h: + i: + j: k + + - name: retrieve the key + yedit: + src: "{{ test_file }}" + state: list + key: e.f.g.h.i.j + register: results + + - name: Assert that the key was created + assert: + that: results.result == "k" + msg: "Test: 'k' != [{{ results.result }}]" + ###### end test dict create ##### + + ###### test create list value ##### + - name: test create list value + yedit: + src: "{{ test_file }}" + key: z.x.y + value: + - 1 + - 2 + - 3 + + - name: retrieve the key + yedit: + src: "{{ test_file }}" + state: list + key: z#x#y + separator: '#' + register: results + - debug: var=results + + - name: Assert that the key was created + assert: + that: results.result == [1, 2, 3] + msg: "Test: '[1, 2, 3]' != [{{ results.result }}]" +###### end test create list value ##### diff --git a/roles/lib_utils/src/test/integration/yedit_test.yml b/roles/lib_utils/src/test/integration/yedit_test.yml deleted file mode 100755 index 1760a7466..000000000 --- a/roles/lib_utils/src/test/integration/yedit_test.yml +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/ansible-playbook -# Yedit test so that we can quickly determine if features are working -# Ensure that the kube-manager.yaml file exists -# -# ./yedit_test.yml -M ../../library -# ---- -- hosts: localhost - gather_facts: no - vars: - test_file: kube-manager-test.yaml - test: test - strategy: debug - - post_tasks: - - name: copy the kube-manager.yaml file so that we have a pristine copy each time - copy: - src: kube-manager.yaml - dest: "./{{ test_file }}" - changed_when: False - - ####### add key to top level ##### - - name: add a key at the top level - yedit: - src: "{{ test_file }}" - key: yedittest - value: yedittest - - - name: retrieve the inserted key - yedit: - src: "{{ test_file }}" - state: list - key: yedittest - register: results - - - name: Assert that key is at top level - assert: - that: results.result == 'yedittest' - msg: 'Test: add a key to top level failed. yedittest != [{{ results.result }}]' - ###### end add key to top level ##### - - ###### modify multilevel key, value ##### - - name: modify multilevel key, value - yedit: - src: "{{ test_file }}" - key: metadata-namespace - value: openshift-is-awesome - separator: '-' - - - name: retrieve the inserted key - yedit: - src: "{{ test_file }}" - state: list - key: metadata-namespace - separator: '-' - register: results - - - name: Assert that key is as expected - assert: - that: results.result == 'openshift-is-awesome' - msg: 'Test: multilevel key, value modification: openshift-is-awesome != [{{ results.result }}]' - ###### end modify multilevel key, value ##### - - ###### test a string boolean ##### - - name: test a string boolean - yedit: - src: "{{ test_file }}" - key: spec.containers[0].volumeMounts[1].readOnly - value: 'true' - value_type: str - - - name: retrieve the inserted key - yedit: - src: "{{ test_file }}" - state: list - key: spec.containers[0].volumeMounts[1].readOnly - register: results - - - name: Assert that key is a string - assert: - that: results.result == "true" - msg: "Test: boolean str: 'true' != [{{ results.result }}]" - - - name: Assert that key is not bool - assert: - that: results.result != true - msg: "Test: boolean str: true != [{{ results.result }}]" - ###### end test boolean string ##### - - ###### test array append ##### - - name: test array append - yedit: - src: "{{ test_file }}" - key: spec.containers[0].command - value: --my-new-parameter=openshift - append: True - - - name: retrieve the array - yedit: - src: "{{ test_file }}" - state: list - key: spec.containers[0].command - register: results - - - name: Assert that the last element in array is our value - assert: - that: results.result[-1] == "--my-new-parameter=openshift" - msg: "Test: '--my-new-parameter=openshift' != [{{ results.result[-1] }}]" - ###### end test array append ##### - - ###### test non-existing array append ##### - - name: test array append to non-existing key - yedit: - src: "{{ test_file }}" - key: nonexistingkey - value: --my-new-parameter=openshift - append: True - - - name: retrieve the array - yedit: - src: "{{ test_file }}" - state: list - key: nonexistingkey - register: results - - - name: Assert that the last element in array is our value - assert: - that: results.result[-1] == "--my-new-parameter=openshift" - msg: "Test: '--my-new-parameter=openshift' != [{{ results.result[-1] }}]" - ###### end test non-existing array append ##### - - ###### test array update modify ##### - - name: test array update modify - yedit: - src: "{{ test_file }}" - key: spec.containers[0].command - value: --root-ca-file=/etc/k8s/ssl/my.pem - curr_value: --root-ca-file=/etc/kubernetes/ssl/ca.pem - curr_value_format: str - update: True - - - name: retrieve the array - yedit: - src: "{{ test_file }}" - state: list - key: spec.containers[0].command - register: results - - - name: Assert that the element in array is our value - assert: - that: results.result[5] == "--root-ca-file=/etc/k8s/ssl/my.pem" - msg: "Test: '--root-ca-file=/etc/k8s/ssl/my.pem' != [{{ results.result[5] }}]" - ###### end test array update modify##### - - ###### test dict create ##### - - name: test dict create - yedit: - src: "{{ test_file }}" - key: a.b.c - value: d - - - name: retrieve the key - yedit: - src: "{{ test_file }}" - state: list - key: a.b.c - register: results - - - name: Assert that the key was created - assert: - that: results.result == "d" - msg: "Test: 'd' != [{{ results.result }}]" - ###### end test dict create ##### - - ###### test create dict value ##### - - name: test create dict value - yedit: - src: "{{ test_file }}" - key: e.f.g - value: - h: - i: - j: k - - - name: retrieve the key - yedit: - src: "{{ test_file }}" - state: list - key: e.f.g.h.i.j - register: results - - - name: Assert that the key was created - assert: - that: results.result == "k" - msg: "Test: 'k' != [{{ results.result }}]" - ###### end test dict create ##### - - ###### test create list value ##### - - name: test create list value - yedit: - src: "{{ test_file }}" - key: z.x.y - value: - - 1 - - 2 - - 3 - - - name: retrieve the key - yedit: - src: "{{ test_file }}" - state: list - key: z#x#y - separator: '#' - register: results - - debug: var=results - - - name: Assert that the key was created - assert: - that: results.result == [1, 2, 3] - msg: "Test: '[1, 2, 3]' != [{{ results.result }}]" -###### end test create list value ##### -- cgit v1.2.3