From 30497ac60f062adba7dae751110dd9fc87ef04db Mon Sep 17 00:00:00 2001 From: Moshe Date: Wed, 14 Mar 2018 14:22:13 +0200 Subject: Onboard package test case Issue-ID: VNFSDK-196 Change-Id: I7ba6de4fe6c55b370f9787c23ad16f1afc26f678 Signed-off-by: Moshe --- vnftest/crawlers/__init__.py | 0 vnftest/crawlers/base.py | 37 +++++++++++++++++++++++++++++++++++++ vnftest/crawlers/default.py | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 vnftest/crawlers/__init__.py create mode 100755 vnftest/crawlers/base.py create mode 100644 vnftest/crawlers/default.py (limited to 'vnftest/crawlers') diff --git a/vnftest/crawlers/__init__.py b/vnftest/crawlers/__init__.py new file mode 100644 index 0000000..e69de29 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 -- cgit 1.2.3-korg