From 3aa123c5b2b145e57776e297ac62e133b3f6993e Mon Sep 17 00:00:00 2001
From: Thomas Wiest <twiest@redhat.com>
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