From 2aab5c48df64b044ab9bae6e883e6e0acaabbf52 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Wed, 28 Feb 2018 09:35:49 +0100 Subject: Rename all Functest refs to Xtesting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It mainly renames python modules and then the related documentation config files. Change-Id: I186010bb88d3d39afe7b8fd1ebcef9c690cc1282 Signed-off-by: Cédric Ollivier --- xtesting/utils/__init__.py | 0 xtesting/utils/constants.py | 5 ++++ xtesting/utils/decorators.py | 57 ++++++++++++++++++++++++++++++++++++++++++++ xtesting/utils/env.py | 44 ++++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 xtesting/utils/__init__.py create mode 100644 xtesting/utils/constants.py create mode 100644 xtesting/utils/decorators.py create mode 100644 xtesting/utils/env.py (limited to 'xtesting/utils') diff --git a/xtesting/utils/__init__.py b/xtesting/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/xtesting/utils/constants.py b/xtesting/utils/constants.py new file mode 100644 index 00000000..dae08ca6 --- /dev/null +++ b/xtesting/utils/constants.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +# pylint: disable=missing-docstring + +ENV_FILE = '/home/opnfv/xtesting/conf/env_file' diff --git a/xtesting/utils/decorators.py b/xtesting/utils/decorators.py new file mode 100644 index 00000000..230a99e7 --- /dev/null +++ b/xtesting/utils/decorators.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# Copyright (c) 2017 Orange and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 + +# pylint: disable=missing-docstring + +import errno +import functools +import os + +import mock +import requests.sessions +from six.moves import urllib + + +def can_dump_request_to_file(method): + + def dump_preparedrequest(request, **kwargs): + # pylint: disable=unused-argument + parseresult = urllib.parse.urlparse(request.url) + if parseresult.scheme == "file": + try: + dirname = os.path.dirname(parseresult.path) + os.makedirs(dirname) + except OSError as ex: + if ex.errno != errno.EEXIST: + raise + with open(parseresult.path, 'a') as dumpfile: + headers = "" + for key in request.headers: + headers += key + " " + request.headers[key] + "\n" + message = "{} {}\n{}\n{}\n\n\n".format( + request.method, request.url, headers, request.body) + dumpfile.write(message) + return mock.Mock() + + def patch_request(method, url, **kwargs): + with requests.sessions.Session() as session: + parseresult = urllib.parse.urlparse(url) + if parseresult.scheme == "file": + with mock.patch.object(session, 'send', + side_effect=dump_preparedrequest): + return session.request(method=method, url=url, **kwargs) + else: + return session.request(method=method, url=url, **kwargs) + + @functools.wraps(method) + def hook(*args, **kwargs): + with mock.patch('requests.api.request', side_effect=patch_request): + return method(*args, **kwargs) + + return hook diff --git a/xtesting/utils/env.py b/xtesting/utils/env.py new file mode 100644 index 00000000..aa2da0b5 --- /dev/null +++ b/xtesting/utils/env.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python + +# Copyright (c) 2018 Orange and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 + +# pylint: disable=missing-docstring + +import os + +import prettytable + +INPUTS = { + 'EXTERNAL_NETWORK': None, + 'CI_LOOP': 'daily', + 'DEPLOY_SCENARIO': 'os-nosdn-nofeature-noha', + 'INSTALLER_TYPE': None, + 'SDN_CONTROLLER_IP': None, + 'BUILD_TAG': None, + 'NODE_NAME': None, + 'POD_ARCH': None, + 'TEST_DB_URL': 'http://testresults.opnfv.org/test/api/v1/results', + 'ENERGY_RECORDER_API_URL': 'http://energy.opnfv.fr/resources', + 'ENERGY_RECORDER_API_USER': None, + 'ENERGY_RECORDER_API_PASSWORD': None +} + + +def get(env_var): + if env_var not in INPUTS.keys(): + return os.environ.get(env_var, None) + return os.environ.get(env_var, INPUTS[env_var]) + + +def string(): + msg = prettytable.PrettyTable( + header_style='upper', padding_width=5, + field_names=['env var', 'value']) + for env_var in INPUTS: + msg.add_row([env_var, get(env_var) if get(env_var) else '']) + return msg -- cgit 1.2.3-korg