summaryrefslogtreecommitdiffstats
path: root/vnftest/crawlers
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/crawlers
parente01f70617a2f22b71cfce912b72a1dbb77f3f969 (diff)
Onboard package test case
Issue-ID: VNFSDK-196 Change-Id: I7ba6de4fe6c55b370f9787c23ad16f1afc26f678 Signed-off-by: Moshe <moshehoa@amdocs.com>
Diffstat (limited to 'vnftest/crawlers')
-rw-r--r--vnftest/crawlers/__init__.py0
-rwxr-xr-xvnftest/crawlers/base.py37
-rw-r--r--vnftest/crawlers/default.py35
3 files changed, 72 insertions, 0 deletions
diff --git a/vnftest/crawlers/__init__.py b/vnftest/crawlers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vnftest/crawlers/__init__.py
diff --git a/vnftest/crawlers/base.py b/vnftest/crawlers/base.py
new file mode 100755
index 0000000..8b5a526
--- /dev/null
+++ b/vnftest/crawlers/base.py
@@ -0,0 +1,37 @@
+##############################################################################
+# 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.common import utils
+
+log = logging.getLogger(__name__)
+
+
+class Crawler(object):
+
+ @staticmethod
+ def get_cls(crawler_type):
+ """return class of specified type"""
+ for crawler in utils.itersubclasses(Crawler):
+ if crawler_type == crawler.__crawler_type__:
+ return crawler
+ raise RuntimeError("No such crawler_type %s" % crawler_type)
+
+ def __init__(self):
+ pass
+
+ def crawl(self, dictionary, path):
+ raise NotImplementedError
diff --git a/vnftest/crawlers/default.py b/vnftest/crawlers/default.py
new file mode 100644
index 0000000..da4df0a
--- /dev/null
+++ b/vnftest/crawlers/default.py
@@ -0,0 +1,35 @@
+##############################################################################
+# 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
+from vnftest.crawlers import base
+import logging
+
+LOG = logging.getLogger(__name__)
+
+
+class DefaultCrawler(base.Crawler):
+ __crawler_type__ = 'default'
+
+ def crawl(self, dictionary, path):
+ path_list = path.split("[")
+ value = dictionary
+ for path_element in path_list:
+ if path_element == "":
+ continue
+ path_element = path_element.replace("]", "")
+ if isinstance(value, list):
+ path_element = int(path_element)
+ value = value[path_element]
+ return value