aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/exec_test.sh8
-rwxr-xr-xtestcases/features/copper.py43
-rwxr-xr-xtestcases/features/doctor.py44
-rwxr-xr-xtestcases/features/domino.py48
-rwxr-xr-xtestcases/features/sfc/sfc.py15
-rw-r--r--utils/functest_utils.py15
6 files changed, 91 insertions, 82 deletions
diff --git a/ci/exec_test.sh b/ci/exec_test.sh
index db9c7a07..1acf7e01 100755
--- a/ci/exec_test.sh
+++ b/ci/exec_test.sh
@@ -130,7 +130,7 @@ function run_test(){
sleep 10 # to let the instances terminate
;;
"doctor")
- python ${FUNCTEST_REPO_DIR}/testcases/features/doctor.py
+ python ${FUNCTEST_REPO_DIR}/testcases/features/doctor.py $report
;;
"ovno")
# suite under rewritting for colorado
@@ -143,7 +143,7 @@ function run_test(){
python ${repos_dir}/securityscanning/security_scan.py --config ${repos_dir}/securityscanning/config.ini
;;
"copper")
- python ${FUNCTEST_REPO_DIR}/testcases/features/copper.py
+ python ${FUNCTEST_REPO_DIR}/testcases/features/copper.py $report
;;
"moon")
python ${repos_dir}/moon/tests/run_tests.py
@@ -155,7 +155,7 @@ function run_test(){
-c ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/tempest_multisite.conf
;;
"domino")
- python ${FUNCTEST_REPO_DIR}/testcases/features/domino.py
+ python ${FUNCTEST_REPO_DIR}/testcases/features/domino.py $report
;;
"odl-sfc")
bash ${FUNCTEST_REPO_DIR}/testcases/features/sfc/server_presetup_CI.bash
@@ -169,7 +169,7 @@ function run_test(){
exit $ret_val
fi
source ${FUNCTEST_REPO_DIR}/testcases/features/sfc/tackerc
- python ${FUNCTEST_REPO_DIR}/testcases/features/sfc/sfc.py
+ python ${FUNCTEST_REPO_DIR}/testcases/features/sfc/sfc.py $report
;;
"parser")
python ${FUNCTEST_REPO_DIR}/testcases/vnf/vRNC/parser.py $report
diff --git a/testcases/features/copper.py b/testcases/features/copper.py
index 78c0fb4d..74ef4390 100755
--- a/testcases/features/copper.py
+++ b/testcases/features/copper.py
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-
+import argparse
import os
import sys
import time
@@ -22,6 +22,11 @@ import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
import yaml
+parser = argparse.ArgumentParser()
+parser.add_argument("-r", "--report",
+ help="Create json result file",
+ action="store_true")
+args = parser.parse_args()
with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
functest_yaml = yaml.safe_load(f)
@@ -29,7 +34,6 @@ with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
dirs = functest_yaml.get('general').get('directories')
FUNCTEST_REPO = dirs.get('dir_repo_functest')
COPPER_REPO = dirs.get('dir_repo_copper')
-TEST_DB_URL = functest_yaml.get('results').get('test_db_url')
logger = ft_logger.Logger("copper").getLogger()
@@ -55,30 +59,19 @@ def main():
'duration': duration,
'status': test_status,
}
- pod_name = functest_utils.get_pod_name(logger)
- scenario = functest_utils.get_scenario(logger)
- version = functest_utils.get_version(logger)
- build_tag = functest_utils.get_build_tag(logger)
-
+ functest_utils.logger_test_results(logger, "Copper",
+ "copper-notification",
+ details['status'], details)
try:
- logger.info("Pushing COPPER results: TEST_DB_URL=%(db)s "
- "pod_name=%(pod)s version=%(v)s scenario=%(s)s "
- "criteria=%(c)s details=%(d)s" % {
- 'db': TEST_DB_URL,
- 'pod': pod_name,
- 'v': version,
- 's': scenario,
- 'c': details['status'],
- 'b': build_tag,
- 'd': details,
- })
- functest_utils.push_results_to_db("copper",
- "copper-notification",
- logger,
- start_time,
- stop_time,
- details['status'],
- details)
+ if args.report:
+ functest_utils.push_results_to_db("copper",
+ "copper-notification",
+ logger,
+ start_time,
+ stop_time,
+ details['status'],
+ details)
+ logger.info("COPPER results pushed to DB")
except:
logger.error("Error pushing results into Database '%s'"
% sys.exc_info()[0])
diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py
index 184ab032..154cfc69 100755
--- a/testcases/features/doctor.py
+++ b/testcases/features/doctor.py
@@ -13,7 +13,7 @@
# 0.2: measure test duration and publish results under json format
#
#
-
+import argparse
import os
import time
import yaml
@@ -21,13 +21,18 @@ import yaml
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
+parser = argparse.ArgumentParser()
+parser.add_argument("-r", "--report",
+ help="Create json result file",
+ action="store_true")
+args = parser.parse_args()
+
with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
functest_yaml = yaml.safe_load(f)
dirs = functest_yaml.get('general').get('directories')
FUNCTEST_REPO = dirs.get('dir_repo_functest')
DOCTOR_REPO = dirs.get('dir_repo_doctor')
-TEST_DB_URL = functest_yaml.get('results').get('test_db_url')
logger = ft_logger.Logger("doctor").getLogger()
@@ -55,32 +60,21 @@ def main():
'duration': duration,
'status': test_status,
}
- pod_name = functest_utils.get_pod_name(logger)
- scenario = functest_utils.get_scenario(logger)
- version = functest_utils.get_version(logger)
- build_tag = functest_utils.get_build_tag(logger)
-
status = "FAIL"
if details['status'] == "OK":
status = "PASS"
-
- logger.info("Pushing Doctor results: TEST_DB_URL=%(db)s pod_name=%(pod)s "
- "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % {
- 'db': TEST_DB_URL,
- 'pod': pod_name,
- 'v': version,
- 's': scenario,
- 'c': status,
- 'b': build_tag,
- 'd': details,
- })
- functest_utils.push_results_to_db("doctor",
- "doctor-notification",
- logger,
- start_time,
- stop_time,
- status,
- details)
+ functest_utils.logger_test_results(logger, "Doctor",
+ "doctor-notification",
+ status, details)
+ if args.report:
+ functest_utils.push_results_to_db("doctor",
+ "doctor-notification",
+ logger,
+ start_time,
+ stop_time,
+ status,
+ details)
+ logger.info("Doctor results pushed to DB")
exit(exit_code)
diff --git a/testcases/features/domino.py b/testcases/features/domino.py
index e4229b4c..03ad4a2a 100755
--- a/testcases/features/domino.py
+++ b/testcases/features/domino.py
@@ -11,9 +11,10 @@
# Later, the VM2 boots then execute cloud-init to ping VM1.
# After successful ping, both the VMs are deleted.
# 0.2: measure test duration and publish results under json format
-#
+# 0.3: add report flag to push results when needed
#
+import argparse
import os
import time
import yaml
@@ -21,13 +22,19 @@ import yaml
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
+parser = argparse.ArgumentParser()
+
+parser.add_argument("-r", "--report",
+ help="Create json result file",
+ action="store_true")
+args = parser.parse_args()
+
with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
functest_yaml = yaml.safe_load(f)
dirs = functest_yaml.get('general').get('directories')
FUNCTEST_REPO = dirs.get('dir_repo_functest')
DOMINO_REPO = dirs.get('dir_repo_domino')
-TEST_DB_URL = functest_yaml.get('results').get('test_db_url')
logger = ft_logger.Logger("domino").getLogger()
@@ -55,10 +62,6 @@ def main():
'duration': duration,
'status': test_status,
}
- pod_name = functest_utils.get_pod_name(logger)
- scenario = functest_utils.get_scenario(logger)
- version = functest_utils.get_version(logger)
- build_tag = functest_utils.get_build_tag(logger)
status = "FAIL"
if details['status'] == "OK":
@@ -66,25 +69,20 @@ def main():
elif details['status'] == "SKIPPED":
status = "SKIP"
- logger.info("Pushing Domino results: TEST_DB_URL=%(db)s pod_name=%(pod)s "
- "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % {
- 'db': TEST_DB_URL,
- 'pod': pod_name,
- 'v': version,
- 's': scenario,
- 'c': status,
- 'b': build_tag,
- 'd': details,
- })
-
- if status is not "SKIP":
- functest_utils.push_results_to_db("domino",
- "domino-multinode",
- logger,
- start_time,
- stop_time,
- status,
- details)
+ functest_utils.logger_test_results(logger, "Domino",
+ "domino-multinode",
+ status, details)
+ if args.report:
+ if status is not "SKIP":
+ functest_utils.push_results_to_db("domino",
+ "domino-multinode",
+ logger,
+ start_time,
+ stop_time,
+ status,
+ details)
+ logger.info("Domino results pushed to DB")
+
if __name__ == '__main__':
main()
diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py
index bdd27905..f8af5106 100755
--- a/testcases/features/sfc/sfc.py
+++ b/testcases/features/sfc/sfc.py
@@ -408,6 +408,21 @@ def main():
logger.info('\033[92m' + "SFC TEST WORKED"
" :) \n" + '\033[0m')
+ # TODO report results to DB
+ # functest_utils.logger_test_results(logger, "SFC",
+ # "odl-sfc",
+ # status, details)
+ # see doctor, promise, domino, ...
+ # if args.report:
+ # logger.info("Pushing odl-SFC results")
+ # functest_utils.push_results_to_db("functest",
+ # "odl-sfc",
+ # logger,
+ # start_time,
+ # stop_time,
+ # status,
+ # details)
+
sys.exit(0)
if __name__ == '__main__':
diff --git a/utils/functest_utils.py b/utils/functest_utils.py
index d020ebac..3dd93fd2 100644
--- a/utils/functest_utils.py
+++ b/utils/functest_utils.py
@@ -169,9 +169,18 @@ def logger_test_results(logger, project, case_name, status, details):
version = get_version(logger)
build_tag = get_build_tag(logger)
- logger.info("Pushing %(p)s/%(n)s results: TEST_DB_URL=%(db)s "
- "pod_name=%(pod)s version=%(v)s scenario=%(s)s "
- "criteria=%(c)s details=%(d)s" % {
+ logger.info("\n"
+ "****************************************\n"
+ "\t %(p)s/%(n)s results \n\n"
+ "****************************************\n"
+ "DB:\t%(db)s\n"
+ "pod:\t%(pod)s\n"
+ "version:\t%(v)s\n"
+ "scenario:\t%(s)s\n"
+ "status:\t%(c)s\n"
+ "build tag:\t%(b)s\n"
+ "details:\t%(d)s\n"
+ % {
'p': project,
'n': case_name,
'db': get_db_url(),