aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Ollivier <cedric.ollivier@orange.com>2018-01-31 09:33:25 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-01-31 09:33:25 +0000
commitbad712f34309cf4cf09701e900b832b2503761f6 (patch)
tree1014172b1a8e13146b217a3f755c14031cbce331
parent41d7f56276e1bb6c5b25695857bcd3ac2408b2ec (diff)
parent5b25c0e6400f00d8665eb3071c71ea797662cf51 (diff)
Merge "Fix pylint errors/warnings in rally"
-rw-r--r--functest/opnfv_tests/openstack/rally/rally.py21
-rw-r--r--functest/tests/unit/openstack/rally/test_rally.py56
-rw-r--r--tox.ini4
3 files changed, 41 insertions, 40 deletions
diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py
index 59a67095..2fd7d7f6 100644
--- a/functest/opnfv_tests/openstack/rally/rally.py
+++ b/functest/opnfv_tests/openstack/rally/rally.py
@@ -44,6 +44,7 @@ LOGGER = logging.getLogger(__name__)
class RallyBase(testcase.TestCase):
"""Base class form Rally testcases implementation."""
+ # pylint: disable=too-many-instance-attributes
TESTS = ['authenticate', 'glance', 'ceilometer', 'cinder', 'heat',
'keystone', 'neutron', 'nova', 'quotas', 'vm', 'all']
GLANCE_IMAGE_NAME = CONST.__getattribute__('openstack_image_name')
@@ -110,6 +111,7 @@ class RallyBase(testcase.TestCase):
self.compute_cnt = 0
def _build_task_args(self, test_file_name):
+ """Build arguments for the Rally task."""
task_args = {'service_list': [test_file_name]}
task_args['image_name'] = self.image_name
task_args['flavor_name'] = self.flavor_name
@@ -140,6 +142,7 @@ class RallyBase(testcase.TestCase):
return task_args
def _prepare_test_list(self, test_name):
+ """Build the list of test cases to be executed."""
test_yaml_file_name = 'opnfv-{}.yaml'.format(test_name)
scenario_file_name = os.path.join(self.RALLY_SCENARIO_DIR,
test_yaml_file_name)
@@ -231,7 +234,7 @@ class RallyBase(testcase.TestCase):
in_it(installer_type, installers)):
tests = item['tests']
black_tests.extend(tests)
- except Exception:
+ except Exception: # pylint: disable=broad-except
LOGGER.debug("Scenario exclusion not applied.")
return black_tests
@@ -254,8 +257,8 @@ class RallyBase(testcase.TestCase):
# match if regex pattern is set and found in the needle
if pattern and re.search(pattern, needle) is not None:
return True
- else:
- return False
+
+ return False
def excl_func(self):
"""Exclude functionalities."""
@@ -399,6 +402,7 @@ class RallyBase(testcase.TestCase):
LOGGER.info('Test scenario: "{}" Failed.'.format(test_name) + "\n")
def _append_summary(self, json_raw, test_name):
+ """Update statistics summary info."""
nb_tests = 0
nb_success = 0
overall_duration = 0.0
@@ -421,6 +425,7 @@ class RallyBase(testcase.TestCase):
self.summary.append(scenario_summary)
def _prepare_env(self):
+ """Create resources needed by test scenarios."""
LOGGER.debug('Validating the test name...')
if self.test_name not in self.TESTS:
raise Exception("Test name '%s' is invalid" % self.test_name)
@@ -472,8 +477,7 @@ class RallyBase(testcase.TestCase):
segmentation_id=rally_segmentation_id,
subnet_settings=[SubnetConfig(
name=subnet_name,
- cidr=self.RALLY_PRIVATE_SUBNET_CIDR)
- ]))
+ cidr=self.RALLY_PRIVATE_SUBNET_CIDR)]))
if network_creator is None:
raise Exception("Failed to create private network")
self.priv_net_id = network_creator.get_network().id
@@ -508,6 +512,7 @@ class RallyBase(testcase.TestCase):
self.creators.append(flavor_alt_creator)
def _run_tests(self):
+ """Execute tests."""
if self.test_name == 'all':
for test in self.TESTS:
if test == 'all' or test == 'vm':
@@ -517,6 +522,7 @@ class RallyBase(testcase.TestCase):
self._run_task(self.test_name)
def _generate_report(self):
+ """Generate test execution summary report."""
total_duration = 0.0
total_nb_tests = 0
total_nb_success = 0
@@ -569,11 +575,12 @@ class RallyBase(testcase.TestCase):
self.details = payload
def _clean_up(self):
+ """Cleanup all OpenStack objects. Should be called on completion."""
for creator in reversed(self.creators):
try:
creator.clean()
- except Exception as e:
- LOGGER.error('Unexpected error cleaning - %s', e)
+ except Exception as exc: # pylint: disable=broad-except
+ LOGGER.error('Unexpected error cleaning - %s', exc)
@energy.enable_recording
def run(self, **kwargs):
diff --git a/functest/tests/unit/openstack/rally/test_rally.py b/functest/tests/unit/openstack/rally/test_rally.py
index 92177f36..08ca7e39 100644
--- a/functest/tests/unit/openstack/rally/test_rally.py
+++ b/functest/tests/unit/openstack/rally/test_rally.py
@@ -5,7 +5,7 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
-# pylint: disable=missing-docstring
+# pylint: disable=missing-docstring,protected-access,invalid-name
import json
import logging
@@ -22,14 +22,16 @@ from snaps.openstack.os_credentials import OSCreds
class OSRallyTesting(unittest.TestCase):
+ # pylint: disable=too-many-public-methods
def setUp(self):
os_creds = OSCreds(
username='user', password='pass',
auth_url='http://foo.com:5000/v3', project_name='bar')
with mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials', return_value=os_creds) as m:
+ 'get_credentials',
+ return_value=os_creds) as mock_get_creds:
self.rally_base = rally.RallyBase()
- self.assertTrue(m.called)
+ self.assertTrue(mock_get_creds.called)
def test_build_task_args_missing_floating_network(self):
CONST.__setattr__('OS_AUTH_URL', None)
@@ -230,6 +232,7 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('functest.opnfv_tests.openstack.rally.rally.subprocess.Popen')
@mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.error')
def test_run_task_taskid_missing(self, mock_logger_error, *args):
+ # pylint: disable=unused-argument
self.rally_base._run_task('test_name')
text = 'Failed to retrieve task_id, validating task...'
mock_logger_error.assert_any_call(text)
@@ -257,6 +260,7 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.error')
def test_run_task_default(self, mock_logger_error, mock_logger_info,
*args):
+ # pylint: disable=unused-argument
self.rally_base._run_task('test_name')
text = 'Test scenario: "test_name" OK.\n'
mock_logger_info.assert_any_call(text)
@@ -311,18 +315,13 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('snaps.openstack.utils.deploy_utils.create_network')
@mock.patch('snaps.openstack.utils.deploy_utils.create_router',
return_value=None)
- def test_prepare_env_router_creation_failed(
- self, mock_create_router, mock_create_net, mock_get_img,
- mock_get_net, mock_get_comp_cnt):
+ def test_prepare_env_router_creation_failed(self, *args):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
self.rally_base._prepare_env()
- mock_create_net.assert_called()
- mock_get_img.assert_called()
- mock_get_net.assert_called()
- mock_create_router.assert_called()
- mock_get_comp_cnt.assert_called()
+ for func in args:
+ func.assert_called()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
'get_active_compute_cnt')
@@ -333,18 +332,14 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('snaps.openstack.utils.deploy_utils.create_router')
@mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
return_value=None)
- def test_prepare_env_flavor_creation_failed(
- self, mock_create_flavor, mock_create_router, mock_create_net,
- mock_get_img, mock_get_net, mock_get_comp_cnt):
+ def test_prepare_env_flavor_creation_failed(self, mock_create_flavor,
+ *args):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
self.rally_base._prepare_env()
- mock_create_net.assert_called()
- mock_get_img.assert_called()
- mock_get_net.assert_called()
- mock_create_router.assert_called()
- mock_get_comp_cnt.assert_called()
+ for func in args:
+ func.assert_called()
mock_create_flavor.assert_called_once()
@mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
@@ -356,18 +351,14 @@ class OSRallyTesting(unittest.TestCase):
@mock.patch('snaps.openstack.utils.deploy_utils.create_router')
@mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
side_effect=[mock.Mock, None])
- def test_prepare_env_flavor_alt_creation_failed(
- self, mock_create_flavor, mock_create_router, mock_create_net,
- mock_get_img, mock_get_net, mock_get_comp_cnt):
+ def test_prepare_env_flavor_alt_creation_failed(self, mock_create_flavor,
+ *args):
self.rally_base.TESTS = ['test1', 'test2']
self.rally_base.test_name = 'test1'
with self.assertRaises(Exception):
self.rally_base._prepare_env()
- mock_create_net.assert_called()
- mock_get_img.assert_called()
- mock_get_net.assert_called()
- mock_create_router.assert_called()
- mock_get_comp_cnt.assert_called()
+ for func in args:
+ func.assert_called()
self.assertEqual(mock_create_flavor.call_count, 2)
@mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
@@ -407,7 +398,8 @@ class OSRallyTesting(unittest.TestCase):
'_clean_up')
def test_run_default(self, *args):
self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_OK)
- map(lambda m: m.assert_called(), args)
+ for func in args:
+ func.assert_called()
@mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
'create_rally_deployment', side_effect=Exception)
@@ -415,12 +407,12 @@ class OSRallyTesting(unittest.TestCase):
self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_RUN_ERROR)
mock_create_rally_dep.assert_called()
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_prepare_env', side_effect=Exception)
@mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
'create_rally_deployment', return_value=mock.Mock())
- def test_run_exception_prepare_env(self, mock_create_rally_dep,
- mock_prep_env):
+ @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
+ '_prepare_env', side_effect=Exception)
+ def test_run_exception_prepare_env(self, mock_prep_env, *args):
+ # pylint: disable=unused-argument
self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_RUN_ERROR)
mock_prep_env.assert_called()
diff --git a/tox.ini b/tox.ini
index bf542a9b..01de45c8 100644
--- a/tox.ini
+++ b/tox.ini
@@ -34,6 +34,7 @@ modules =
functest.cli
functest.core
functest.energy
+ functest.opnfv_tests.openstack.rally
functest.opnfv_tests.openstack.refstack_client
functest.opnfv_tests.openstack.snaps
functest.opnfv_tests.openstack.vping
@@ -44,6 +45,7 @@ modules =
functest.tests.unit.core
functest.tests.unit.energy
functest.tests.unit.odl
+ functest.tests.unit.openstack.rally
functest.tests.unit.openstack.refstack_client
functest.tests.unit.openstack.snaps
functest.tests.unit.openstack.vping
@@ -59,7 +61,7 @@ commands =
pylint -f parseable --disable=locally-disabled functest | \
tee pylint.out | sed -ne '/Raw metrics/,//p'"
pylint --reports=n --errors-only functest
- pylint --disable=locally-disabled --reports=n {[testenv:pylint]modules}
+ pylint --disable=locally-disabled --ignore-imports=y --reports=n {[testenv:pylint]modules}
[testenv:yamllint]
basepython = python2.7