Add Robot UTs 33/10033/2
authorVictor Morales <victor.morales@intel.com>
Fri, 1 Sep 2017 23:42:40 +0000 (18:42 -0500)
committerGary Wu <gary.i.wu@huawei.com>
Tue, 5 Sep 2017 17:25:41 +0000 (17:25 +0000)
This commit adds the required Unit Tests for covering Robot script
functions and the refactoring process for adapting them.

Change-Id: Id6b8be035461a37f6a399b6e04f8ce2d72d68cf4
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-Id: INT-19

bootstrap/vagrant-onap/lib/robot
bootstrap/vagrant-onap/tests/test_robot [new file with mode: 0644]

index 4102680..34b431a 100755 (executable)
@@ -2,12 +2,34 @@
 
 set -o xtrace
 
-# install_testsuite_properties() - Download and install testsuite properties
-function install_testsuite_properties {
+source /var/onap/functions
+
+robot_src_folder=$git_src_folder/testsuite
+robot_repos=("heatbridge" "properties" "python-testing-utils")
+
+# clone_robot_repos() - Function that clones Robot source repo.
+function clone_robot_repos {
+    clone_repo testsuite $robot_src_folder
+
+    for dirc in ${robot_repos[@]}; do
+        clone_repo testsuite/$dirc $robot_src_folder/$dirc
+    done
+}
+
+# compile_robot_repos() - Function that compile Robot source repo.
+function compile_robot_repos {
+    install_python_package tox
+    compile_src $robot_src_folder
+
+    for dirc in ${robot_repos[@]}; do
+        compile_src $robot_src_folder/$dirc
+    done
+}
+
+# _setup_ete_folder() - Create and copy ete folder structure
+function _setup_ete_folder {
     mkdir -p /opt/eteshare/config
 
-    local src_folder=/opt/testsuite/properties
-    clone_repo testsuite/properties $src_folder
     cp $src_folder/integration_* /opt/eteshare/config
     cp $src_folder/vm_config2robot.sh /opt/eteshare/config
     cp $src_folder/ete.sh /opt
@@ -17,15 +39,26 @@ function install_testsuite_properties {
     chmod +x /opt/demo.sh
 }
 
-# run_testsuite_image() - Pull and run testsuite docker image
-function run_testsuite_image {
+# get_robot_images() - Pull or build the Robot Docker images
+function get_robot_images {
     pull_openecomp_image testsuite
+}
+
+# install_robot() - Run Robot services
+function install_robot {
     docker rm -f openecompete_container
     docker run -d --name openecompete_container -v /opt/eteshare:/share -p 88:88 $nexus_docker_repo/openecomp/testsuite:$docker_version
 }
 
 # init_robot() - Function that initialize Robot services
 function init_robot {
-    install_testsuite_properties
-    run_testsuite_image
+    if [[ "$clone_repo" == "True" ]]; then
+        clone_robot_repos
+        _setup_ete_folder
+        if [[ "$compile_repo" == "True" ]]; then
+            compile_robot_repos
+        fi
+    fi
+    get_robot_images
+    install_robot
 }
diff --git a/bootstrap/vagrant-onap/tests/test_robot b/bootstrap/vagrant-onap/tests/test_robot
new file mode 100644 (file)
index 0000000..702401e
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+source /var/onap_tests/_test_base
+source /var/onap/robot
+
+covered_functions=(
+"clone_robot_repos" "compile_robot_repos" "get_robot_images" "install_robot"
+)
+
+# test_clone_robot_repos() - Verify that Robot repositories are cloned properly
+function test_clone_robot_repos {
+    clone_robot_repos
+
+    asserts_file_exist $robot_src_folder/LICENSE.TXT
+    asserts_file_exist $robot_src_folder/heatbridge/pom.xml
+    asserts_file_exist $robot_src_folder/properties/LICENSE.TXT
+    asserts_file_exist $robot_src_folder/python-testing-utils/LICENSE.TXT
+}
+
+# test_compile_robot_repos() - Verify that Robot source code can be compiled properly
+function test_compile_robot_repos {
+    clone_robot_repos
+    compile_robot_repos
+
+    asserts_file_exist $robot_src_folder/heatbridge/target/maven-python/dist/heatbridge-0.3.0.dev0-py2-none-any.whl
+}
+
+# test_get_robot_images() - Verify that Robot Docker images are retrieved
+function test_get_mr_images {
+    get_robot_images
+
+    asserts_image testsuite
+}
+
+# test_install_robot() - Verify the built and start of Robot services
+function test_install_message_router {
+    clone_robot_repos
+    get_robot_images
+    install_robot
+
+    asserts_image_running testsuite
+}
+
+if [ "$1" != '*' ]; then
+    unset covered_functions
+    covered_functions=$1
+fi
+main "${covered_functions[@]}"