summaryrefslogtreecommitdiffstats
path: root/vnftest/steps
diff options
context:
space:
mode:
authorMoshe <moshehoa@amdocs.com>2018-03-14 14:22:13 +0200
committerMoshe <moshehoa@amdocs.com>2018-03-14 14:23:25 +0200
commit30497ac60f062adba7dae751110dd9fc87ef04db (patch)
treed9814a8e8ee12e57e241d07a2719c091c1b92a46 /vnftest/steps
parente01f70617a2f22b71cfce912b72a1dbb77f3f969 (diff)
Onboard package test case
Issue-ID: VNFSDK-196 Change-Id: I7ba6de4fe6c55b370f9787c23ad16f1afc26f678 Signed-off-by: Moshe <moshehoa@amdocs.com>
Diffstat (limited to 'vnftest/steps')
-rw-r--r--vnftest/steps/__init__.py0
-rw-r--r--vnftest/steps/base.py89
-rw-r--r--vnftest/steps/dummy/__init__.py0
-rw-r--r--vnftest/steps/dummy/dummy.py43
4 files changed, 132 insertions, 0 deletions
diff --git a/vnftest/steps/__init__.py b/vnftest/steps/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vnftest/steps/__init__.py
diff --git a/vnftest/steps/base.py b/vnftest/steps/base.py
new file mode 100644
index 0000000..d5c606a
--- /dev/null
+++ b/vnftest/steps/base.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright 2018 EuropeanSoftwareMarketingLtd.
+# ===================================================================
+# Licensed under the ApacheLicense, Version2.0 (the"License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# software distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and limitations under
+# the License
+##############################################################################
+# vnftest comment: this is a modified copy of
+# rally/rally/benchmark/steps/base.py
+
+""" Step base class
+"""
+
+from __future__ import absolute_import
+import vnftest.common.utils as utils
+
+
+class Step(object):
+
+ def setup(self):
+ """ default impl for step setup """
+ pass
+
+ def run(self, args):
+ """ catcher for not implemented run methods in subclasses """
+ raise RuntimeError("run method not implemented")
+
+ def teardown(self):
+ """ default impl for step teardown """
+ pass
+
+ @staticmethod
+ def get_types():
+ """return a list of known runner type (class) names"""
+ steps = []
+ for step in utils.itersubclasses(Step):
+ steps.append(step)
+ return steps
+
+ @staticmethod
+ def get_cls(step_type):
+ """return class of specified type"""
+ for step in utils.itersubclasses(Step):
+ if step_type == step.__step_type__:
+ return step
+
+ raise RuntimeError("No such step type %s" % step_type)
+
+ @staticmethod
+ def get(step_type):
+ """Returns instance of a step runner for execution type.
+ """
+ for step in utils.itersubclasses(Step):
+ if step_type == step.__step_type__:
+ return step.__module__ + "." + step.__name__
+
+ raise RuntimeError("No such step type %s" % step_type)
+
+ @classmethod
+ def get_step_type(cls):
+ """Return a string with the step type, if defined"""
+ return str(getattr(cls, '__step_type__', None))
+
+ @classmethod
+ def get_description(cls):
+ """Return a single line string with the class description
+
+ This function will retrieve the class docstring and return the first
+ line, or 'None' if it's empty.
+ """
+ return cls.__doc__.splitlines()[0] if cls.__doc__ else str(None)
+
+ def _push_to_outputs(self, keys, values):
+ return dict(zip(keys, values))
+
+ def _change_obj_to_dict(self, obj):
+ dic = {}
+ for k, v in vars(obj).items():
+ try:
+ vars(v)
+ except TypeError:
+ dic[k] = v
+ return dic
diff --git a/vnftest/steps/dummy/__init__.py b/vnftest/steps/dummy/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vnftest/steps/dummy/__init__.py
diff --git a/vnftest/steps/dummy/dummy.py b/vnftest/steps/dummy/dummy.py
new file mode 100644
index 0000000..650fdb4
--- /dev/null
+++ b/vnftest/steps/dummy/dummy.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright 2018 EuropeanSoftwareMarketingLtd.
+# ===================================================================
+# Licensed under the ApacheLicense, Version2.0 (the"License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# software distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and limitations under
+# the License
+##############################################################################
+from __future__ import absolute_import
+
+import logging
+
+from vnftest.steps import base
+
+LOG = logging.getLogger(__name__)
+
+
+class Dummy(base.Step):
+ """Execute Dummy echo
+ """
+ __step_type__ = "Dummy"
+
+ def __init__(self, step_cfg, context_cfg):
+ self.step_cfg = step_cfg
+ self.context_cfg = context_cfg
+ self.setup_done = False
+
+ def setup(self):
+ """step setup"""
+ self.setup_done = True
+
+ def run(self, result):
+ """execute the benchmark"""
+ if not self.setup_done:
+ self.setup()
+
+ result["hello"] = "vnftest"
+ LOG.info("Dummy echo hello vnftest!")