summaryrefslogtreecommitdiffstats
path: root/vnftest/onap/onap_api_call.py
diff options
context:
space:
mode:
authorMoshe <moshehoa@amdocs.com>2018-06-20 10:23:28 +0300
committerMoshe <moshehoa@amdocs.com>2018-06-20 12:13:36 +0300
commitc7c4cc227ed9447b4fdceeceece35384404bd7ec (patch)
tree5a7900dfa5ce66c1821e2ab0719741e9cccfb126 /vnftest/onap/onap_api_call.py
parente65155cab8d6d74989f1dd0bd1a493e1c91a30d9 (diff)
Add validation abilities to test cases
Change-Id: I76b28e6170d6e91836b195d58c0b882168c11a67 Issue-ID: VNFSDK-275 Signed-off-by: Moshe <moshehoa@amdocs.com> Add unit tests Issue-ID: VNFSDK-275 Change-Id: I34bc9a11e16e4092fdad3b4a1733c7219e624f5f Signed-off-by: Moshe <moshehoa@amdocs.com> add unit tests Issue-ID: VNFSDK-275 Change-Id: Ib99c3521438b002e0d8aaff9870224673e34899f Signed-off-by: Moshe <moshehoa@amdocs.com> add unit tests Issue-ID: VNFSDK-275 Change-Id: I1ac560dfb40df5f346b0db8f40b8c52a2fb6b350 Signed-off-by: Moshe <moshehoa@amdocs.com>
Diffstat (limited to 'vnftest/onap/onap_api_call.py')
-rw-r--r--vnftest/onap/onap_api_call.py52
1 files changed, 11 insertions, 41 deletions
diff --git a/vnftest/onap/onap_api_call.py b/vnftest/onap/onap_api_call.py
index 417e259..9ab95e7 100644
--- a/vnftest/onap/onap_api_call.py
+++ b/vnftest/onap/onap_api_call.py
@@ -12,7 +12,6 @@
# the License
##############################################################################
from __future__ import absolute_import
-
import copy
import logging
import time
@@ -20,7 +19,7 @@ import time
import os
import yaml
-from vnftest.common import constants as consts
+from vnftest.common import constants as consts, utils
from vnftest.common import rest_client
from vnftest.common.utils import dotdict
from vnftest.common.exceptions import MandatoryKeyException, InputParameterMissing
@@ -44,10 +43,10 @@ class OnapApiCall(base.Step):
self.input_params = input_params
self.input_cfg = None
self.output_cfg = None
+
self.rest_def_file = None
self.delay = None
self.setup_done = False
- self.curr_path = os.path.dirname(os.path.abspath(__file__))
def setup(self):
options = self.step_cfg['options']
@@ -68,7 +67,7 @@ class OnapApiCall(base.Step):
value = None
if 'value' in input_parameter:
value_def = input_parameter['value']
- value = self.format_string(value_def, self.input_params)
+ value = utils.format(value_def, self.input_params)
if value is None or value == "":
raise InputParameterMissing(param_name=param_name, source="task configuration")
params[param_name] = value
@@ -92,23 +91,12 @@ class OnapApiCall(base.Step):
def run_impl(self, result):
if not self.setup_done:
self.setup()
- output = {}
params = copy.deepcopy(consts.component_constants)
self.eval_input(params)
execution_result = self.execute_operation(params)
result_body = execution_result['body']
- for output_parameter in self.output_cfg:
- param_name = output_parameter['parameter_name']
- param_value = output_parameter.get('value', "[]")
- if param_value.find("[") > -1:
- crawler_type = output_parameter.get('type', 'default')
- crawler_class = Crawler.get_cls(crawler_type)
- crawler = crawler_class()
- param_value = crawler.crawl(result_body, param_value)
- if param_value is None:
- raise MandatoryKeyException(key_name='param_path', class_name=str(result_body))
- result[param_name] = param_value
- output[param_name] = param_value
+ output = Crawler.crawl(result_body, self.output_cfg)
+ result.update(output)
return output
def execute_operation(self, params, attempt=0):
@@ -129,10 +117,8 @@ class OnapApiCall(base.Step):
def execute_operation_impl(self, params):
operation = self.load_file(params)
url = operation['url']
- headers = operation['headers']
- body = {}
- if 'body' in operation:
- body = operation['body']
+ headers = operation.get('headers', {}) or {}
+ body = operation.get('body', {}) or {}
LOG.info(url)
LOG.info(headers)
LOG.info(body)
@@ -153,30 +139,14 @@ class OnapApiCall(base.Step):
LOG.info("Results: " + str(result))
return result
- @staticmethod
- def format_string(st, params):
- if not isinstance(st, basestring):
- return st
- try:
- return st.format(**params)
- except Exception as e:
- s = str(e)
- s = s.replace("'", "")
- LOG.info(s)
- params[s] = ""
- LOG.info("param" + params[s])
- return st.format(**params)
-
def handle_sla(self, output):
if self.sla_cfg.get('action', "") == 'assert' and 'equals' in self.sla_cfg:
value_def = self.sla_cfg['value']
- value = self.format_string(value_def, output)
+ value = utils.format(value_def, output)
expected_value = self.sla_cfg['equals']
assert value == expected_value
def load_file(self, params):
- yaml_path = os.path.join(self.curr_path, self.rest_def_file)
- with open(yaml_path) as f:
- operation_template = f.read()
- operation = jinja2.Template(operation_template).render(**params)
- return yaml.load(operation)
+ operation_template = utils.resource_as_string(self.rest_def_file)
+ operation = jinja2.Template(operation_template).render(**params)
+ return yaml.load(operation)