diff options
author | Morgan Richomme <morgan.richomme@orange.com> | 2016-08-16 14:50:38 +0200 |
---|---|---|
committer | Morgan Richomme <morgan.richomme@orange.com> | 2016-08-17 11:04:18 +0200 |
commit | 97fc67c5b21b15e33647d8654810f4403cde6f7b (patch) | |
tree | a0ded89b9710bacec0673e284ff7183f40d43282 | |
parent | 68eaeac3b2306a975dff258f52a2b33f427b7d6e (diff) |
Add reporting flag to push reuslts only from CI
JIRA: FUNCTEST-416
Change-Id: I1a5800be0dcf75573f44e6214b23917aadc1cbf7
Signed-off-by: Morgan Richomme <morgan.richomme@orange.com>
-rwxr-xr-x | ci/exec_test.sh | 8 | ||||
-rwxr-xr-x | testcases/features/copper.py | 43 | ||||
-rwxr-xr-x | testcases/features/doctor.py | 44 | ||||
-rwxr-xr-x | testcases/features/domino.py | 48 | ||||
-rwxr-xr-x | testcases/features/sfc/sfc.py | 15 | ||||
-rw-r--r-- | utils/functest_utils.py | 15 |
6 files changed, 91 insertions, 82 deletions
diff --git a/ci/exec_test.sh b/ci/exec_test.sh index db9c7a07e..1acf7e01c 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 78c0fb4d2..74ef43902 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 184ab032b..154cfc695 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 e4229b4c7..03ad4a2af 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 bdd279051..f8af51060 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 d020ebac8..3dd93fd28 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(), |