From c6092cb676363d89f366dc9a416ba6c53eeea33f Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Fri, 26 Jan 2018 14:29:01 +0100 Subject: Fix pylint errors in several utils modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All utils which are moving to xtesting are now fixed. It remains OpenStack and Functest utils (+ the related unit tests) which doesn't move to the new package. Change-Id: If13c627c8444c62d5c6bf9c8057d6413aa0e56c7 Signed-off-by: Cédric Ollivier --- functest/utils/functest_utils.py | 92 +++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 52 deletions(-) (limited to 'functest/utils/functest_utils.py') diff --git a/functest/utils/functest_utils.py b/functest/utils/functest_utils.py index 1e88dadb7..c14918554 100644 --- a/functest/utils/functest_utils.py +++ b/functest/utils/functest_utils.py @@ -6,24 +6,25 @@ # 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 -# -import functools + +# pylint: disable=missing-docstring + +from __future__ import print_function import logging import os -import pkg_resources import re import shutil import subprocess import sys -import time +import pkg_resources import dns.resolver from six.moves import urllib import yaml from functest.utils import constants -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) # ---------------------------------------------------------- @@ -53,8 +54,8 @@ def download_url(url, dest_path): except (urllib.error.HTTPError, urllib.error.URLError): return False - with open(dest, 'wb') as f: - shutil.copyfileobj(response, f) + with open(dest, 'wb') as lfile: + shutil.copyfileobj(response, lfile) return True @@ -72,13 +73,13 @@ def get_resolvconf_ns(): line = rconf.readline() resolver = dns.resolver.Resolver() while line: - ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", line) - if ip: - resolver.nameservers = [ip.group(0)] + addr_ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", line) + if addr_ip: + resolver.nameservers = [addr_ip.group(0)] try: result = resolver.query('opnfv.org')[0] if result != "": - nameservers.append(ip.group()) + nameservers.append(addr_ip.group()) except dns.exception.Timeout: pass line = rconf.readline() @@ -109,49 +110,50 @@ def execute_command(cmd, info=False, error_msg="", msg_exec = ("Executing command: '%s'" % cmd) if verbose: if info: - logger.info(msg_exec) + LOGGER.info(msg_exec) else: - logger.debug(msg_exec) - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) + LOGGER.debug(msg_exec) + popen = subprocess.Popen( + cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if output_file: - f = open(output_file, "w") - for line in iter(p.stdout.readline, b''): + ofd = open(output_file, "w") + for line in iter(popen.stdout.readline, b''): if output_file: - f.write(line) + ofd.write(line) else: line = line.replace('\n', '') - print(line) + print (line) sys.stdout.flush() if output_file: - f.close() - p.stdout.close() - returncode = p.wait() + ofd.close() + popen.stdout.close() + returncode = popen.wait() if returncode != 0: if verbose: - logger.error(error_msg) + LOGGER.error(error_msg) return returncode def get_dict_by_test(testname): + # pylint: disable=bad-continuation with open(pkg_resources.resource_filename( - 'functest', 'ci/testcases.yaml')) as f: - testcases_yaml = yaml.safe_load(f) + 'functest', 'ci/testcases.yaml')) as tyaml: + testcases_yaml = yaml.safe_load(tyaml) for dic_tier in testcases_yaml.get("tiers"): for dic_testcase in dic_tier['testcases']: if dic_testcase['case_name'] == testname: return dic_testcase - logger.error('Project %s is not defined in testcases.yaml' % testname) + LOGGER.error('Project %s is not defined in testcases.yaml', testname) return None def get_criteria_by_test(testname): - dict = get_dict_by_test(testname) - if dict: - return dict['criteria'] + tdict = get_dict_by_test(testname) + if tdict: + return tdict['criteria'] return None @@ -160,21 +162,20 @@ def get_criteria_by_test(testname): # YAML UTILS # # ----------------------------------------------------------- -def get_parameter_from_yaml(parameter, file): +def get_parameter_from_yaml(parameter, yfile): """ Returns the value of a given parameter in file.yaml parameter must be given in string format with dots Example: general.openstack.image_name """ - with open(file) as f: - file_yaml = yaml.safe_load(f) - f.close() + with open(yfile) as yfd: + file_yaml = yaml.safe_load(yfd) value = file_yaml for element in parameter.split("."): value = value.get(element) if value is None: raise ValueError("The parameter %s is not defined in" - " %s" % (parameter, file)) + " %s" % (parameter, yfile)) return value @@ -184,25 +185,12 @@ def get_functest_config(parameter): def get_functest_yaml(): - with open(constants.CONST.__getattribute__('CONFIG_FUNCTEST_YAML')) as f: - functest_yaml = yaml.safe_load(f) - f.close() + # pylint: disable=bad-continuation + with open(constants.CONST.__getattribute__( + 'CONFIG_FUNCTEST_YAML')) as yaml_fd: + functest_yaml = yaml.safe_load(yaml_fd) return functest_yaml def print_separator(): - logger.info("==============================================") - - -def timethis(func): - """Measure the time it takes for a function to complete""" - @functools.wraps(func) - def timed(*args, **kwargs): - ts = time.time() - result = func(*args, **kwargs) - te = time.time() - elapsed = '{0}'.format(te - ts) - logger.info('{f}(*{a}, **{kw}) took: {t} sec'.format( - f=func.__name__, a=args, kw=kwargs, t=elapsed)) - return result, elapsed - return timed + LOGGER.info("==============================================") -- cgit 1.2.3-korg